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();
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();
}
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.
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?