Problems applying texture to a triangle strip using glTexCoordPointer
Posted
by Alexey
on Stack Overflow
See other posts from Stack Overflow
or by Alexey
Published on 2010-06-07T15:37:12Z
Indexed on
2010/06/18
15:03 UTC
Read the original article
Hit count: 238
opengl
Hi,
I'm writing a pretty simple piece of code which should draw a plane. The plane must have two different textures on its sides, like if it was a book page. I'm trying to achieve this by doing this:
glFrontFace(GL_CCW);
glBindTexture(GL_TEXTURE_2D, textures[kActiveSideLeft]);
glVertexPointer(3, GL_FLOAT, 0, vertexCoordinates);
glTexCoordPointer(2, GL_FLOAT, 0, textureCoordinates);
glDrawArrays(GL_TRIANGLE_STRIP, 0, (2 * kHorizontalSegmentsCount + 4) * kVerticalSegmentsCount);
glFrontFace(GL_CW);
glBindTexture(GL_TEXTURE_2D, textures[kActiveSideRight]);
glVertexPointer(3, GL_FLOAT, 0, vertexCoordinates);
glTexCoordPointer(2, GL_FLOAT, 0, textureCoordinates);
glDrawArrays(GL_TRIANGLE_STRIP, 0, (2 * kHorizontalSegmentsCount + 4) * kVerticalSegmentsCount);
textures[] array contains 2 GLuint textures which specify appropriate textures.
vertexCoordinates and textureCoordinates contain vertexes and texture coordinates respectively
((2 * kHorizontalSegmentsCount + 4) * kVerticalSegmentsCount) equals 15 and that's exactly how many elements I have in the arrays
I set up opengl like this:
glEnable(GL_DEPTH_TEST);
glClearDepthf(1.0f);
glDepthFunc(GL_LEQUAL);
glClearColor(0.0, 1.0, 1.0, 1.0);
glEnable(GL_TEXTURE_2D);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
What happens is when I run it front side of the plane looks Ok, but it appears like if texture coordinates weren't applied to the back side. It appears like texture on the back side is just tiled and not connected to vertexes by any means.
Any idea what am I doing wrong? Or any idea about what can I do to debug this problem? Thanks.
© Stack Overflow or respective owner