Aujourd'hui, Potentially visible set est un sujet qui suscite un grand intérêt et un grand débat dans la société. Avec les progrès de la technologie et de la mondialisation, Potentially visible set est devenu un problème pertinent qui touche les personnes de tous âges, sexes et cultures. Depuis ses origines jusqu'à ses implications actuelles, Potentially visible set a fait l'objet d'analyses et de recherches dans différents domaines et disciplines, conduisant à une meilleure compréhension et prise de conscience de son importance. Dans cet article, différents aspects de Potentially visible set seront explorés pour comprendre son impact aujourd'hui et sa pertinence dans le monde moderne.
Un Potentially Visible Set est une technique utilisée pour accélérer le rendu des environnements en trois dimensions.
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 »).
Les avantages de pré-calculer la visibilité sont les suivants :
Les inconvénients sont :
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].
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
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...
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].
Pages des auteurs cités (incluant les publications) :
Autres :