HanWu
02-10-2009, 11:19 PM
I would like to know how to do texture mapping with Vertex Arrays? What I did is
------------------First Mesh-----------------------
Gl.glEnable(Gl.GL_TEXTURE_2D); // Enable Texture Mapping ( NEW )
Gl.glBindTexture(Gl.GL_TEXTURE_2D, 0);
Gl.glEnableClientState(Gl.GL_TEXTURE_COORD_ARRAY);
Gl.glTexCoordPointer(2, Gl.GL_DOUBLE, 0, textCor);
Gl.glNormalPointer(Gl.GL_FLOAT,0,pNorList);
Gl.glVertexPointer(3, Gl.GL_FLOAT, 0, vertex);
Gl.glDrawArrays(Gl.GL_QUADS,0,bilVert);
Gl.glDisableClientState(Gl.GL_NORMAL_ARRAY);
Gl.glDisableClientState(Gl.GL_VERTEX_ARRAY);
// Gl.glDisableClientState(Gl.GL_COLOR_ARRAY);
Gl.glDisableClientState(Gl.GL_TEXTURE_COORD_ARRAY) ;
Gl.glDisable(Gl.GL_TEXTURE_2D);
------------------Second Mesh-----------------------
Gl.glBindTexture(Gl.GL_TEXTURE_2D, 1);
... (repeat the code above for second Mesh).
...
...
What I get is only the last defined texture is able to be showed and no matter how I change the texture id in the Gl.glBindTexture. Both of the Mesh will show the same texture.
Can someone tell me the correct way to do it. Thanks.
------------------First Mesh-----------------------
Gl.glEnable(Gl.GL_TEXTURE_2D); // Enable Texture Mapping ( NEW )
Gl.glBindTexture(Gl.GL_TEXTURE_2D, 0);
Gl.glEnableClientState(Gl.GL_TEXTURE_COORD_ARRAY);
Gl.glTexCoordPointer(2, Gl.GL_DOUBLE, 0, textCor);
Gl.glNormalPointer(Gl.GL_FLOAT,0,pNorList);
Gl.glVertexPointer(3, Gl.GL_FLOAT, 0, vertex);
Gl.glDrawArrays(Gl.GL_QUADS,0,bilVert);
Gl.glDisableClientState(Gl.GL_NORMAL_ARRAY);
Gl.glDisableClientState(Gl.GL_VERTEX_ARRAY);
// Gl.glDisableClientState(Gl.GL_COLOR_ARRAY);
Gl.glDisableClientState(Gl.GL_TEXTURE_COORD_ARRAY) ;
Gl.glDisable(Gl.GL_TEXTURE_2D);
------------------Second Mesh-----------------------
Gl.glBindTexture(Gl.GL_TEXTURE_2D, 1);
... (repeat the code above for second Mesh).
...
...
What I get is only the last defined texture is able to be showed and no matter how I change the texture id in the Gl.glBindTexture. Both of the Mesh will show the same texture.
Can someone tell me the correct way to do it. Thanks.