La synthèse d`images

publicité
La synthèse d'images
II. Techniques d’ombrage
Plan du cours
2
I.
Retour sur le pipeline OpenGL
II.
Techniques d’ombrage
A.
La problématique des ombres
B.
Ombrages discontinus temps réel
C.
Ombrages continus
D.
Ombrages et dynamique
III.
Cas du moteur de rendu Halo 3
IV.
Lancers de rayons et consort
V.
Photon mapping
VI.
Radiosité & PRT
VII.
Simple diffusion & milieux participants
La synthèse d'images
I. Techniques d’ombrage
A. La problématique des ombres
Problématique des ombres
 L’intérêt des ombres :
 Positionnement relatif des objets entre eux
J.-M. Hasenfratz, M.
Lapierre, N. Holzschuch
and F. Sillion,
A Survey of Real-time Soft
Shadows Algorithms
4
Problématique des ombres
 L’intérêt des ombres :
 Positionnement relatif des objets entre eux … et par rapport à
la caméra !
5
Problématique des ombres
 L’intérêt des ombres :
 Détermination des caractéristiques géométriques des objets
6
Problématique des ombres
 L’intérêt des ombres :
 Globalement on a plus d’information
7
Problématique des ombres
 Nature du problème :
 Pour chaque point vu par la caméra
 Est il illuminé directement par la / les sources de lumière
 Problème des ombres, problème …
… d’illumination locale ?
… d’illumination globale ?
8
Problématique des ombres
 Complexité :
 Pour chaque point rendu
 Pour chaque source de lumière ponctuelle
Toutes les surfaces peuvent potentiellement intercepter la
lumière
 Chaque surface crée un volume d’ombre
9
Problématique des ombres
 Plusieurs type d’ombre :
 Ombres attachées
 Visible sur les faces des objets opposées à
la source lumineuse
 Ombres projetées
 Visible lorsqu’une ombre tombe sur un
objet faisant face à la lumière
 Ombres propres
 Ombre projeté d’un objet sur lui même
10
Problématique des ombres
 De plus :
 Source ponctuelle vs. Source surfacique (volumique)
 Engendre ombre discontinue (dure) ou ombre continue (douce)
 Déplacement des objets
 L’ombre doit suivre
 Déplacement de la source lumineuse
 Ombrage dit dynamique
 Peut poser des problèmes
11
Ombre et équation du rendu


 

Le ( , x, u )   ( , x, u )    db ( , x, u , u ' ) Le ( , x, u ' ) cos  ' d '

 

  tr ( , x, u , u ' ' ) Le ( , x, u ' ' ) cos  ' ' d ' '

12
La synthèse d'images
I. Techniques d’ombrage
B. Ombrage discontinu temps réel
Ombrage discontinu
 Hypothèse : lumières ponctuelles ou directionnelles
 Les ombres sont très marquées
14
Ombrage discontinu
 Plusieurs méthodes temps réel
 Méthodes spécifiques :
 Pour un personnage
 Pour un objet
 Light mapping (précalculs)
 Algorithme des ombres projetées : Shadow mapping (& Co)
 Algorithme des volumes d’ombre : Shadow volume (& Co)
 Lancer de rayons
15
Shadow mapping
 Idée :
 Si un point est situé à l’ombre d’une lumière, c’est qu’il existe
un autre point, plus proche de la lumière, qui est situé entre ce
point et la source de lumière
16
Shadow mapping
 Exploitation
 Faire une carte de profondeur depuis la source lumineuse
 Lors du rendu d’un point, calculer sa profondeur depuis la
source
 Faire la comparaison avec le pixel de même position dans la
carte de profondeur
 Algorithme de Williams (1978)
17
Shadow mapping
Un exemple d’implémentation de shadow mapping
Rendu de la scène dans la carte de profondeur (Z-buffer) du point de vue caméra
Pour chaque source ponctuelle
Passe 1 :
Initialisation de la matrice de projection caméra au point de vue de la source
Rendu dans la carte de profondeur.
Stockage de la carte de profondeur dans une texture d’ombre
Passe 2 :
Rétablissement de la matrice caméra au point de vue de l’observateur
Initialisation de la matrice de projection de texture
Activation de la texture d’ombre et de la génération automatique des coordonnées de texture
Rendu dans la zone tampon : Si ZP=ZQ alors Stencil =1 sinon Stencil = 0
Passe 3 :
Rétablir les textures de la scène et la matrice de projection de texture
Rendu de la scène en utilisant les valeurs dans la zone tampon :
Couleur pixel = Couleur pixel + Couleur illu * Stencil
Fin pour
18
Shadow mapping
Avec :
ZP
Profondeur du point vu de la source
ZQ
Profondeur du point vu de la caméra
Stencil
Valeur de la zone tampon pour le pixel
Couleur pixel
Valeur de couleur du pixel présent dans la zone mémoire image
Couleur illu Couleur de la texture utilisée ou du
modèle d’illumination utilisé pour ce pixel
 Implémentation sur carte graphique
 M. Segal et al., Fast Shadows and Lighting Effects using Texture
Mapping 1992
 Cf. ci dessus
 W. Heidrich, High-quality Shading and Lighting for Hardware-
accelerated Rendering, 1999
 Utilise les textures projetées
19
Shadow mapping
 Avantages :
 Méthode très rapide pour dessiner les ombres
 Self shadowing
 Ne dépend pas de la complexité des objets ou de la scène
 Ni de la modélisation de la scène
 Désavantages :
 Gourmand en mémoire
 Sauf pour lumière spot
 Phénomène de crénelage
(aliasing)
20
Standard Shadow Map
aliasing
21
undersampled
Perspective Warping
Perspective shadow maps (Stamminer, Drettakis 2002)
22
Logarithmic Perspective Warping
Logarithmic perspective shadow maps (Lloyd et al. SIG 2008)
24
Single shadow map warping
 Perspective shadow maps
(PSMs)
 [Stamminger and Drettakis
2002]
 Light-space perspective
shadow maps (LiSPSMs)
 [Wimmer et al. 2004]
 Trapezoidal shadow maps
 [Martin and Tan 2004]
25
Single shadow map warping
 Warping cannot be used
for all light directions
26
Face partitioning
 Perspective warped cube
maps
 [Kozlov 2004]
27
z-partitioning
 Cascaded shadow maps
 [Engel 2007]
 Parallel split shadow maps
 [Zhang et al. 2006]
 Separating-plane shadow
maps
 [Mikkelsen 2007]
28
z
z-partitioning
 Cascaded shadow maps
 [Engel 2007]
 Parallel split shadow maps
 [Zhang et al. 2006]
 Separating-plane shadow
maps
 [Mikkelsen 2007]
29
z
Adaptive partitioning
 Adaptive shadow maps
 [Fernando et al. 2001]
 Queried virtual shadow maps
 [Geigl and Wimmer 2007]
 Fitted virtual shadow maps
 [Geigl and Wimmer 2007]
 Resolution matched shadow
maps
 [Lefohn et al. 2007]
 Tiled shadow maps
 [Arvo 2004]
 Multiple shadow frusta
 [Forsyth 2006]
30
Adaptive Shadow Maps
Méthode d’échantillonage
 Scene-independent
 Single SM warping
 Face partitioning
+Lower, nearly constant
cost
– Higher error
 z-partitioning
 Scene-dependent
 Adaptive
 Irregular
31
+ Lower error
– Higher, variable cost
Filtrage des cartes d’ombre
 Percentage closer filtering
 [Reeves et al. 1987]
 Pour éviter le résultat binaire 0, 1
 Approximation d’ombre douce
 Pas « implémentable » sur carte graphique
Variance shadow maps
 Variance Shadow Maps
 [Donnely and Lauritzen 2006; Lauritzen and McCool 2008]
 Convolution shadow maps
 [Annen et al. 2007]
 Exponential shadow maps
 [Salvi 2008; Annen et al. 2008]
32
Shadow mapping
 Variance shadow maps (06)
 Remplace la profondeur par moyenne / écart type
33
Shadow volume
 Exemple :
34
Shadow volume
 Idée :
 Calculer les zones d’ombre explicitement
 Pour se faire, dessiner des plans d’ombre à partir du point source et des
silhouettes des objets
 Détermination en étirant
à l’infini les segments
silhouette dans la
direction point sourcesegment
 Le volume d’ombre est
totalement déterminé
par ses bords
35
Shadow volume
 Ombrage d’un point donné :
 On compte les plans d’ombre traversé
 +1 pour les plans d’ombre faisant face à la caméra
 -1 pour les plans d’ombre opposé à la caméra
 Algorithme de Crow (1977)
36
Shadow volume
 Initialement réalisé avec un BSP-Tree
 Solution très onéreuse
 Algorithme optimisé successivement
 De nouvelle stratégie d’implémentation :
 Fuchs et al, Fast Spheres, Shadows,Textures,Transparencies, and Image
Enhancements in Pixel Planes (SIG’85)
 Heidman, Real Shadows Real Time (1991)
 Utilisation du Stencil Buffer
 Algorithme final robuste et full hardware :
Everitt et Kilgard (ATI) 2002
 Résout le problème de la position de la caméra
37
Shadow volume
 Implémentation :
Initialisation de la matrice de projection pour englober tout l’espace jusqu’à l’infini
Rendu de la scène en lumière ambiante
Désactiver l’écriture sur la carte de profondeur
Activer le mélange additif des couleurs dans la zone mémoire de l’image
Pour chaque source ponctuelle
Initialisation à zéro de la zone tampon.
Désactiver le rendu des couleurs
Activer les tests et l’écriture automatique sur la zone tampon
Pour chaque objet 3D
Déterminer pour toutes ses surfaces si elles sont ou non
orientées en direction de la caméra
38
Fixer l’opération sur la zone tampon à l’incrémentation
Rendu de toutes surfaces et plans d’ombre faisant face à la caméra
Shadow volume
Fixer l’opération sur la zone tampon à la décrementation
Rendu de toutes surfaces, projetées à l’infini, et des
plans d’ombre ne faisant pas face à la caméra
Fin Pour
Activer le modèle d’illumination de la lumière
Activer l’écriture des couleurs
Activer le test de profondeur sur l’égalité :
seul ce qui est visible est dessiné
Activer le test sur la zone tampon : Écriture si le tampon est à 0
Rendu de la scène
Fixer le test de profondeur à inférieur ou égal
Fin Pour
39
Shadow volume
 Avantages :
 On obtient les ombres précises
 Utilisable pour sources ponctuelles, spot et directionnelle
 Prend en compte l’auto ombrage (self shadowing)
 Désavantages :
 Dépend de la complexité de la scène
 Comportement distinct si la caméra est hors ou dans l’ombre
 Fillrate important
40
La synthèse d'images
I. Techniques d’ombrage
C. Ombrage continu
Ombrage continu
 Le cas réaliste
 Même le soleil génère des ombres douces
 Différences ombre douce et dure
42
J.-M. Hasenfratz, M. Lapierre, N. Holzschuch and F. Sillion,
A Survey of Real-time Soft Shadows Algorithms
Ombrage continu
 Deux approches différentes
 Basé image (shadow mapping)
 Basé objet (shadow volume)
 Géométrie des ombres douces :
43
Ombrage continu

Basé image / shadow maps
1.
2.
3.
4.
5.
44
Multiple shadow maps (sample sur source) : crée une
texture d’ombre douce
Layered attenuation maps
Détermination de n shadow maps et du pourcentage de
visibilité de la source
Shadow map + analyse d’image
Convolution shadow maps / forme source
Ombrage continu basé image
 Multiple shadow maps (Heckbert & Herf 97)
 Choix d’un receveur (objet qui reçoit l’ombre)
 Calcul de n shadow maps ajoutées entre elles
 Par rapport à n points échantillonnés sur la source
 Donne une texture d’ombre
 Avantages :
 Simple et, suivant les conditions, réalistes
 Simple a paralléliser
 Désavantages :
 Réduit à un receveur
 Long (n images pour une ombre)
 Il faut au moins 9 échantillons pour produire une ombre correcte
45
Ombrage continu basé image
Rendu des surfaces en lumière ambiante
Activer le mélange additif des couleurs dans la zone mémoire de l’image
46
Pour chaque lumière
Échantillonner la lumière si elle est surfacique
Pour chaque surface
Initialiser à blanc la texture d'ombre correspondant à la lumière
Pour chaque point échantillonné
Initialisation de la matrice de projection
Initialisation d'une texture temporaire à blanc
Fixer la couleur à noir
Rendu de la scène dans la texture temporaire
Ajout de la texture temporaire à la texture finale
Fin Pour
Diviser les valeurs dans la texture d'ombre par le nombre
d'échantillons
Fin Pour
Rendu des surfaces en utilisant les textures d'ombre
Fin Pour
Ombrage continu basé image
 Layered attenuation maps
 Choix de n échantillons sur la source
 Calcul d’une vue par échantillon. Pour chaque pixel de ces vues
 On prend les objets les plus proches de la source dans l’ordre
 Pour chaque objet, on compte le nombre d’image qui le voit : donne le
pourcentage d’occlusion.
 Chaque objet crée un layer (pour ce pixel)
 Lors du dessin, pour chaque pixel
 parcours de la layered attenuation maps et si le pixel (l’objet) est présent,
atténuation, sinon il est ombré
47
Ombrage continu basé image
 Layered attenuation maps
 Avantages :
 Une shadow map pour tout la scène
 Désavantages :
 Environ 4 layer en moyenne par pixel
 Taille de la shadow maps * 4
 Toujours aussi long à calculer (autant de rendu que d’échantillons)
48
Ombrage continu basé image
 Pourcentage de visibilité
 Rajout à la shadow map d’un canal de
visibilité
 Obtenu par interpolation simple entre 2
échantillons sur la source lumineuse
 Utilisé pour :
 Des sources linéaires (Heidrich et al, 2000)
 Des sources polygonales (Yin et al, 2002)
 Avantages, inconvénients :
 Long
 Ombres non exactes
49
Ombrage continu basé image
 Ombre continu à un échantillon
 On calcul une shadow map (au centre de la source)
 On modifie la zone d’ombre binaire en une zone de pénombre
claire (outer penumbra) et sombre (inner penumbra)
50
Ombrage continu basé image
 Ombre continue à un échantillon
 Calcul de la shadow map
 Lors du rendu d’un pixel P
 Si il est dans l’ombre,
on trouve le pixel
P’ éclairé le
« plus proche »
 Si il est illuminé,
on trouve le pixel
P’ dans l’ombre
le « plus proche »
51
Calcul d’un coefficient d’atténuation
fondé sur la distance P,P’
Ombrage continu basé image
 Ombre continue à un
échantillon (simple sample soft
shadows)
 Avantages :
 Méthode simple et rapide
(partie la plus lente :
recherche du voisin –
paramètre R)
 Rendu visuellement plaisant :
bon lissage
 Rendu rapide
 Désavantages :
 Ombres approchées à très
approchées
52
Stefan Brabec and Hans
Hans--Peter Seidel. Single sample soft shadows using depth maps
maps.. In
Graphics Interface, 2002.
Ombrage continu basé image
 Shadow map & convolution
 Définir un set d’objet occultant et un receveur
Cyril Soler and
François X. Sillion. Fast
calculation of
soft shadow textures
using convolution. In
SIGGRAPH 1998
53
Ombrage continu basé image
 Shadow map & convolution
 Méthode :
 Choix d’un ensemble d’occultants et d’un ensemble de receveurs
 Détermination de trois plans parallèles :
54
Ombrage continu basé image
 Shadow map & convolution
 Avantages :
 Convolution peu chère
 Méthode pour subdiviser objets occultants ou receveur afin d’améliorer
les approximations
 Une texture d’ombre pour n receveurs
 Aspect graphique des ombres
 Désavantages :
 Ombre vraiment peu réalistes physiquement
 Quelques cas dégénérés (polygones allongés dans le sens de la sources)
55
Ombrage continu basé objet

Trois approches :
Échantillonnage de la source et multiples rendu en shadow
volume
2. Étendre les volumes d’ombre
3. Calcul direct de la zone de pénombre
1.
56
Ombrage continu basé objet
 Échantillonnage de la source
 Technique du shadow volume pour chaque échantillon
 Rendus indépendants et rassemblés ensuite
 Avantages :
 Simple
 Désavantages :
 Très long, énorme fill rate
57
Ombrage continu basé objet
 Soft planar shadows
 Haines 2001
 Crée une texture d’ombre
 Méthode :
 Calcul de la texture d’ombre avec l’algorithme shadow volume
 Pour chaque silhouette :
 On extrait des cônes de chaque point de la silhouette
 On extrait des hyperboloïde de chaque segment
 On dessine (projette) ces surfaces sur le receveur
58
Ombrage continu basé objet
 Soft planar shadows
 Avantages :
 Méthode relativement rapide
 Désavantages :
 Approximation des ombres
 Seules la pénombre claire (« outer penumbra ») est dessinée
 Restreint à des ombres planaires
 Amélioration :
 Wyman et al (2001) : Penumbra maps. Implémentation sur cartes
graphiques
 D’autres méthodes de ce type :
 Smooties
59
Ombrage continu basé objet
 Soft ShadowVolume :
 Assarson et al., 2003
 Real time soft shadows
60
Ombrage continu basé objet
 Soft ShadowVolume
 Méthode :
 Calcul des silhouettes objets par rapport à un point source unique
 Pour chaque segment, on détermine un contour silhouette à partir de la
source et du segment :
61
Ombrage continu basé objet
 Méthode :
 On fait un rendu classique en shadow volume
 Obtention des ombres dures
 Obtention des ombres douces par un nouveau rendu
 Rendu des triangles face caméra
 Un calcul est fait pour les pixels recouvert par de tels triangles et dans
l’ombre
 Un autre est fait pour les pixels recouvert par de tels triangles et
illuminés
 Ces calculs déterminent le pourcentage de visibilité de la source
(shaders)
62
Ombrage continu basé objet
 Avantages :
 Très temps réel (50 fps pour scène modérément complexe -
1000 plans d’ombre)
 Ombre visuellement très satisfaisante
 Programmable entièrement sur carte graphique
 Désavantages :
 Une approximation sur la détermination de la silhouette initiale
(un sample centré)
63
La synthèse d'images
I. Techniques d’ombrage
D. Le problème des scènes
dynamiques
Ombrage et scène dynamique
 Contraintes pour les ombres en temps-réel
 Lampes dynamiques
 Shadow casters dynamiques
 Surfaces ombrées dynamiques
 Zombies en option
65
Ombrage et scène dynamique
 Shadow maps :
 Lumière dynamique :
 Recalcul de tout
 Shadow casters dynamiques
 Pas de problème
 Surfaces ombrées dynamiques
 Pas de problème
 Attention au crénelage
 Caméra mobile
 Modifie le perspective shadow mapping
66
Ombrage et scène dynamique
 Shadow volume :
 Lumière dynamique :
 Recalcul des silhouettes de tous les shadow casters
 Shadow casters dynamiques
 Recalcul de leur silhouette
 Surfaces ombrées dynamiques
 Pas de modification
 Caméra mobile
 Aucune importance
67
Téléchargement