Bonsoir !
Je rencontre un problème pour un projet qui n'a pour but que d'afficher des objets dans l'espace 3D. L'appli est développée en C++/Qt 5.1/OpenGL 1.1.
J'aimerais laisser une base saine à ceux qui le reprendront.
C'est pourquoi j'essaie d'utiliser glVertexPointer, glDrawElements, et les tableaux d'indices, pour éviter que plusieurs sommets partagent la même position.
Admettons que j'aie une classe CGeometry, qui stocke les objets représentant des sommets dans un std::vector.
Que choisir ? Des float, pour avoir un tableau utilisable avec glDrawElements ? Problème : les sommets sont donc stockés sur 3 indices (du tableau), et si je souhaite enregistrer les sommets de l'objet dans un fichier, ou simplement afficher la liste des sommets dans le programme, ce n'est pas pratique du tout.
L'idéal serait d'utiliser QVector3D (classe permettant de représenter un sommet/vecteur dans l'espace), mais il faudrait, à partir de ces objets, créer un tableau de float à la volée à passer à glDrawElements, et cela ralentit considérablement le programme.
Que me proposeriez-vous ?
Merci à tous
Partager