Ich würde sehr gerne anfangen, mit glSlang zu arbeiten.
Doch ich habe noch nicht so richtig verstanden, wie ich die Shader in meinem Programm anwende. Das Laden der Shader funktioniert, nur ich würde gerne einmal den Beispielshader aus dem glSlang-Tutorial 1 nachbauen. Wie mache ich das beim Rendern?
Nachtrag:
Sofern die Uniforms (auch nur einzelne) wie in diesem Fall konstant sind, braucht man die nur ein einziges mal setzen. Das geht auch wenn man zwischen durch andere Shader verwendet.
Hm, ich weiß nicht ob es eine gute Idee ist die Shader-Objekte freizugeben bevor du das Programm linkst. Allerdings würde ich mal annehmen das dann da eine Fehlermeldung beim Linken kommen würde (und es steht auch so im Tutorial). Ansonsten sieht das eigentlich gut aus.
Muss man nicht für jede Textureinheit das Target aktivieren? Textureinheit haben ja alle ihren eigenen State.
Code:
glActiveTexture(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, TextureID[0]);
glActiveTexture(GL_TEXTURE1);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, TextureID[1]);
glActiveTexture(GL_TEXTURE2);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, TextureID[2]);
glActiveTexture(GL_TEXTURE3);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, TextureID[3]);
Zitat:
Hm, ich weiß nicht ob es eine gute Idee ist die Shader-Objekte freizugeben bevor du das Programm linkst. Allerdings würde ich mal annehmen das dann da eine Fehlermeldung beim Linken kommen würde (und es steht auch so im Tutorial). Ansonsten sieht das eigentlich gut aus.
Mache ich auch immer so. Müsste also funktionieren.
Ich habe mal versucht, statt "GL_TEXTURE0" "GL_TEXTURE0_ARB" zu verwenden, leider auch ohne Erfolg ... Brauche ich denn vielleicht glTexEnv?
Oder muss ich statt glTexCoord2f glMultiTexCoord2f bzw. glMultiTexCoord2f verwenden? Wobei ich letzteres auch versucht habe ...
EDIT:
Könnte mir vielleicht jemand einen Quelltext von einem einfachen Shader schicken?
Setze mal bitte ein
[glsl]gl_FragColor.a = 1.0;[/glsl]
ans Ende des Fragmentshaders. Dein Alpha-Wert ist sonst undefiniert und könnte bei aktiviertem Blending zu komischen Ergebnissen führen.
Wenn das nicht funktioniert, versuch mal bitte diesen Fragmentshader:
[glsl]uniform sampler2D Texture0;
uniform sampler2D Texture1;
uniform sampler2D Texture2;
uniform sampler2D Texture3;
Mitglieder in diesem Forum: 0 Mitglieder und 22 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.