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 polygones potentiellement visibles pré-calculés, puis lus à l'exécution pour avoir rapidement une estimation des polygones 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.
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.
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.
Ce type d'algorithmes est très répandu, on trouve une bonne documentation sur les deux plus connus :
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. 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.