also langsam bin ich am Verzweifeln.
Ich möchte per "glDrawElements" Geometrie zeichnen und textuieren.
Leider funktioniert das textuieren nicht so wie es soll wenn ich Shader verwende.
Ich poste mal einfach etwas Code
Die Renderfunktion:
Code: Alles auswählen
this->useShaderEffect(true); // Wenn ich dies ausschalte, also die FFP benutze, wird die Texture normal verwendet und alles läuft wie es soll.
glEnable( GL_TEXTURE_2D );
glBindTexture( GL_TEXTURE_2D, mTexture);
glClientActiveTexture(GL_TEXTURE0 + 0);
mShaderProgram.setUniformValue("colorTexture0",mTexture);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3,GL_FLOAT,sizeof(Mesh::Vertex),&mVertexBuffer[0]);
glEnableClientState(GL_NORMAL_ARRAY);
glTexCoordPointer(2,GL_FLOAT,sizeof(Mesh::Vertex),&mVertexBuffer[0].mNx);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glNormalPointer(GL_FLOAT,sizeof(Mesh::Vertex),&mVertexBuffer[0].mU);
glDrawElements(GL_TRIANGLES, mIndices.size(), GL_UNSIGNED_INT, &mIndices[0]);
glPopMatrix();
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
Code: Alles auswählen
//uniform sampler2D colorTexture0;
void main(void)
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
Code: Alles auswählen
uniform sampler2D colorTexture0;
vec4 colTemp;
void main(void)
{
colTemp = texture2D( colorTexture0, gl_TexCoord[0].st);
gl_FragColor = colTemp;
}
Mach ich irgend etwas falsch bei dieser Verwendung?
Gruß joggel