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