-
OpenGL Texture mapping
take this snippet of my code
Code:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glEnable(GL_TEXTURE_2D);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glBindTexture(GL_TEXTURE_2D, texture[0]);
glTranslatef(0.0f,0.0f,-20.0f);
glBegin(GL_QUADS);
glTexCoord2f(0.0,0.0); glVertex3f(-5.0f,5.0f,0.0f); //BACK
glTexCoord2f(0.0,1.0); glVertex3f(5.0f,5.0f,0.0f);
glTexCoord2f(1.0,1.0); glVertex3f(5.0f,-5.0f,0.0f);
glTexCoord2f(1.0,0.0); glVertex3f(-5.0f,-5.0f,0.0f);
glTexCoord2f(0.0,0.0); glVertex3f(5.0f,5.0f,0.0f); //RIGHT
glTexCoord2f(0.0,1.0); glVertex3f(5.0f,5.0f,50.0f);
glTexCoord2f(1.0,1.0); glVertex3f(5.0f,-5.0f,50.0f);
glTexCoord2f(1.0,0.0); glVertex3f(5.0f,-5.0f,0.0f);
glTexCoord2f(0.0,0.0); glVertex3f(-5.0f,5.0f,50.0f); //LEFT
glTexCoord2f(0.0,1.0); glVertex3f(5.0f,5.0f,50.0f);
glTexCoord2f(1.0,1.0); glVertex3f(5.0f,-5.0f,50.0f);
glTexCoord2f(1.0,0.0); glVertex3f(-5.0f,-5.0f,50.0f);
glTexCoord2f(0.0,0.0); glVertex3f(-5.0f,5.0f,0.0f); //FRONT
glTexCoord2f(0.0,1.0); glVertex3f(-5.0f,5.0f,50.0f);
glTexCoord2f(1.0,1.0); glVertex3f(-5.0f,-5.0f,50.0f);
glTexCoord2f(1.0,0.0); glVertex3f(-5.0f,-5.0f,0.0f);
glEnd();
glBindTexture(GL_TEXTURE_2D, tiles[0]);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f); glVertex3f(0.0f, 0.0f, 0.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f(1.0f,0.0f, 0.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f(1.0f, 0.0f, 1.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(0.0f, 0.0f, 1.0f);
glEnd();
SDL_GL_SwapBuffers();
After I try to change textures and draw my last quad, a blank quad is drawn. I know I'm not changing textures the right way. How do I do it?
-
Are you sure that tiles[0] is valid and got created successfully? What about if you draw that last quad with the other texture? Does that work?
-
I suffered pretty much the same problem... I thought it must of been something I had done wrong. Did you get the texture mapping tutorial from NeHe site?
-
Thanks mr wizard i worked it out.
and no Im reading the opengl red book. much more comprehensive.