|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2006 Messages : 2 ![]() |
Bonjour,
Je souhaiterais utiliser des méthodes optimales d'affichage de grand nombre d'objets (plusieurs centaines de milliers) Ces objets doivent ressembler à des sphère/disque mais n'ont pas besoin d'en être réellement. Si je pouvais être orienté sur des pistes, je vous en serait grandement reconnaissant. A défaut je fais cela avec des GL list (display list), mais le résultat n'est pas satisfaisant. Merci d'avance. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Alexandre LaurentÉtudiant Inscription : mai 2008 Messages : 6 551 ![]() |
Bonjour,
Si par GL_list vous parlez des listes d'affichages (display list), alors vous devez changer de méthode. En effet, une méthode à base de Vertex Buffer Object (VBO) sera beaucoup plus efficaces pour un grand nombre d'objets. Maintenant, si vous ne voyez pas tout les objets en même temps, dans le champ de la caméra, il faudra penser à voir pour un algorithme de frustrum culling. Et si vous êtes dans un cas où les mises à jour sont importantes (changements de forme / déplacement, ou autre), alors je vous conseille un algorithme de partitionnement (genre octtree ou ks tree (je crois que c'est le nom)).
__________________
Vous souhaitez participer à la section Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
|
20
|
|
|
#3 |
|
Membre habitué
![]() Inscription : décembre 2008 Messages : 123 ![]() |
Instanciation de geometry si les objets sont les mêmes dans certains cas.
Aussi un système d'occlusion culling PVS serait adapté, bien qu'il faut un certain temps de traitement avant de pouvoir être utilisable. |
|
|
10
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Développeur informatique Inscription : novembre 2006 Messages : 4 215 ![]() |
Yes il faut passer par des algorithmes complexes dont parlent Littlewhite et Yamashi.
Peut-être qu'un simple Frustum Culling suffit
__________________
Alea Jacta Est |
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() Inscription : mars 2011 Messages : 431 ![]() |
Salut,
S'ils s'agit de petits disques (<10px de diamètre), tu peux passer par des point sprite (c'est deprecated au fait ça ?), ou un shader pour simuler un effet sphérique sur le disque. Tu mets tes points dans un VBO, et tu fait juste un glDrawArrays(GL_POINTS, ...). Les cartes actuelles affichent facilement plusieurs centaines de millier de points sans algo de culling particulier. Cette solution est très simple et est peut être suffisante pour tes besoins.
__________________
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry |
|
|
10
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2009 Messages : 60 ![]() |
non les points sprites ne sont pas deprecié dans opengl 3 et supèrieur
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mai 2006 Messages : 2 ![]() |
Vous m'avez permis de trouver mon bonheur.
Merci à tous pour vos réponses claires et précises. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com