Éclairage global, volumes, sources larges
description
Transcript of Éclairage global, volumes, sources larges
Éclairage global, volumes, sources larges
Nicolas Holzschuch
iMAGIS/GRAVIR IMAG
Éclairage global
• Techniques locales :– textures, BRDF, rendu volumique
• Techniques globales :– radiosité, lancer de rayons
En résumé :
Méthode Sources Local Global
Lancer derayons
Points BRDF qc. Spéculaire
Radiosité Surfaces Diffus Diffus
Renduvolumique
Points Volume Non
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
• Équilibre énergétique :
• Radiance émise = radiance propre + radiance réfléchie
L( x , 0 , 0 ) Le ( x , 0 , 0 )
bd (x , 0 , 0 , , )Li ( x , , ) cosd
Solution formelle de l'équation
• Opérateur de réflexion– Opérateur intégral– Agit sur la radiance
bd (x,0 ,0 ,,)Li (x,,)cosd
(RL)(x,0 ,0 )
Solution formelle
• Donc :
• D'où :
• Avec une série de Neumann :
L Le RL
L[I R] 1 Le
L (Rn )Len0
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…
L (Rn )Len0
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 de longueur k : =(n1, n2,…,nk)
– ni entier entre 1 et n.
• Valeur de xi pour ce chemin :
x=a+ Mkak=0
∞
∑
ˆ x i = mni−1nii=0
k
∏⎛ ⎝ ⎜ ⎞
⎠ ank
1p(ω)
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)
– =(n1, n2,…,nk)p(ω) =p(nk,nk−1)...p(n2,n1)p(n1,n0)p(n0)
É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 :
• : BRDF, quelconque• G : terme géométrique, 1/r2 et visibilité
I(x0) =G(x0,x1)×
E(x1 → x0) +
ρ(x1,→ x0,x2 → )×G(x1,x2)×
E(x2 → x1)+
ρ(x2,→ x1,x3 → )×G(x2,x3)×E(x3 → x2)+
ρ(x3,→ x2,x4 → )× K( )
⎛
⎝ ⎜ ⎜
⎞
⎠ ⎟ ⎟
⎛
⎝
⎜ ⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟ ⎟
⎛
⎝
⎜ ⎜ ⎜ ⎜ ⎜ ⎜
⎞
⎠
⎟ ⎟ ⎟ ⎟ ⎟ ⎟
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
– t > : absorption
– t < : 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
Φ = wij Cijj=0
Ne
∑i=0
Nl
∑
Choix des poids
• Wj = degré de spécularité au point yj
– Surfaces diffuses : light path + important
– Surfaces spéculaires : eye path + important
wij = Wkk=0
j−2
∏ pour i =0
= 0 pour j =0
= Wkk=0
j−2
∏⎛ ⎝ ⎜ ⎞
⎠ 1−Wj( ) sinon
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 r2
Lr(x,ψ r)= ρr(x,ψ r,ψ i )d2Φi(x,ψ i )
dAdωi
dωiΩ∫
≈ ρr(x,ψ r,ψ i )ΔΦp(x,ψ i,p)
πr2p=1
N
∑
Filtre des photons
• Densité de photons trop faible :– Flou
• Pour éviter ça : – On filtre. L'importance des photons dépend de la
distance à x : wp =max(0,1−dp /(kr))
Lr(x,ψ r)≈
ρr(x,ψ r,ψ i )ΔΦp(x,ψ i,p)wpp=1
N
∑1− 2
3k( )πr2
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 :– 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 :
– 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: a
• Coefficient de dispersion : s
• Coefficient d'extinction : t=a+s
• Émission de lumière : Le
• Variation de la radiance :
dfLLLds
dLiseat ),(),(
Résoudre l'équation
• Dépendance volumique– Complexité cubique
– Plus de conservation de la lumière
• Simplifications :– Sans dispersion
– Dispersion, milieux isotropes
• Sans dispersion:
LLds
dLeaa
Sans dispersion
• On intègre :
• : transmittance le long du rayon :– proportion de lumière transmise
s
t duu
es 0
)(
)(
s
ae duusuuLsLsL0
)()()()()0()(
Sans dispersion
• Intégration facile avec RT/MCRT
• Pire : milieux homogènes :
• Modèle simple de brouillard – utilisé dans les cartes graphiques
)1()0()( se
s aa eLeLsL
Dispersion isotrope : discrétisation
• Fonction de phase constante : f=1/4• On discrétise tout (volumes et surfaces)
– Radiosité des surfaces : Bi=Li
– Radiosité des volumes : Bk=Jk
• Facteurs de forme :– Surface-surface: SiSj
– Surface-Volume: SiVk
– Volume-Volume: VkVm
Dispersion isotrope : discrétisation
• Surfaces:
• Volumes:
volumessurfaces
kkijjiiiiii BVSBSSAEAB
volumessurfaces)(
)()(4)(4 mmkjkj
t
skkakkt BVVBVS
k
kVEkVBk
kt
s Rk
k
)(
)(= 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 :
F(x) =1−τ xs,x( ) =1−e− κ (s)ds
xs
x
∫
Photon maps et milieux participants
Li(x,r ω )= f(x,
r ω , ′
r ω )L(x,
r ω )
Ω∫
≈1
κs(x)f(x,
r ω , ′
r ω p)
ΔΦp(x,r ′ ω p)
43πr3
p=1
N
∑
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
L(xk,r ω ) = κa xk( )Le(xk,
r ω )Δxk
+ κs xk( )Li(xk,r ω )Δxk
+ e−κ xk( )ΔxkL(xk−1,
r ω )
Bibliographie
• 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.
–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