I''ve not long been playing with OpenGL but have managed to grasp most concepts ok.
However, I just can''t seem to get any texture mapping working. I''ve created a simple square mesh (4 vertices) and loaded an image from raw format.
I then call
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 256, 256, 0, GL_RGB, GL_UNSIGNED_BYTE, texture.data);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, 256, 256, GL_RGB, GL_UNSIGNED_BYTE, texture.data);
before enabling GL_TEXTURE_2D.
When I render the square I specify the glTexcoords() in a clockwise direction staring at the upper left (i.e. 0,0 1,0 1,1, 0,1). The texture appears, but it''s malformed - half of it seems to have been spread across the square. It''s difficult to explain so I''ve uploaded a picture here http://www20.brinkser.com/eight8/opengl.gif
Would anyone be so kind as to offer some advice on what might be going wrong?
Many thanks.
Eight
Texture problem
Started by Eight, Jun 20 2001 10:57 PM
4 replies to this topic
Ad:
#2 Members - Reputation: 145
Posted 20 June 2001 - 11:57 PM
I''m not really sure what''s wrong but I''ll try anyway. First off that picture didn''t work, so I''m just going off your description. It sounds like the texture coordinates in relation to the square''s vertices are being drawn out of order. The texture coordinates sounded right. Play around with the order in which you draw the square''s vertices. Make sure that they are in clockwise order or whatever order you are using. If that doesn''t work try any random order. Just so you know, I''ve used other people''s bmp and tga loaders and they''d show up upside down or something, so I''d have to change the texture coordinates. So you might need to play around with those too. Hope I helped.
[Edited by - atcdevil on October 12, 2006 10:57:17 AM]
[Edited by - atcdevil on October 12, 2006 10:57:17 AM]
#5 Members - Reputation: 528
Posted 21 June 2001 - 10:04 AM
i assume thats one polygon.
texcoord2f(0,0)
vertex(bottomleftcorner)
texcoord2f(0,1)
vertex(topleftcorner)
texcoord2f(1,1)
vertex(toprightcorner)
texcoord2f(1,0)
vertex(bottomrightcorner)
also
look for GL_TEXTURE_WRAP_S + GL_TEXTURE_WRAP_T + set them to GL_CLAMP or GL_REPEAT
http://members.xoom.com/myBollux
texcoord2f(0,0)
vertex(bottomleftcorner)
texcoord2f(0,1)
vertex(topleftcorner)
texcoord2f(1,1)
vertex(toprightcorner)
texcoord2f(1,0)
vertex(bottomrightcorner)
also
look for GL_TEXTURE_WRAP_S + GL_TEXTURE_WRAP_T + set them to GL_CLAMP or GL_REPEAT
http://members.xoom.com/myBollux






