opengl - vector a vbo

0

Witam,
mam taki problem: mam wczytywanie z pliku .obj, np dla wierzchołków jest struktura (dla normalnych i tekstury analogicznie tylko odpowiednio 3 i 2 współrzędne)

struct SEdge3
{
	GLfloat x;
	GLfloat y;
	GLfloat z;
	GLfloat w;
};

potem w klasie tego mojego obiektu

std::vector<SEdge3> edges;

Wszystko działa jak rysuję w ten sposób

while(triangle != triangles.end()){
	glVertex4fv(reinterpret_cast<const GLfloat *>(&edges[(*triangle).w1]));
	glVertex4fv(reinterpret_cast<const GLfloat *>(&edges[(*triangle).w2]));
	glVertex4fv(reinterpret_cast<const GLfloat *>(&edges[(*triangle).w3]));
	triangle++;
}

Ale muszę użyć vbo i nie wiem jak to przerobić... Jak robię tak to się w ogóle nie wyświetla.

GLuint id1;

glGenBuffersARB(1, &id1);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, id1);
glBufferDataARB(GL_ARRAY_BUFFER_ARB,edges.size()*sizeof(SEdge3),&edges[0],GL_STATIC_DRAW_ARB);


glEnableClientState(GL_VERTEX_ARRAY); 
glBindBufferARB(GL_ARRAY_BUFFER_ARB, id1);
glVertexPointer(3, GL_FLOAT,0,(char*)NULL);

glDrawArrays(GL_TRIANGLES,0,triangles.size());

glDisableClientState(GL_VERTEX_ARRAY);

glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
glDeleteBuffersARB(1, &id1);
0

zmień

glVertexPointer(3, GL_FLOAT,0,(char*)NULL);

na

glVertexPointer(4, GL_FLOAT,0,(char*)NULL);

1 użytkowników online, w tym zalogowanych: 0, gości: 1