Upload
celine-cheron
View
109
Download
3
Embed Size (px)
Citation preview
1/30
Rendu par tracé de chemins
ESSI2
George Drettakis
http:
//www-sop.imag.fr/reves/George.Drettakis/cours/ESSI2/index.html
2/30
Radiance et Irradiance
ddA
dL
oo cos
,x(2
Radiance à x, dans la direction
dE(x, i L( i)cos id
Irradiance différentielle à x, arrivant de la direction
x
ooi i
3/30
Fonction de Dispersion Bi-Directionelle
f (x, i o) dL(x,o )
dE(x, i)
dL(x, o)
L(x, i )cos id
BSDF à x, réfléchissant la lumière quiarrive par i dans la direction O
x
ooi i
4/30
Équation de Rendu
L(x, Le(x)
f (x, i o) L(xM(x,i ) ,-i)cosd
)(x,x iM Fonction qui renvoie la première intersectiond’un rayon depuis x dans la direction i
est l’ensemble de directions autour de x
5/30
x
L(x, Le(x)
f (x, i o) L(xM(x,i ) ,-i)cosd
Tracer le chemin depuis l’œil vers la source de lumièreChoisir des directions aléatoire à chaque rebondissement
écran
Intuition
6/30
L(x, Le(x,
f (x, i o)L(xM(x,i ) ,-i)cosd
Equation récursive : chaque valeur de L dépendde la valeur de L ailleurs
x
écran
7/30
Comment estimer la valeur de l’intégral ?
• Eléments finis – pour certains cas plutôt
spécifiques (diffus etc.)– nécessite une subdivision en
mailles, algos + s.d. complexes– souvent très efficace, indépendant
de point de vue
• Monte Carlo– algorithme « naturel »– traite le cas général
8/30
Notions de base pour l’intégration par
Monte Carlo
• Variable aléatoire qui suit une densité :
• X ~ p(x)
• une mesure
Pr(X Si) p(x)Si
d
p(x) 0
p(x)dS 1
9/30
Espérance
• Espérance d’une fonction uni-dimensionnelle f (X)=Y, X ~ p:
• Variance :
E f (x) f (x)p(x)d
E Yii
E Yi
i
E aY a2E Y
2)]([)( XEXEXV
10/30
Intégration par Monte Carlo
• Approximer un intégral par un estimateur FN
• Pourquoi ?
I f (x)d
FN 1N
f (Xi )p(Xi )i 1
N
dxf
dxpxp
xf
N
Xp
Xf
NEFE
N
i
N
i i
iN
)(
)()(
)(1
? ?)(
)(1
1
1
11/30
Exemple concret pour l’intégration Monte Carlo
• Cas général
• Cas diffus
• R, Le connus, reste l’intégral
dL
LL
f
iiM
e
i
cos),- )(x,x(
R(x))x(,x(
R(x) ) x,(
o
L(x, Le(x)
f (x, i o)L(xM(x,i ) ,- i)cosd
12/30
Exemple diffus pour Monte Carlo
• Choisir des directions aléatoires suivants une densité p
• Si on choisit p ~ cos
• Importance sampling
)(
cos),- )(x,x(R(x))x(,x(
i
iiMe
p
LLL
),- )(x,x(R(x))x(,x( iiMe LLL
13/30
Algorithme
• Radiance( rayon r ) if r intersecte une surface à x
choisir une nouvelle direction aléatoire w, et rayon r’
return Le(x) + Radiance(r’)
else return fond
• Comment choisir la nouvelle direction aléatoire ?
14/30
Échantillonnage d’une densité
• Comment échantillonner une densité
• Fonction de répartition:
P(a) Pr{X a} p(x)d0
a
0
1
Nous tirons une variable aléatoire uniforme (par ex. avec random()), et après
)(1 Pa
)(1 Pa
15/30
Echantillonnage des directions
• Densité pour le cas diffus
• En inversant P(), uniforme
• Dimensions multiples : si indépendantes, chaque dimension séparément
p(,) cos
P(,) p()d 1
cos sindd
1
2sin2
1
2(1 cos2 )
)'2),1(arccos(),(
16/30
Exemple diffus
• Avantage : simplicité– il suffit d’avoir un système de tracer
de rayon
• Par contre, solution très lente, beaucoup de bruit
• 1 éch/pix 4 éch/pixel
17/30
… mais ça converge
• 32 éc/pix 128 éch/pix
18/30
Echantillonnage des sources [Shirley96]
• Échantillonner les source séparément (S directions des sources) - stratified sampling
L(x, Le(x) R(x)
L(xM(x, i ) ,-i)cosd
Le(x) R(x)
L(xM(x, i ) ,-i)cosd S
L(xM(x, i ) ,-i)cosdS
19/30
Échantillonnage des sources
• Difficile de trouver l’ensemble de directions S
• Convertir en aire par la relation:
• (changement de mesure !)
L(xM(x,i ) ,-i)cosdS
d dAcosxM x
2
20/30
Échantillonnage des sources
• Il suffit d’échantillonner la source – par exemple par x ~ p =1/A
• … ce que donne (V visibilité)
L(xM(x,i ) ,-i)V cos dA cos '
xM x2
S
L(xM(x, i ) ,-i)Vcos cos'
xM x2
p
L(xM(x,i ) ,-i)Vcos cos '
xM x2 A
21/30
Échantillonnage des sources Résultat : amélioration
• 1 et 4 échan/pixel … sans avec éch. de sources
• Se généralise à plusieurs sources
22/30
Scènes générales
• La méthode de tracé de chemins n’est pas limitée dans les BSDF qu’elle peut traiter
• Il suffit de trouver les densités appropriées pour échantillonner les BSDF
23/30
Méthode originale[Kajiya86]
• Caustiques (concentration de lumière par réfraction)
• BSDF’s non-diffuses
24/30
Scène générale
• 128 échantillons/pixel
25/30
Convergence
Yi f (X) / p(X)
FN 1
NYi
i 1
N
V[Y] E[Y 2 ] E[Y]2 f 2 (x)p(x)
d(x) I 2
V[FN ] V1N
Yii1
N
1
N2V Yi
i1
N
1N
V[Y ]
donc
[FN ] 1
NY
Indépendamment de la dimension de l’intégral !!!
26/30
Estimateur non-biaisé
• L’erreur est FN - I, est le biais est la quantité:
l’estimateur est non-biaisé
• Généralement on veut minimiser l’erreur moyenne carrée E[(FN-I)2]
[FN ] E[FN I]
si [FN ] 0 ou E[FN ] I
E (FN I)2 V FN FN
27/30
Importance Sampling (principe)
• Rappeler l’exemple p ~ cos/• En général :
• Comme on ne connaît pas I, nous utilisons une approximation qui a la « forme » de f(x)et qui peut être integrée
p(x) cf (x)
c 1
f (x)d
F f (X )
p(X )
1
c I
28/30
Deuxième partie
• Probabilités sur les chemins
• Multiple importance sampling (combiner les estimateurs)
• Bi-directional path-tracing
• Metropolis
29/30
Lecture
• Thèse de Eric Veach– pages 29-52,65-66, 75-94,
chapitre 3
• Notes de cours de Pete Shirley– chapitres 6,7 et Appendix E
http://www-imagis.imag.fr/~George.Drettakis/CoursDEA/index.html
30/30
Autres références bibliographiques
• [Kajiya86] J. Kajiya, “ The rendering equation ”, SIGGRAPH Conference proceedings 1986
• [Shirley96] Peter Shirley and Changyaw Wang and Kurt Zimmerman, “ Monte Carlo Techniques for Direct Lighting Calculations”ACM Transactions on Graphics, 15(1), pp. 1-36, January 1996