Archived

This topic is now archived and is closed to further replies.

Eight

Texture problem

Recommended Posts

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

Share this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites