Rendu réaliste en synthèse d’images. Lancer de rayons stochastique.

Post on 04-Apr-2015

105 views 0 download

Transcript of Rendu réaliste en synthèse d’images. Lancer de rayons stochastique.

Rendu réaliste en synthèse d’images.

Lancer de rayons stochastique

Organisation

Lancer de rayons stochastique– Intégration de Monte Carlo

Exemple sur l’éclairage direct

– Résolution de l’équation de la luminance– Optimisation

Carte de photons

Lancer de rayon classique

Un rayon d’ombre par point

Sources lumineuses approximées par un point

Ombres dures

Solution exacte

Ombres douces Sources étendues != Sources ponctuelles

Plus d’échantillons?

Approximer la source par plusieurs points Aliasing sur les ombres (Effet marche d’escalier)

x

y

rxy

x

y

V(x,y)=?

LA

xy

yxer dy

ryxVyLxfxL 2

coscos),()(),()(

Equation

Intégration analytique très difficile

Utilisation de techniques numériques : Monte Carlo

Intégration numérique

Intégration numérique d'intégrale simple

b

a

dxxfI )(

a b

)(xf

Intégration déterministe

Intégration déterministe par quadrature :

N

i

ii

b

a

xfw

dxxfI

1

)(

)(

a b

)(xf

1x Nx

Ne marche que sous certains conditions : fonctions dérivables, dimensions du problème pas trop élevé

Intégration de Monte Carlo

Estimation de la valeur d’une intégrale– Échantillonner N points suivant une densité de

probabilité p(x)– L’estimateur est une moyenne pondérée des

valeurs de la fonction à chaque échantillon

N

i i

i

xpxf

NI

1 )()(1ˆ

Variable aléatoire continue

Variable aléatoire X

Fonctions de répartition : probabilité que la variable aléatoire soit inférieure ou égal à x

Densité de probabilité

)(xp

x

dyypxF )()(

Exemple : taille d’un individu

Densité de probabilité

120 230

)(xp

160 190

1)(300

0

dxxp

180

170

)(])180,170[( dxxpXP

0)()178(178

178

dxxpXP

2/1)()170(170

0

dxxpF

)(xF

Densité de probabilité uniforme

Densité uniforme

P(x) : probabilité que x appartienne à [a’,b’]

a b

)(xp

a’ b’

abxp

dxxpb

a

1

)(

1)(

'b

'a

dx)x(p)x(P

Échantillonnage selon une densité

Choisir une densité de probabilité p(x)

0 1

1

0

)(xp

Échantillonnage selon une densité

Choisir une densité de probabilité p(x).

Intégrer pour obtenir une fonction de répartition P(x):

0 1

1

0

)(xPx

dttpxP0

)()( )(xp

Échantillonnage selon une densité

Choisir une densité de probabilité normalisée p(x).

Intégrer pour obtenir une fonction de répartition P(x):

Inverser P(x) : x = P-1()

échantillonné avec une densité uniforme entre 0 et 1 0 1

1

0

)(xP

x

dttpxP0

)()(

Échantillonnage selon une densité

Choisir une densité de probabilité normalisée p(x).

Intégrer pour obtenir une distribution de probabilité P(x):

Inverser P(x) : x = P-1() 0 1

1

0

)(xP

x

dttpxP0

)()(

Transforme un

échantillonnage uniforme vers échantillonnage non uniforme

Illumination directe

Génération de points aléatoires sur la source

Évaluation de l'intégrale avec ces points

LA

dyyDxL )()(

N

i i

i

ypyD

NxL

1 )()(1)(

x

y

rxy

x

y

V(x,y)=?

LA

xy

yxer dy

ryxVyLxfxL 2

coscos),()(),()(

Illumination directe

1 rayon d'ombre 9 rayons d'ombre

N

i

ixy

yxiies yxVis

ryLxfA

NxL

i

i

12 ),(coscos)(),(1)(

SAyp 1)(

Illumination directe

36 rayons d'ombre 100 rayons d'ombre

N

i

ixy

yxiies yxVis

ryLxfA

NxL

i

i

12 ),(coscos)(),(1)(

Échantillonnage stratifié

Objectif – Réduction de la variance.

Principe– Découpage du domaine d'intégration

0 1

)(xf

1

0 0

2

1

11

1

)(...)()()(x x

x xn

dxxfdxxfdxxfdxxfI

Échantillonnage stratifié

Objectif – Réduction de la variance.

Principe– Découpage du domaine d'intégration– Estimateur

0 1

)(xf

N

i i

istrat xp

xf

NI

1 )(

)(1

Échantillonnage stratifié

Application à 2 dimensions

N2 échantillons

Échantillons arbitrairement proches

Problème pour les dimensions supérieures

Échantillonnage stratifié

9 rayons d'ombre uniformes

9 rayons d'ombre stratifiés

Échantillonnage stratifié

36 rayons d'ombre uniformes

36 rayons d'ombre stratifiés

Échantillonnage stratifié

100 rayons d'ombreuniformes

100 rayons d'ombrestratifiés

Echantillonnage stratifié

Application aux dimensions supérieuresÉchantillonnage stratifié en en grille

Nd Echantillons

Échantillonnage des N reines

N Echantillons

9 échantillons

Uniforme

Stratifié N reines

36 échantillons

Uniforme

Stratifié N reines

Plusieurs sources lumineuses

L’intégrale ne change pas : au lieu d’intégrer sur la surface de la source, on intègre sur les surfaces des sources lumineuses.

La densité pour sélectionner les points est modifié : d’abord on sélectionne une source S avec la densité p(S) puis un point sur S avec p(y|S)

T

SSp )(

sASyp 1)( )()()( SypSpyp

LA

xy

yxer dy

ryxVyLxfxL 2

coscos),()(),()(

Plusieurs sources lumineuses

36 rayons d’ombres par pixels dans les deux images mais densité de probabilité différentes

Application aux pixels

Calcul de la luminance au centre du pixel : aliassage

Utilisation d'un filtre …

… évalué par intégration de Monte Carlo.

Pixel

dxxLxfL )()(

Application aux pixels

Tout type d'échantillonnage envisageable

N

i i

ii

xpxLxf

NL

1 )()()(1

Implantation

1 rayon / pixel 10 rayons / pixel 100 rayons / pixel

Implantation

Comparaison :

1 rayon centré par pixel

100 rayons d'ombre aléatoires par intersection

100 rayons aléatoires par pixel

1 rayons d'ombre aléatoire par intersection

Équation du rendu

Évaluation de l'équation du rendu– Comment écrire l'équation du rendu et l'évaluer par

intégration de Monte Carlo?

– Quelle densité de probabilité utiliser pour l'équation du rendu?

– Algorithmes et résultats

Équation du rendu

x

dnxLxfxLxL xre ),cos()(),()()(

x

L x( )

L xe ( )

L x( )

Équation du rendu

x

re fL cos

x

dnxLxfxLxL xre ),cos()(),()()(

Calcul de la luminance

Comment évaluer L ?

– Trouver Le(x)

– Ajouter L=?

x

dnxLxfxL xri ),cos()(),()(

Calcul de la luminance

Comment évaluer Li ?– Intégration de Monte Carlo

– Générer des directions aléatoires sur x, en utilisant la densité de probabilité p()

x

dnxLxfxL xr ),cos()(),()(

N

i i

xiiir

pnxLxf

NxL

1 )(),cos()(),(1)(

Calcul de la luminance

Échantillonnage de l'hémisphère

sin),( ddd

0 20

2/

in

in

in

ind

in

21 2)cos(cos)( etap

21

1

1 2)cos(cos2

1)( etanp nn

Calcul de la luminance

Générer une direction aléatoire i

N

i i

ir

p

xLf

NL

1 )(

)cos()()(1

Evaluer la brdf

Evaluer le cos(…)

Evaluer L(xi)

Calcul de la luminance

Evaluation de L(xi) ?

La radiance est constante sur la direction de propagation.

rc(x, i) = premier point visible.

L(xi) = L(rc(x, i) i)

Calcul de la luminance

Évaluation récursive

Chaque rebond ajoute un niveau d'éclairage indirect.

Arrêt de la récursivité

Quand arrêter la récursivité ?

Les contributions des ordres de réflexions élevés sont négligeables.

Si on les ignore, les estimateurs sont biaisés !

Roulette russe

Roulette russe– En pratique, définition d'un coefficient d'absorption

Probabilité que le rayon soit absorbé. La luminance deviens L/(1-.

– Exemple : =0.9 (1.0 - moyenne de la réflectance) Un rayon sur 10 est réfléchit. La luminance estimée sur un rayon réfléchi est multipliée par

10.

Roulette russe

Estimateur non biaisé

Espérance de l’estimateur est toujours correcte

Plus grande variance

Mais plus efficace

Tracé de chemins

Algorithme– Lancer N rayons par pixels– A chaque intersection avec une surface, lancer 1

rayon distribués sur l'hémisphère pour évaluer l’équation de la luminance

– Terminer la récursivité par roulette russe

Tracé de chemins

1 rayon/pixel 16 rayons/pixel 256 rayons/pixel

Très bruité : contribution nulle tant que le chemin n’a pas atteint une source lumineuse!!

Tracé de chemins

?L ?L

Tracé de chemins

?

0

r

e

L

L

?

0

r

e

L

L

Tracé de chemins

?inL ?inL

Tracé de chemins

?inL ?inL

Tracé de chemins

?L ?L

Tracé de chemins

?0reLL

?0reLL

Tracé de chemins

?inL ?inL

Tracé de chemins

?L ?L

Tracé de chemins

?

234.1

r

e

L

L

?

234.1

r

e

L

L

Tracé de chemins

Tracé de chemins

)()()( xLxLxL ie

• Améliorer l’algorithme en séparant l’intégrale en deux parties

x

x

dnxLxf

dnxLxfxL

xir

xeri

),cos()(),(

),cos()(),()(

Tracé de chemins

),())cos(

()cos()()(

)cos()()(

)cos()()()(

2yxV

r

dAxyLf

dxyLf

dxLfxL

source

x

x

Area xy

yer

er

erdirect

dAy

d

xd

dA

ry y

cos2

Tracé de chemins

Conclusion – Évaluer différemment l'éclairage direct et indirect

x

r

Source

r ff coscos

Algorithme

?L ?L

Algorithme

?

0

r

e

L

L

?

0

r

e

L

L

Algorithme

?

?

0

i

d

e

L

L

L

?

?

0

i

d

e

L

L

L

Algorithme

?L ?L

?

345.2

0

i

d

e

L

L

L

?

345.2

0

i

d

e

L

L

L

Algorithme

Algorithme

Comparaison

Sans calcul d'éclairage direct

16 rayons/pixel

Avec calcul d'éclairage direct

Comparaison

1 rayon/pixel

4 rayons/pixel

16 rayons/pixel

256 rayons/pixel

Limitations

Chemins tracés en sens inverse de la lumière

Ne prends pas bien en compte tous les effets

Bruit sur les caustiques

Limitations

Tracé de chemins : 1000 chemins par pixel

Tracé de chemins lumineux

Tracer des chemins des sources lumineuse plutôt que de l’œil

Permet de bien prendre en compte les caustiques et l’éclairage indirect

Mais pas les réflexions!!!

Tracé de chemins lumineux

Tracé de chemins bidirectionnels

Trace un chemin des sources lumineuses et un chemin de l’œil

Connecte les chemins à chaque sommets

Très coûteux mais prend en compte quasiment tous les effets

Tracé de chemins bidirectionnels

Tracé de chemins bidirectionnels

Tracé de chemins bidirectionnels Tracé de chemins classique

2L,1E1L,2E

1L,3E 3L,1E

1L,4E 4L,1E

Carte de photons

Algorithme fondé sur l’estimation de densité

Approche similaire au tracé de chemins bidirectionnel– « cache » des chemins lumineux

Estimation de densité par noyau

Méthode statistique

Ensemble de données issues d’un processus aléatoire

Estimer la densité de probabilité de ce processus

Estimation de densité par noyau

Relation entre densité de probabilité et éclairement– par définition :

– Exprimé par rapport au flux :

d.cosLE i

dA

dEdAdcosLd i

Estimation de densité par noyau

N photons d’énergie lancé dans la scène Le flux s incident sur une surface s’exprime

Probabilité qu’un photon Pi heurte une surface A

s

N

iis N

s

1

N

NAP s)(

Estimation de densité par noyau

La densité de probabilité des photons est proportionnelle à l’éclairement

AN

ANN

ANN

A

APppdf

sss

)()(

ENAN

ppdf s

11)(

Estimation de densité par noyau

Ensemble de n données observées

Estimation de densité par noyau

La densité est estimée par la moyenne de n fonctions noyaux centrées sur chaque donnée observée

Fonction noyau K unitaire, symétrique et à support compact

1

1 1ˆ( )n

id

i

x Xf x K

n h h

Estimation de densité par noyau

La densité est estimée par la moyenne de n fonctions noyaux centrées sur chaque donnée observée

1

1ˆ( )n

h ii

f x K x Xn

Fonction noyau K unitaire, symétrique et à support compact

Estimation de densité par noyau

Le paramètre de lissage h contrôle le compromis biais/variance

1

1ˆ( )n

h ii

f x K x Xn

2ˆ ( ) ( ) 0.5 ² ( ) "( ) ( ²)Ef x f x h K f x o h

1 1ˆ ( ) ( ) ( ) ( ) ( )Vf x nh R K f x o nh

Estimation de densité par noyau

Le paramètre de lissage h contrôle le compromis biais/variance

1

1ˆ( )n

h ii

f x K x Xn

2ˆ ( ) ( ) 0.5 ² ( ) "( ) ( ²)Ef x f x h K f x o h

1 1ˆ ( ) ( ) ( ) ( ) ( )Vf x nh R K f x o nh

Biais

Variance

Application à l’éclairage global

Lancer de photons Photons

– Position– Énergie

Processus aléatoire = lancer de photons

Données observées = photons

1 1,X

2 2,X

3 3,X

Estimation de l’éclairement

Densité des photons proportionnelle à l’éclairement incident

Éclairement estimé en un point– Approche scène : estimé par sommet ou par texel– Approche image : estimé par pixel

1

ˆ ( ) ( )n

i h ii

E x K x X

Mise en oeuvre

Jensen (96)

Visualisation directe de la carte de photons (6 min)

Mise en oeuvre

Walter (98)

Éclairage global par estimation de densité linéaire: 8h

Approche classique

• La fonction noyau est à support local et symétrique : disque en 2D

• Localiser les k photons qui sont à une distance h du point d’estimation

1

ˆ ( )k

i h ii

E x K x X

Approche duale

• L’éclairement est estimé en un grand nombre de points

• Pour chaque photon, localiser les points d’estimation à la distance h, et leur ajouter la contribution du photon

( ) ( )i i h iC x K x X

Approche duale en pratique

Par texture– Estimation réalisée dans l’espace texture très

efficace– Peu évident à généraliser

Par maillage triangulaire connecté– Plus général– Plus coûteux

Performance

Résultats équivalents entre approche duale et classique

Photons accédés linéairement– Permet de gérer plus facilement ce grand volume

de donnés

Biais sur les bords

Fuite d’énergie sur les bords des surfaces

Biais sur les bords

Estimation de densité évalue la fonction à zéro en dehors de la surface

Biais vers zéro sur les bords

Corriger le biais sur les bords

Méthode de réflexion– Réfléchir les données sur les bords

Utilisation de noyaux frontières– Noyaux qui s’adaptent au bord (ne sont plus

symétriques)– Calculs complexes

Triangles fantômes

Étendre la surface pour rajouter de l’information

Triangles fantômes

Surfaces étendues sur leurs bords– Trouver le contour– Déplacer le contour– Trianguler la bande formée par les deux contours

Déplacement proportionnel au paramètre de lissage

Triangles fantômes

Lancer de photons modifié pour prendre en compte les triangles fantômes

Un photon n’est pas arrêté par un triangle fantôme mais un photon est ajouté

Triangles fantômes

Réduit le biais sur les bords – Nécessite des calculs géométriques

Augmente la complexité géométrique– Dépend du paramètre de lissage => Dépend du

nombre de photons

Carte de Photons

100000 photons, 50 photons pour l’estimateur

Carte de Photons

500000 photons, 500 photons pour l’estimateur

Carte de Photons

Photons stockés dans un Kd-Tree balancé pour accélérer le calcul des N plus proches voisins

Photons séparés en deux groupes : caustiques et globales

Limité par la mémoire