Texture problem
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
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]
Bugger - missed out a letter, the URL should have been
http://www20.brinkster.com/eight8/opengl.gif
Sorry folks.
Thanks Andrew, I''ll try that.
E
http://www20.brinkster.com/eight8/opengl.gif
Sorry folks.
Thanks Andrew, I''ll try that.
E
Ok cool, that''s fixed it. Just one more problem... the texture is tiling horizontally but not vertically.
Ideally I don''t want it to tile at all, I want it to stretch all the way across my polygon.
Can anyone help with this?
Cheers.
Ideally I don''t want it to tile at all, I want it to stretch all the way across my polygon.
Can anyone help with this?
Cheers.
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
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement