Bonjour,
je voudrai faire un petit programme comparatif entre les différents mode d'affichage de maillages (mode immédiat, vertex array, VBO, ...) et je rencontre un soucis avec l'utilisation des VBOs qui fait que rien ne s'affiche
je suis certain que c'est une erreur tout conne mais impossible de mettre le nez dessus
j'ai bien un VBO qui est créé :
ensuite je le rempli :
Code : Sélectionner tout - Visualiser dans une fenêtre à part glGenBuffers(1, &m_vboID);
j'ai aussi essayé un seul appel à glBufferData (sans glBufferSubData) pour transférer directement la géométrie mais ça ne change rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 glBindBuffer(GL_ARRAY_BUFFER, m_vboID); glBufferData(GL_ARRAY_BUFFER, m_nCountVertices * sizeof(vec3f), 0, GL_STATIC_DRAW); glBufferSubData(GL_ARRAY_BUFFER, 0, m_nCountVertices * sizeof(vec3f), m_pVertices); glBindBuffer(GL_ARRAY_BUFFER, 0);
et je fait appel au VBO de la manière suivante :
j'ai uploadé mon code complet ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 glBindBuffer(GL_ARRAY_BUFFER, sphere.m_vboID); glVertexPointer(3, GL_FLOAT, 0, 0); glEnableClientState(GL_VERTEX_ARRAY); glDrawArrays(GL_TRIANGLES, 0, sphere.getCountVertices()); glDisableClientState(GL_VERTEX_ARRAY); glBindBuffer(GL_ARRAY_BUFFER, 0);
http://shenron.free.fr/glmeshes.zip
si quelqu'un a le temps d'y regarder
Partager