Salut !

J’essai de refaire ma fonction d’affichage pour qu’elle utilise les VBO.
Le problème c’est que j’utilise glDrawElements et je n’arrive pas a l’utiliser dans les VBO

Voici en gros mon code sans utiliser de VBO :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
 
    glVertexPointer(3, GL_FLOAT, 0, getVertices());
    glNormalPointer(GL_FLOAT, 0, getNormals());
    glBindTexture(GL_TEXTURE_2D, mesh[meshId].subMesh[submeshId].getTextureId());
    glTexCoordPointer(2, GL_FLOAT, 0, mesh[meshId].subMesh[submeshId].getTexture());
 
    glDrawElements(GL_TRIANGLES, mesh[meshId].subMesh[submeshId].getTailleFaces(), GL_UNSIGNED_INT, getFace());
 
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
J’ai deja testé un code du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
 
    glBindBufferARB(GL_ARRAY_BUFFER_ARB, bufferVertex);
    glVertexPointer(3, GL_FLOAT, 0, 0);
 
    glBindBufferARB(GL_ARRAY_BUFFER_ARB, bufferNormal);
    glVertexPointer(3, GL_FLOAT, 0, 0);
 
    glBindBufferARB(GL_ARRAY_BUFFER_ARB, bufferTexture);
    glVertexPointer(3, GL_FLOAT, 0, 0);
 
    glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, bufferFaces);
 
    glDrawElements(GL_TRIANGLES, getTailleFaces(), GL_UNSIGNED_INT, 0);
 
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
mais ca m’affiche du n’importe quoi

comment faire ?

Merci