Salut, en ce moment je suis entrain de faire un petit moteur 3D basé sur opengl.
Le moteur marche bien, mais j'ai un problème de performance avec les vertex array. J'ai fait plusieurs test et les vertex array s'affiche beaucoup plus vite mais de facon hasardeuse (dés fois sa sera 90fps et d'autre 15fps pour le même objet ).
J'ai fait un test pour mesurer les performmances (en FPS) entre les vertex array et la facon native d'opengl ( glBegin(...);glVertex(...);glEnd(); )
disponible a cette adresse la : http://smartties.netne.net/fgh.rar .
(dans cette démo, l'application charge un .obj de 1mo, et qui a 15240 faces) Pouvez vous me dire si les vertex array s'affiche plus vite que les glVertex() ?
( laisser appuyer la touche " p " pour afficher l'objet en mode vertex array
et " m " pour afficher l'objet en appelant les fonction glVertex();
les Fraps par seconde son affiché dans le titre de la fenetre)
Sachant que pour dessiner mon objet avec les vertex array je fais :
Merci
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 void ...::draw_array() { glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_NORMAL_ARRAY); for(indice_face = 0; indice_face <= nb_face; indice_face++) { glVertexPointer(3, GL_FLOAT, 0, face[indice_face]->get_data_vertex()); glNormalPointer( GL_FLOAT, 0, face[indice_face]->get_data_normal()); glDrawArrays(GL_POLYGON, 0, face[indice_face]->get_nb_vertex() ); } glDisableClientState(GL_NORMAL_ARRAY); glDisableClientState(GL_VERTEX_ARRAY); }
Partager