Shader geht nicht
-
Hi, ich habe mal probiert z.B. den Flower-Shader von hier http://www.iquilezles.org/apps/shadertoy/ in meiner Anwendung rendern zu lassen, nur sehe ich irgendwie nichts. Der Shader kompiliert ohne Fehler. Anzeigen tue ich ihn mittels folgender Funktion:
void DrawFlower(Point topLeft, Point bottomRight) { counter += 0.01; if (counter > 360.0) counter = 0; int x = bottomRight.X() - topLeft.X(); int y = bottomRight.Y() - topLeft.Y(); glDisable(GL_CULL_FACE); glColor4ub(rand()%255, rand()%255, rand()%255, 255); shader.bind(); glUniform2d(flower_resolution, x, y); glUniform1d(flower_time, counter); glBegin(GL_TRIANGLES); glVertex3d(topLeft.X(), topLeft.Y(), -10.0); glVertex3d(topLeft.X(), bottomRight.Y(), -10.0); glVertex3d(bottomRight.X(), topLeft.Y(), -10.0); glVertex3d(topLeft.X(), bottomRight.Y(), -10.0); glVertex3d(bottomRight.X(), bottomRight.Y(), -10.0); glVertex3d(bottomRight.X(), topLeft.Y(), -10.0); glEnd(); shader.unbind(); glEnable(GL_CULL_FACE); }
Achso, da meine Shader-Klasse nur Vertex- zusammen mit Fragment-Shadern annimmt, habe ich folgenden DefaultVertexShader verwendet:
void main(void) { gl_Position = ftransform(); gl_FrontColor = gl_Color; gl_TexCoord[0] = gl_MultiTexCoord0; }
Jemand ne Idee was ich falsch mache?
-
Achso, mit folgendem Fragmentshader bekomme ich wie erwartet ein einfarbiges Quadrat gezeichnet:
void main(void) { gl_FragColor = gl_Color; }