Accueil🇫🇷Chercher

Potentially visible set

Un Potentially Visible Set est une technique utilisée pour accélérer le rendu des environnements en trois dimensions.

Évolution du rendu d'un personnage 3D avec la technique du Potentially Visible Set.

C'est une forme de détermination des surfaces cachées (ou occlusion culling), basée sur des groupes de zones de l'espace (ou directement des groupes d'objets ou polygones) potentiellement visibles pré-calculés, puis lus à l'exécution pour avoir rapidement une estimation des zones et/ou polygones potentiellement visibles.

Le terme PVS est parfois utilisé pour faire référence à tout type d'occlusion culling (sachant que c'est toujours ce que ces algorithmes calculent), bien qu'on l'emploie le plus souvent pour parler d'un culling d'occlusion basé sur des listes pré-calculées de relations de visibilité entre des régions de l'espace. Afin de faire cette association, l'espace où évolue la caméra est subdivisé en régions (en général convexes) et un PVS est calculé pour chaque région. Quelle que soit la structure spatiale utilisée (bsp, octree, bvh, etc.) la plupart des algorithmes de calcul de pvs nécessitent de convertir temporairement les zones de l'espace en "secteurs" (zones définies par des polygones, les polygones à travers lesquels on peut voir sont appelés « portails »).

Avantages et inconvénients

Les avantages de pré-calculer la visibilité sont les suivants :

  • L'application a juste Ă  consulter la liste prĂ©-calculĂ©e de la zone oĂą se trouve la camĂ©ra. Cette liste sera rĂ©duite avec le culling de frustum avant l'affichage. C'est beaucoup plus rapide que de calculer l'occlusion culling en temps rĂ©el.
  • Le temps de rendu d'une image est limitĂ© Ă  la frĂ©quence de l'Ă©cran et s'il est dĂ©passĂ© le programme ne rend pas toutes les images ou ralentit. Par exemple pour un Ă©cran de 200 Hz, seulement 5 millisecondes sont disponibles pour dĂ©terminer la visibilitĂ©, envoyer les images Ă  la carte vidĂ©o, et calculer l'intelligence artificielle, la physique, et toutes sortes de routines. Le prĂ©-calcul de l'occlusion libère les ressources processeur pour garantir une vitesse maximale.

Les inconvénients sont :

  • Le stockage des PVS consomme plus de mĂ©moire (cela s'optimise avec un encodage de boolĂ©ens dans des nombres entiers).
  • Le temps d'encodage des PVS peut ĂŞtre très long si l'environnement est grand.
  • Plus les zones de l'espace sont grandes, moins l'occlusion est prĂ©cise par rapport au temps rĂ©el.

Problème principal

Le premier problème du calcul de PVS peut se décrire ainsi : à partir d'un ensemble de régions polyédrales, calculer un ensemble de régions visibles pour chaque région.

Il existe différents groupes d'algorithmes, selon le type de visibilité qu'ils pré-calculent[1] - [2].

Algorithmes conservatifs

Ce sont les algorithmes utilisés dans les applications où la qualité d'image est prioritaire : jeux vidéo, cd-rom, multimédia...

Ils surestiment la visibilité afin de n'avoir aucun trou à l'affichage. Le résultat est qu'aucune erreur d'image n'est possible, cependant, il est possible de surestimer la visibilité de façon importante et ralentir le rendu à cause de nombreuses faces recouvertes. La difficulté est de réduire cette surestimation.

On trouve de nombreux documents et Ă©tudes sur ces algorithmes[3] - [4] - [5] - [6].

L'un des algorithmes les plus performants, mais très complexe à implémenter, est la "méthode de fredo durand" qui permet de calculer directement des listes de polygones ou objets visibles, dans n'importe quelle structure de partitionnement. Il est basé sur le principe des "projections étendues" et il est accéléré par la carte vidéo: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8373&rep=rep1&type=pdf

L'algorithme le plus connu, non générique mais assez facile, est celui utilisé par l'ID Tech engine (moteur de quake). Il est similaire au clipping de portails en temps réel, à la différence que les plans de clipping ne partent pas d'un point de caméra, mais d'un portail (méthode des plans séparateurs). Pour plus d'informations, voir la source de l'id tech: http://www.shacknews.com/file/7443/quake-3-132-source-code

Algorithmes agressifs

Ils sous-estiment la visibilité de façon conséquente de telle sorte qu'aucun polygone recouvert ne soit référencé dans un PVS, d'où des trous visibles en raison de polygones partiellement visibles et non référencés[7] - [8]. Le point dur est de réduire cette marge d'erreur au minimum.

Ils sont utilisés lorsque la vitesse de rendu est prioritaire sur la qualité d'image : simulations, recherche...

Algorithmes approximatifs

Plus rapides à calculer que les deux groupes précédents mais génèrent à la fois des trous et des faces recouvertes. Sont utilisés lorsque la rapidité de l'encodage du PVS est prioritaire sur la qualité de l'image et la vitesse du rendu[9].

Problèmes Secondaires

  • Calculer une subdivision optimale afin de maximiser l'occlusion[10] - [11].
  • Compresser les listes de zones visibles afin d'optimiser la mĂ©moire[12].
  • Optimisation de l'encodage du PVS, qui peut ĂŞtre très long.
    • La principale optimisation est de s'appuyer sur une recherche de chemin de type parcours en profondeur (depth first search), de façon Ă  faire le minimum de tests. Pour tout culling basĂ© sur des portails, la recherche de chemin est requise d'office afin de trouver les suites de portails.
    • Pour les maillages complexes on simplifie la gĂ©omĂ©trie au prĂ©alable. Pour un intĂ©rieur on choisit les portails dans les zones Ă©tranglĂ©es (portes, fenĂŞtres), on simplifie leur gĂ©omĂ©trie avec des polygones convexes englobants. Pour un extĂ©rieur on modĂ©lise des boites englobĂ©es qui servent d'occluders (on peut les calculer avec une grille de discrĂ©tisation de type arbre kd ou octree pour des terrains naturels).

Remarques

  • PlutĂ´t que de calculer des listes de polygones visibles, il est plus optimal de calculer des listes de groupes de polygones visibles.
  • Calculer des listes de zones visibles plutĂ´t que d'objets visibles permet de trouver la visibilitĂ© d'objets mobiles qui se dĂ©placent Ă  travers ces zones.
  • Pour les grands espaces, on peut retrancher encore des zones au PVS avec un depth culling (agressif) pour limiter la profondeur de champ.
  • Pour les grands espaces un PVS peut ĂŞtre codĂ© sur deux niveaux d'affichage : les zones de l'arrière plan sont plus grandes et/ou contiennent une version simplifiĂ©e du maillage.
  • Pour les applications multijoueur le PVS permet d'optimiser le transfert de donnĂ©es : un joueur n'envoie ses donnĂ©es dĂ©taillĂ©es qu'aux joueurs prĂ©sents dans son PVS.

Liens

Liens externes

Pages des auteurs cités (incluant les publications) :

Autres :

Notes et références

  1. S. Nirenstein, E. Blake, and J. Gain. Exact from-region visibility culling. In Proceedings of the 13th workshop on Rendering, pages 191–202. Eurographics Association, June 2002
  2. Daniel Cohen-Or, Yiorgos Chrysanthou, Cl'audio T. Silva, and Fr'edo Durand. A survey of visibility for walkthrough applications. IEEE TVCG, 9(3):412–431, July-September 2003
  3. http://sibgrapi.sid.inpe.br/rep-/sid.inpe.br/banon/2002/10.25.09.12
  4. http://www.imr.sandia.gov/papers/imr13/ernst.pdf
  5. http://www.cg.tuwien.ac.at/research/vr/occfusion/wonka_EGWR2000.pdf
  6. http://www.tml.tkk.fi/Opinnot/Tik-111.500/2003/paperit/MikkoLaakso.pdf
  7. Shaun Nirenstein and Edwin Blake, Hardware Accelerated Aggressive Visibility Preprocessing using Adaptive Sampling, Rendering Techniques 2004: Proceedings of the 15th Eurographics Symposium on Rendering, 207- 216, Norrköping, Sweden, June 2004.
  8. Peter Wonka, Michael Wimmer, Kaichi Zhou, Stefan Maierhofer, Gerd Hesina, Alexander Reshetov. Guided Visibility Sampling, ACM Transactions on Graphics. volume 25. number 3. pages 494 - 502. 2006. Proceedings of SIGGRAPH 2006.
  9. Craig Gotsman, Oded Sudarsky, and Jeffrey A. Fayman. Optimized occlusion culling using five-dimensional subdivision. Computers & Graphics, 23(5):645–654, October 1999
  10. D. Haumont, O. Debeir and F. Sillion, Graphics Forum, Volumetric Cell-and-Portal Generation Computer, Volume 22, Number 3, pages 303-312, September 2003
  11. Oliver Mattausch, Jiri Bittner, Michael Wimmer, Adaptive Visibility-Driven View Cell Construction. In Proceedings of Eurographics Symposium on Rendering 2006
  12. Michiel van de Panne and A. James Stewart, Effective Compression Techniques for Precomputed Visibility, Eurographics Workshop on Rendering, 1999, pg. 305-316, June
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.