Sign in to follow this  

What am i doing wrong?

Recommended Posts

k I need to apply a texture to an object created from reading points from file (data file is a text containing xyz coordinates). Whatever i do seems not to work, the closest thing to what I'm afetr is , using the GL_POLYGON function. With that function the whole object appears in the texture's color but the texture itself!!! anyway here is the code can some tell me what am I doing wrong?

public override void glDraw() 
GL.glLoadIdentity ();
GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]);
GL.glTranslatef(cx, cy, cz);
GL.glRotatef(xrot, 1, 0, 0);
GL.glRotatef(yrot, 0, 1, 0);
GL.glRotatef(zrot, 0, 0, 1);
xrot += xspeed;
yrot += yspeed;
zrot += zspeed;
float tx, ty, tz;
Vertex q;
GL.glPolygonMode(GL.GL_FRONT, GL.GL_FILL);

for(int i = 0; i < morph1.verts; i++) 
{ if(morph)
{q = Calculate(i);}
else{	q.x = q.y = q.z = 0;}
helper.points[i].x -= q.x;
helper.points[i].y -= q.y;
helper.points[i].z -= q.z;
tx = helper.points[i].x;
ty = helper.points[i].y;						tz = helper.points[i].z;
GL.glColor3f(30.0f, 0.0f, 10.0f);
GL.glTexCoord2f(tx,ty );
GL.glVertex3f(tx, ty, tz);
GL.glPolygonMode(GL.GL_BACK, GL.GL_LINE);

so what do you think ? thx [Edited by - cockney on December 4, 2004 12:20:25 AM]

Share this post

Link to post
Share on other sites
two things:

1) make sure you are enabling texturing: glEnable(GL_TEXTURE_2D);
2) You are supplying the same texture coordinates (0,0) for each vertex, this will map the first pixel in the texture to each of the vertices (thus making the object the same colour as the first pixel).

Share this post

Link to post
Share on other sites
I know so little it's scary, BUT... have you checked that the order in which your vertices are specified, is correct? Can you render your object without texturing and it shows up OK?

Share this post

Link to post
Share on other sites
thx for your comments.

I have enabled texturing with glEnable(GL_TEXTURE_2D); and changed the texture coordinates:

GL.glTexCoord2f(tx,ty );

The thing is that the texture shows like in "slices" when the object is rotated (for some odd reason). How can i make it apply uniformally to the object (while in rotation)?


[Edited by - cockney on December 1, 2004 1:47:42 PM]

Share this post

Link to post
Share on other sites
Guest Anonymous Poster
It looks like you are using the same coordinates for texture and vertex. If those values (tx, ty) arent 0f to 1f, then you will get (I think) a repeating texture effect, which on a >4 vertex polygon probably looks pretty weird. If that's the case, convert tx, ty to a fraction of the total x, y range like,

float txFraction = (tx - MinX) / (MaxX - MinX);

and use those values for the texture coordinates.

Share this post

Link to post
Share on other sites
I know that the issue relies somewhere on the texture coordinates. the problem is that whatever I have tried it did nto work.

Tried the last suqqestion as well but did not work, for some odd reason I don't get any texture on my polygon just lines.

any other ideas guys?


Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this