Éclairage global, volumes, sources larges Nicolas Holzschuch iMAGIS/GRAVIR IMAG
Éclairage global Techniques locales : Techniques globales : textures, BRDF, rendu volumique Techniques globales : radiosité, lancer de rayons
En résumé :
Il manque quelque chose Éclairage global avec BRDF quelconques Et volumes participants
Éclairage global avec BRDF quelconques Monte-Carlo Théorie Pratique : ça marche pas pourquoi ? Bi-directional Path Tracing Metropolis Light Transport Photon Maps
Équation de rendu L ( x , ) ( x , ) L cos d Équilibre énergétique : Radiance émise = radiance propre + radiance réfléchie L ( x , ) e bd ( x , ) L i cos d
Solution formelle de l'équation Opérateur de réflexion Opérateur intégral Agit sur la radiance ( RL )( x , ) bd ( x , ) L i cos d
Solution formelle L RL L [ I R ] L ( R ) Donc : D'où : Avec une série de Neumann : L [ I R ] 1 e L ( R n ) e
Sens physique L ( R ) Radiance propre (Le)… Radiance propre (Le)… plus radiance réfléchie une fois (RLe)… plus radiance réfléchie deux fois (R2Le)… plus radiance réfléchie trois fois…
Intégration de Monte-Carlo Chaînes de Markov Méthode générique de calcul d'intégrales multi-dimensionnelles Principe (en gros) : Échantillonner au hasard la fonction à intégrer Additionner les échantillons multipliés par leur probabilité Le résultat, c'est la valeur de la fonction
Intégration, dimension finie À titre d'exemple Résoudre : x=a+Mx Chemin w de longueur k : w=(n1, n2,…,nk) ni entier entre 1 et n. Valeur de xi pour ce chemin :
Dimension finie (suite) Moyenne sur tous les chemins Valeur exacte = moyenne sur tous les chemin possibles Valeur approchée = moyenne sur tous les chemins testés Probabilité d'un chemin : Produit de l'état initial (n0) et des probabilités de chaque transition entre état (nini+1) w=(n1, n2,…,nk)
Équation de rendu Pareil, mais en dimension infinie : Chemin : Choisir un chemin au hasard, De longueur k Calculer la valeur de l'état pour ce chemin Moyenne des valeurs trouvées, pondérée par la probabilité du chemin Chemin : Chemin parcouru par la lumière État : irradiance sur une surface Transition : passage d'une surface à une autre
Chemin Point de départ : un pixel de l'image, x Premier état : la radiance de la surface visible de ce pixel, au point x' État suivant : la radiance d'une surface visible de x', x" Transition : BRDF au point x', venant de x'', dans la direction de x État suivant : la radiance d'une surface visible de x'', x'''...
Chemin Pour chaque étape de la chaîne de Markov, mettre à jour l'intensité du pixel : r : BRDF, quelconque G : terme géométrique, 1/r2 et visibilité
Choix du chemin Pixel de départ, fixé. Pour chaque point d'intersection : Tirer la direction du rayon réfléchi au hasard En tenant compte de la BRDF Recommencer pour chaque pixel 10, 100, 1000 échantillons par pixel L'image converge lentement : Neige au début, puis image bruité, puis image
Terminaison du chemin Nombre aléatoire t entre 0 et 1 Comparer avec la réflectance r t > r : absorption t < r : réflexion Autres techniques: Poids w de la particule influencé par la réflectance Terminaison si w en dessous d'un certain seuil Roulette russe : on augmente le poids des chemins survivants
(Distributed) Light Ray-Tracing Pareil, mais les rayons partent des sources lumineuses Sources lumineuses potentiellement surfaciques Échantillonnage spatial de la source Solution indépendante du point de vue Stockage sur les surfaces Bonne représentation des caustiques Bruité : phase de lissage des échantillons Reconstruction de la fonction de radiance
Light ray-tracing
Méthodes multi-passes MCRT : moins il y a de rayons, plus ça converge vite Cas idéal : toutes les surfaces sont presque spéculaires Cas le pire : toutes les surfaces sont diffuses Idée : Traiter chaque chemin par la méthode adaptée Les surfaces diffuses par la radiosité L'éclairage direct par Eye Ray-Tracibng Les caustiques par Light Ray-Tracing Les choses compliquées par MCRT
Combinaison des méthodes Problèmes : Ordre des méthodes Représentation commune (LRT/Radiosité) Ordre : Light Ray-Tracing Passe de radiosité Passe de MCRT Passe de Eye Ray-Tracing
Bi-directional Path Tracing Combinaison de deux méthodes : Light Ray-Tracing : chemin partant de la source Eye Ray-Tracing : chemin partant de l'œil Plus des rayons connectant chaque point des deux chemins Valeur au pixel calculée par ces rayons
BDPT : flux à un pixel Cij : contribution après i rebonds depuis la source, j rebonds depuis l'œil wij : poids. À choisir (degré de liberté) 1 si i=0, 0 sinon : MCRT classique
Choix des poids Wj = degré de spécularité au point yj Surfaces diffuses : light path + important Surfaces spéculaires : eye path + important
Wj = degré de spécularité au point yj
Metropolis Light Transport Au départ, MCRT Nombreux chemins initiaux Mutations des chemins Bouger un point du chemin Allonger le chemin Techniques pour choisir les mutation de façon efficace
Mutations
Mutations
Mutations
Metropolis : résultats
Bi-directional Path Tracing, 40 échantillons par pixel
Metropolis LT, 250 mutations par pixel (même temps de calcul)
Bi-directional Path Tracing, 210 échantillons par pixel
Metropolis LT, 100 mutations par pixel (même temps de calcul)
Photon Maps Première passe : construction On envoie des photons dans la scène En partant de la source Path-tracing classique : Ils sont réfléchis, meurent… Chaque photon touchant une surface est stocké dans la photon map de la surface Avec sa direction incidente Balanced k-d tree
Affichage des photon maps Pour afficher un point x d'une surface : On prend la sphère de centre x de rayon r tel que N photons sont dans la sphère Élément de surface d'aire pr2
Filtre des photons Densité de photons trop faible : Pour éviter ça : Flou Pour éviter ça : On filtre. L'importance des photons dépend de la distance à x : Normalisation du filtre
Effet du filtre
Photon Map seule (5 mn)
Photon Maps : algorithme complet Étape 1 : construire 2 photon maps Caustiques : photons à haute énergie,très dense Éclairage global : moins de photons, à peu près tous la même énergie Stockage de photons d'ombre Étape 2 : Rendu Par MCRT Séparer les termes pour un meilleur traitement Traitement précis ou approché
Rendu Traitement précis : Traitement approché : Séparation : Pour les surfaces visibles directement de l'œil, ou après quelques réflexions spéculaires Si la longueur du rayon est faible Traitement approché : Si le rayon a été réfléchi par une surface diffuse Si le poids du rayon est faible Séparation : Éclairage direct Réflexions spéculaires Caustiques Éclairage indirect
Éclairage direct Shadow rays Traitement précis : Traitement approché : Utilise les photons d'ombre Si tous les photons voisins sont identiques (ombre ou lumière) pas besoin de lancer un rayon Sinon, rayon d'ombrage Traitement approché : On prend la global photon map (sans shadow ray)
Réflexions spéculaires Radiance réfléchie par les surfaces spéculaires ou quasi-spéculaires MCRT Importance guidée par la BRDF Cas optimal : converge vite.
Caustiques Par la caustics photon map Visualisation directe de la photon map Pas faisable avec MCRT directement
Éclairage indirect Lumière réfléchie au moins une fois sur une surface diffuse Douce Calcul approché : déjà vu Calcul précis : MCRT En utilisant la photon map et la BRDF : Directions incidentes importantes Irradiance gradient : interpolation des valeurs voisines
Photon map, 298 s
Rendu complet, 5 mn+51 mn
Milieux participants
Équation des milieux participants Coefficient d'absorption: ka Coefficient de dispersion : ks Coefficient d'extinction : kt=ka+ks Émission de lumière : Le Variation de la radiance : dL ò = - k L + k L + k L ( q , j ) f ( q , j ) d w t a e s i ds W
Résoudre l'équation k + - = L ds dL Dépendance volumique Complexité cubique Plus de conservation de la lumière Simplifications : Sans dispersion Dispersion, milieux isotropes Sans dispersion: k + - = L ds dL e a
ò Sans dispersion L ( s ) = L ( ) t ( s ) + L ( u ) k ( u ) t ( s - u On intègre : t : transmittance le long du rayon : proportion de lumière transmise s ò L ( s ) = L ( ) t ( s ) + L ( u ) k ( u ) t ( s - u ) du e a s ò - k ( u ) du t t ( s ) = e
Sans dispersion L ( s ) = L ( ) e + L ( 1 - e ) Intégration facile avec RT/MCRT Pire : milieux homogènes : Modèle simple de brouillard utilisé dans les cartes graphiques L ( s ) = - k L ( ) e s + - k L ( 1 - e s ) a a e
Dispersion isotrope : discrétisation Fonction de phase constante : f=1/4p On discrétise tout (volumes et surfaces) Radiosité des surfaces : Bi=pLi Radiosité des volumes : Bk=pJk Facteurs de forme : Surface-surface: SiSj Surface-Volume: SiVk Volume-Volume: VkVm
Dispersion isotrope : discrétisation Surfaces: Volumes: ÷ ø ö ç è æ + r = å volumes surfaces k i j B V S A E ÷ ø ö ç è æ + k = å volumes surfaces ) ( 4 m j t s a B V S E k t s R = ) ( = albédo du volume
Dispersion isotrope Résolution en deux passes : Résolution du problème discret Calcul de la radiance pour toutes les surfaces et les volumes Affichage par les méthodes de rendu volumique Plus traitement des surfaces Interpolation essentielle
Photon Map pour milieux participants Y compris dispersion anisotrope On trace des photons partout, y compris dans le volume Photon dans le volume : Sans interagir (traversée) Avec interaction (dispersion/absorption) Si interaction, stockage Probabilité d'interaction :
Photon maps et milieux participants
Rendu des photon maps Ray-marching algorithm Marche par étapes Atténuation de la radiance au point précédent Addition de l'émission et du in-scattering Supposés constants par étape Étapes adaptatives si variation brutale
Bibliographie Monte-Carlo : Multi-passes : Photon Maps : Lafortune, E. P. et Willems, Y. D., Bi-directional Path Tracing, proceedings of Third International Conference on Computational Graphics and Visualization Techniques (Compugraphics '93), p. 145-153, http://www.graphics.cornell.edu/~eric/ Portugal.html Veach, E. et Guibas, L. J., Metropolis Ligth Transport; Computer Graphics (ACM Siggraph '97 Proceedings), vol 31, n° 3, p. 65-76. http://graphics.Stanford.EDU/ papers/metro/ Photon Maps : Jensen, H. W., Global Illumination Using Photon Maps, Rendering Techniques '96 (Proceedings of the Seventh Eurographics Workshop on Rendering),1996, p. 21-30, http://graphics.stanford.edu/~henrik/ papers/ewr7/ Jensen, H. W. et Christensen , P. H., Efficient Simulation of Light Transport in Scenes with Participating Media Using Photon Maps, Computer Graphics (ACM SIGGRAPH '98 Proceedings), 1998, p. 311-320, http://graphics.stanford.edu/~henrik/ papers/sig98.html Monte-Carlo : Kajiya,J. T., The rendering Equation, Computer Graphics (ACM Siggraph '86 Proceedings), vol. 20, n° 4, p. 143-150. Multi-passes : Shirley, P., A Ray Tracing Method for Illumination Calculation in Diffuse-Specular Scenes, proceedings of Graphics Interface '90, p. 205-212, http://www.cs.utah.edu/~shirley/ papers/gi90/gi90.ps.Z Shirley, P, Hybrid Radiosity/Monte Carlo Methods, Siggraph 94 Advanced Radiosity Course, http://www.cs.utah.edu/~shirley/ papers/mc94/mc94.ps.Z Chen, S. E., Rushmeier, H. E., Miller, G. et Turner, D., A Progressive Multi-Pass Method for Global Illumination, Computer Graphics (ACM Siggraph '91 Proceedings), vol. 25, n° 4, p. 164-174.