[OpenGl] Choisir la bonne méthode d'affichage (Vertex Array ?)

Choisir la bonne méthode d'affichage (Vertex Array ?) [OpenGl] - Divers - Programmation

Marsh Posté le 06-07-2010 à 11:56:58    

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 :
  1. glBegin(...);
  2. glVertex3fv(v1);
  3. ...
  4. glEnd();


Cette méthode ne me parait pas super optimisée.
 
J'ai essayé en passant par des Vertex Arrays :

Code :
  1. glEnableClientState(GL_VERTEX_ARRAY);
  2. glEnableClientState(GL_NORMAL_ARRAY);
  3. glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, indices + start);
  4. glDisableClientState(GL_VERTEX_ARRAY);
  5. 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

Reply

Marsh Posté le 06-07-2010 à 11:56:58   

Reply

Marsh Posté le 06-07-2010 à 12:30:47    

Par design, le max de perfs est obtenu via les VBO+VAO.
Après pour ce que tu veux faire faut voir avec les clip planes, ou un Geometry Shader.


Message édité par bjone le 06-07-2010 à 12:38:09
Reply

Marsh Posté le 06-07-2010 à 12:59:01    

Merci pour la réponse hyper rapide.
 
Est-il possible de placer un clip plane à un endroit et placer des triangles dans ce plan de coupe ?
 
Je ne sais pas si je suis très clair, je prends un exemple :
- j'affiche une pomme via un tableau de triangles
- je place un clip plane pour couper ma pomme en deux
- je dessine des triangles au niveau du plan de coupe pour que l'on ne puisse pas voir à l'intérieur de la pomme. On verra ainsi une pomme coupée en deux :-)

Reply

Marsh Posté le 06-07-2010 à 13:08:49    

Bah c'est toujours ton même problème:
 
http://forum.hardware.fr/forum2.ph [...] w=0&nojs=0
 
:D

Reply

Marsh Posté le 06-07-2010 à 13:23:47    

Oui, j'avais hésité à mettre un lien vers ce post. :-)
Celà me conforte dans l'idée que je ne dois pas utiliser les cliping planes.
 
Je vais regarder comment filtrer mes triangles avec les VBO+VAO

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed