Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2221 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

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

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2007353
Heedoo
Posté le 06-07-2010 à 11:56:58  profilanswer
 

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

mood
Publicité
Posté le 06-07-2010 à 11:56:58  profilanswer
 

n°2007366
bjone
Insert booze to continue
Posté le 06-07-2010 à 12:30:47  profilanswer
 

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
n°2007375
Heedoo
Posté le 06-07-2010 à 12:59:01  profilanswer
 

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 :-)

n°2007376
bjone
Insert booze to continue
Posté le 06-07-2010 à 13:08:49  profilanswer
 

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

n°2007378
Heedoo
Posté le 06-07-2010 à 13:23:47  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

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

 

Sujets relatifs
comment verifier existence valeur dans array sans passer par foreach?perl Net::Telnet : comment choisir l'interface ?
fonction exec et affichage problème apparition fenetre dosJTable , probleme affichage
Mauvais affichage menu SPRY sous IEaffichage datagrid en struts
problème affichage données mysql/phpProblème d'affichage d'image avec imagepng (débutant)
array avec une condition[AC-2007]Affichage de tous les résultats d'une requête dans un seul ch
Plus de sujets relatifs à : [OpenGl] Choisir la bonne méthode d'affichage (Vertex Array ?)


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR