Bonjour, je fais une appli de modélisation 3D, avec la possibilité de loader des modeles 3D de différents formats.
Un objet 3D est un ensemble de faces composés par des triangles.
A l'heure actuelle, je dessine pour chaque face tous les triangles, qui sont placés dans une liste d'affichage.
Debut Liste d'affichage
Tant que toute les faces ne sont pas déssinées
Tant que tous les triangles Ti d'une face n'ont pas été déssinés
Je dessine le triangle Ti
glBegin(GL_TRIANGLES)
glNormal(au Sommet 1)
glVertex(Sommet1)
glNormal(au Sommet 2)
glVertex(Sommet2)
glNormal(au Sommet 3)
glVertex(Sommet3)
glEnd();
FinTantque
FinTantque
Fin Liste d'affichage
Dans cette configuration, j'affiche un nombre concidérable de fois les memes vertex, vu que les triangles sont collés les uns aux autres.
J'aimerais utiliser GL_TRIANGLE_STRIP et GL_TRIANGLE_FAN pour optimiser l'appel à glVertex, mais mes listes de triangles décrivant les faces ne sont pas ordonnées.
Comment trouvé le bon ordre des triangles permettant d'affiché en strip ou en fan ?
Si vous avez deja concocté un algo similaire, merci de me filer un ptit coup de main, je patauge !
Bonne continuation.
Merci, trés interessant cet article, j\'ai implémenté le code qu\'il propose avec son article et ca marche du feu de dieu, j\'economise moitié de place en RAM avec mes modeles 3d chargés. Excellent, merci encore.