Post on 03-Apr-2015
Visible Surface Determination
(Hidden Surface Removal)
Introduction
Définition:
Techniques permettant depuis un point de vue de déterminer les surfaces visibles d’une scène.
Introduction
2 familles d’algorithme de détermination des surfaces visibles:
•basés image(Z-buffer, Scanline, RayCasting, …)
•basés objet(Backface Culling, Frustum Culling, Hidden Surface Removal, …)
Hidden Surface Removal
Famille d’algorithmes:
• Utilisés au niveau Application du pipeline 3D
• Diminuent le nombre de vertex à traiter
• Généralement utilisé pour rendre une scène de manière conservative
Hidden Surface Removal
Plusieurs étapes:
• Partionnement de l’espace (Spatial partitioning)
• Détermination des surfaces potentiellement visible (PVS)
• Elimination en fonction du point de vue (Frustum culling)
Spatial partitionning
Définition: techniques permettant de subdiviser un espace. Ainsi, on transforme un problème complexe en un ensemble de sous problèmes plus simple.
Principales techniques:
• BSP (Binary Space Partitionning)
• Quadtree, octree
BSP: généralités
Plusieurs approches:
• Face
• Espaces convexes
BSP: par face
0
1 2 3
4
5
0
Vide1
4f
4b
4f
Vide5
2
Vide3
Vide4b
BSP: par face
Avantages:
• Pré-calculé
• Facilitation de l’ordre d’affichage
• Pas d’artéfact à l’affichage
Inconvénients:
• Construction
• Non optimal dans les espaces ouverts
BSP: par espace convexe
Face :
•Disjointe (D) : si pas à l’intérieur de la cellule
•Transversale (T) : si intersection avec ces deux extrémité et la cellule
•Couvrante (C) : si confondu avec un cote de la cellule
•Incidente (I) : si non
a
bd
c
g
fe
e
a = C, b = D, c = C, d = C, e = C, f = D, g = D
a = C, b = C, c = C, d = D, e = C, f = I, g = If
a = C, b =C, c = D, d = D, e = C, f = C, g = I
a = D, b = C, c = C, d = D, e = C, f = C, g = D
g
a = C, b = C, c = D, d = D, e = D, f = C, g = C
a = C, b = D, c = D, d = D, e = C, f = C, g = C
a = C, b = C, c = C, d = C, e = T, f = I, g = I
BSP: par espace convexe
Avantages:
• Pré-calculé
• Facilitation de l’ordre d’affichage
• Repérage facile dans la scène
Inconvénients:
• Construction
• Non optimal dans les espaces ouverts
Quadtree/Octree
Quadtree/Octree
Avantages:
• Pré-calculé
• Construction
• Repérage facile dans la scène
Inconvénients:
• Non optimal dans les espaces fermés
• Génère de nouvelles faces
PVS: Généralités
Définition:C’est l’ensemble des cellules potentiellement
visible depuis une cellule donnée.Plusieurs étapes:• Graphe d’adjacence• Ligne de vue à travers une séquence de
portails
PVS: Graphe d’adjacence
a
bd
c
g
fe
e : O
{a, c, d, e} f : NO
{b, c, e, f}
g : NO
{a, e, f, g} {a, f, g, b}
Plan opaque : O
Plan non opaque : NO
PVS: Ligne de vue
AB
CE
D
Depuis A, on peut potentiellement voir :
A (B)A (B, C)A (B, C, D)A (B, C, D)
Frustum culling
Effectué pendant l’exécution car dépend du point de vue.
Plusieurs techniques applicables à nos arbres de scènes.
Nous allons traiter la technique du Portal
Portal
AB
CE
D
Portal
A
B
CE
D
Conclusion
• Techniques haut niveau
• Pas d’implémentation hardware
• Algorithme très performant
REFERENCES
Quake’s Visible Surface Determination – Mickael ABRASH – 1995 Computer Graphics : Principles and Practice – James D. FOLEY et al – 1994Visible Preprocessing for Interactive Walkthroughs – Seth TELLER – 1991Visible computations in densely occluded polyhedral environment – Seth TELLER
WEB
http://www.siggraph.orghttp://www.gamasutra.comhttp://hulud.planet-d.net/bsp.html
Moteur de recherche
http://citeseer.nj.nec.com/cs