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;
    }
    

Log in to reply