Bonjour,
je débute un peu dans l'OpenGL moderne, et j'ai pu voir que les fonctions tel que : glTranslated, glRotated, glScaled était notées deprecated, j'essai donc de moderniser mon code, surtout si cela me permet d'augmenter ma vitesse d’exécution.
J'explique donc mon problème: Je suis en train de totalement refaire une application CAO. J'ai donc des éléments père qui sont clonés à différents endroit. Anciennement, mon prédécesseur utilisai OpenGL version 1.1. voici un exemple de code pour l'affichage d'un élément :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 glPushMatrix( ); glTranslated(position.x(), position.y(), position.z()); glScaled(facteurZoom, facteurZoom, facteurZoom); glRotated(angle,0.0,0.0,0.0); pere.Affiche(); glPopMatrix();j'ai donc voulu modernisé tout ça en remplaçant l'appelle des fonctions glVertex3d par l'utilisation des VBO, mais du coup je ne sais pas comment appliquer mes transformations géométrique à mes modèles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void Element::Affiche() { glBegin(GL_LINES); glVertex3d (CurrentPoint.y, 0.2, CurrentPoint.x); glVertex3d (previousPoint.x, 0.2, previousPoint.z); glVertex3d (CurrentPoint.y, 0.2, CurrentPoint.x); glVertex3d (nextPoint.x, 0.2, nextPoint.z); glEnd(); }
De plus mon programme doit pouvoir afficher un grand nombre d’élément (actuellement avec 200 milles clones de 32 pères différents je stagne à 3fps)
pourriez vous m'indiquer la façon propre et optimisé de faire?
Partager