720 likes | 946 Views
Éclairage global, volumes, sources larges. Nicolas Holzschuch i MAGIS/GRAVIR IMAG. Éclairage global. Techniques locales : textures, BRDF, rendu volumique Techniques globales : radiosité, lancer de rayons. En résumé :. Il manque quelque chose. Éclairage global avec BRDF quelconques
E N D
Éclairage global, volumes, sources larges Nicolas Holzschuch iMAGIS/GRAVIR IMAG
Éclairage global • Techniques locales : • textures, BRDF, rendu volumique • Techniques globales : • radiosité, lancer de rayons
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
L ( x , , ) L ( x , , ) 0 0 e 0 0 ( x , , , , ) L ( x , , ) cos d bd 0 0 i Équation de rendu • Équilibre énergétique : • Radiance émise = radiance propre + radiance réfléchie
( RL )( x , , ) 0 0 ( x , , , , ) L ( x , , ) cos d bd 0 0 i Solution formelle de l'équation • Opérateur de réflexion • Opérateur intégral • Agit sur la radiance
L L RL e 1 L [ I R ] L e n L ( R ) L e n 0 Solution formelle • Donc : • D'où : • Avec une série de Neumann :
n L ( R ) L e n 0 Sens physique • 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) • nientier 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 : • 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
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
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
Metropolis LT, 250 mutations par pixel (même temps de calcul)
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 : • Flou • Pour éviter ça : • On filtre. L'importance des photons dépend de la distance à x : Normalisation du filtre
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é