I have a blender image exported using Jeff LaMarche .h export script. I am trying to get it to render in OpenGL ES 1.1. I don’t think I am passing my vertices, normals, and texture coords right. Can someone help me out. Here is what I have.
This is the .h file with my vertices,etc.
struct vertexDataTextured
{
GLKVector3 vertex;
GLKVector3 normal;
GLKVector2 texCoord;
};
typedef struct vertexDataTextured vertexDataTextured;
typedef vertexDataTextured* vertexDataTexturedPtr;
static const vertexDataTextured MeshVertexData[] = {
{/*v:*/{0.351562, 0.828125, -0.242188}, /*n:*/{0.183599, 0.982971, 0.005310}, /*t:*/{0.199397, 0.671493}},
{/*v:*/{0.445312, 0.781250, -0.156250}, /*n:*/{0.715171, 0.222724, 0.662465}, /*t:*/{0.216226, 0.665719}},
{/*v:*/{0.476562, 0.773438, -0.242188}, /*n:*/{0.964446, 0.263863, 0.012665}, /*t:*/{0.216737, 0.679097}},
{/*v:*/{-0.476562, 0.773438, -0.242188}, /*n:*/{-0.964446, 0.263863, 0.012665}, /*t:*/{0.052251, 0.677297}},
{/*v:*/{-0.445312, 0.781250, -0.156250}, /*n:*/{-0.715171, 0.222724, 0.662465}, /*t:*/{0.053356, 0.663955}},
…
and here is my drawing code
…
glClearColor(1.0f, 1.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0f,-0.3f,-0.5f);
glVertexPointer(3, GL_FLOAT, 0, MeshVertexData);
glEnableClientState(GL_VERTEX_ARRAY);
glNormalPointer(GL_FLOAT, 0 , MeshVertexData);
glEnableClientState(GL_NORMAL_ARRAY);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glTexCoordPointer(2, GL_FLOAT,0,MeshVertexData);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
//glTranslatef(0.0f,-1.0f,-1.5f);
glDrawArrays(GL_TRIANGLES, 0, sizeof(MeshVertexData)/ sizeof(vertexDataTextured));
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
Basically it looks like my screen threw up triangles everywhere. Any help for this N00B is very appreciated. Thanks
You’re setting your stride to 0. It should be
sizeof (vertexDataTextured). It tells OpenGL how many bytes there are between one vertex (or normal, or texture coord) and the next.