Bonjour,
Je souhaite afficher plusieurs milliers de triangles en OpenGl. Je connais les coordonnées, les normales et les couleurs de chaque pixels. Aucun problème de ce coté là.
Le nombre de triangles à afficher varient constamment car j'effectue une sélection en temps réel. Par exemple, je ne vais afficher que les triangles dont les coordonnées sont inférieures à telle valeur sur l'axe x, telle valeur sur l'axe y etc etc
Au début, je pensais simplement utiliser :
Code :
- glBegin(...);
- glVertex3fv(v1);
- ...
- glEnd();
|
Cette méthode ne me parait pas super optimisée.
J'ai essayé en passant par des Vertex Arrays :
Code :
- glEnableClientState(GL_VERTEX_ARRAY);
- glEnableClientState(GL_NORMAL_ARRAY);
- glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, indices + start);
- glDisableClientState(GL_VERTEX_ARRAY);
- glDisableClientState(GL_NORMAL_ARRAY);
|
Cette méthode est très rapide mais je ne vois pas comment filtrer facilement les triangles à afficher...
Faut-il utiliser des VBO (Vertex Buffer Object) ?
Je n'ai pas essayé cette solution, je suis en train de me documenter. A part ces solutions, je ne vois pas trop...
Merci pour votre aide, conseils :-)
Mathieu