imn528 - chapitre 5 parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1...

92
IMN528 Chapitre 5 Parcours de la lumière Olivier Godin Université de Sherbrooke 27 novembre 2014 Parcours de la lumière 1 / 92

Upload: others

Post on 02-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

IMN528Chapitre 5

Parcours de la lumière

Olivier Godin

Université de Sherbrooke

27 novembre 2014

Parcours de la lumière 1 / 92

Page 2: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Plan du chapitre

1 Intégration de Monte-Carlo

2 Lumières surfaciques

3 Illumination globale

4 Références

Parcours de la lumière 2 / 92

Page 3: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo

Intégration de Monte-Carlo

1 Intégration de Monte-CarloRappels mathématiquesEstimation de l’intégraleAmélioration de l’estimation

2 Lumières surfaciques

3 Illumination globale

4 Références

Parcours de la lumière 3 / 92

Page 4: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Rappels mathématiques

Intégration de Monte-Carlo

1 Intégration de Monte-CarloRappels mathématiquesEstimation de l’intégraleAmélioration de l’estimation

2 Lumières surfaciques

3 Illumination globale

4 Références

Parcours de la lumière 4 / 92

Page 5: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Rappels mathématiques

Mise en contexte

On s’intéresse ici aux techniques utilisées pour obtenir une meilleureestimation des intégrales décrivant le comportement de la lumièredans une scène. Comme ces équations ne possèdent généralementpas de solution analytique, on doit se tourner vers des méthodesnumériques.

L’intégration de Monte-Carlo propose une solution aléatoire pourévaluer numériquement des intégrales de toutes formes. Lesalgorithmes aléatoires peuvent être regroupés en deux catégories :

Las Vegas −→ toujours le même résultat

Monte-Carlo −→ résultats variables à chaque exécution

Parcours de la lumière 5 / 92

Page 6: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Rappels mathématiques

Mise en contexte

L’intégration de Monte-Carlo utilise un échantillonnage aléatoired’une fonction f (x) afin d’évaluer son intégrale. Ce faisant, il n’estnécessaire que de savoir évaluer f (x) pour obtenir une estimation deson intégrale.

Revenons à l’équation du rendu :

Lo(p, ωo) = Le(p, ωo) +

∫H2

f (p, ωo, ωi)Li(p, ωi) |cos θi | dωi

L’intégration de Monte-Carlo rend possible l’estimation de la radiancesortante Lo(p, ωo) en échantillonnant un ensemble de directions sur lademi sphère et en n’effectuant les calculs que pour celles-ci.

Parcours de la lumière 6 / 92

Page 7: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Rappels mathématiques

Mise en contexte

Comme pour toutes les techniques d’intégration numérique,l’intégration de Monte-Carlo engendre une erreur par rapport à lavaleur réelle de l’intégrale. Si n échantillons sont utilisés pour estimerl’intégrale, alors l’erreur sera proportionnelle à 1√

n .

Cela signifie que pour diminuer l’erreur de moitié, quatre fois plusd’échantillons doivent être utilisés. Or, chaque échantillon impliquede lancer au moins un rayon dans la scène. Cela aura donc pour effetd’augmenter significativement les temps de calcul... Encore !

Parcours de la lumière 7 / 92

Page 8: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Rappels mathématiques

Mise en contexte

En synthèse d’images, l’erreur associée à l’intégration de Monte-Carlose manifeste sous la forme de bruit aléatoire dans l’image : lespixels sont trop pâles ou trop foncés.

[2]

Avant de définir la technique d’intégration en tant que tel, ons’intéresse à quelques notions de base en probabilité.

Parcours de la lumière 8 / 92

Page 9: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Rappels mathématiques

Notions de probabilité

Une variable aléatoire X est une valeur obtenue à l’aide d’unprocessus aléatoire. Elle peut provenir d’un domaine discret oucontinu. L’application d’une fonction f (x) à une variable aléatoire Xdéfinit une nouvelle variable aléatoire Y = f (X ).

Par exemple, le résultat du lancer d’un dé est une variable aléatoirediscrète provenant du domaine Xi = {1,2,3,4,5,6} où chaqueélément a une probabilité pi =

16 , avec

6∑i=1

pi = 1.

Parcours de la lumière 9 / 92

Page 10: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Rappels mathématiques

Notions de probabilité

On définit la fonction de répartition F (x) d’une variable aléatoire Xcomme la probabilité que le processus aléatoire retourne une valeurinférieure ou égale à un x donné :

F (x) = P(X ≤ x).

Par exemple, pour le lancer du dé, on a que F (2) = 13 .

Lorsqu’appliquée à l’équation du rendu, l’intégration de Monte-Carlodevra être associée à des variables aléatoires continues. Parmicelles-ci, la variable aléatoire uniforme canonique estparticulièrement utile. Elle prend ses valeurs dans l’intervalle [0,1[.

Parcours de la lumière 10 / 92

Page 11: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Rappels mathématiques

Notions de probabilité

Les valeurs potentielles de cette variable aléatoire ont toutes la mêmeprobabilité. Cette variable aléatoire servira souvent de point dedépart : ses échantillons seront convertis vers d’autres domaines àl’aide d’une fonction de mise en correspondance.

On définit la densité de probabilité f (x) d’une variable aléatoirecomme une fonction permettant de représenter une distribution deprobabilité sous forme d’intégrales. Pour une variable aléatoireuniforme sur l’intervalle [a,b[, on a que

f (x) =

{1

b−a si a ≤ x < b0 sinon

Parcours de la lumière 11 / 92

Page 12: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Rappels mathématiques

Notions de probabilité

La densité de probabilité est la dérivée de la fonction de répartition.Elle est toujours non négative et l’intégrale sur son domaine donnetoujours 1, c’est-à-dire ∫ b

af (x) dx = 1.

En particulier, la probabilité qu’une variable aléatoire ayant une densitéde probabilité f (x) prenne une valeur entre x0 et x1 est donnée par

P(x ∈ [x0, x1]) =

∫ x1

x0

f (x) dx .

Parcours de la lumière 12 / 92

Page 13: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Rappels mathématiques

Espérance et variance

L’espérance E(g(x)) d’une fonction g(x) est définie comme la valeurmoyenne de la fonction pour une certaine densité de probabilité f (x)évaluée sur son domaine D :

E(g(x)) =∫

Dg(x)f (x) dx .

Par exemple, l’espérance de la fonction cos x lorsque f (x) est uniformeet x ∈ [0, π] est donnée par

E(cos x) =∫ π

0

cos xπ

dx =1π(− sinπ + sin 0) = 0.

L’intégration de Monte-Carlo fait appel à l’espérance pour estimer lesintégrales.

Parcours de la lumière 13 / 92

Page 14: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Rappels mathématiques

Espérance et variance

La variance V (g(x)) d’une fonction g(x) exprime la dispersion desvaleurs prises par la fonction autour de son espérance. La varianceest utilisée pour quantifier l’erreur associée à l’intégration deMonte-Carlo. On la définit par

V (g(x)) = E((g(x)− E (g(x)))2

).

L’espérance et la variance possèdent trois propriétés importantes :

E (ag(x)) = aE (g(x))

E

(∑i

g(Xi)

)=∑

i

E (g(Xi))

V (ag(x)) = a2V (g(x))

Parcours de la lumière 14 / 92

Page 15: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Rappels mathématiques

Espérance et variance

Ces propriétés permettent d’obtenir une formulation beaucoup plussimple pour la variance :

V (g(x)) = E((g(x))2

)− (E(g(x)))2 .

De plus, si des variables aléatoires Xi sont indépendantes, alors lasomme des variances de ces variables aléatoires est égale à lavariance de la somme de ces variables aléatoires, c’est-à-dire

∑i

V (g(Xi)) = V

(∑i

g(Xi)

).

Parcours de la lumière 15 / 92

Page 16: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Estimation de l’intégrale

Intégration de Monte-Carlo

1 Intégration de Monte-CarloRappels mathématiquesEstimation de l’intégraleAmélioration de l’estimation

2 Lumières surfaciques

3 Illumination globale

4 Références

Parcours de la lumière 16 / 92

Page 17: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Estimation de l’intégrale

Variable aléatoire uniforme

On introduit maintenant l’intégration de Monte-Carlo qui permetl’approximation de la valeur d’une intégrale définie quelconque.

Supposons que l’on souhaite évaluer

I =∫ b

ag(x) dx .

Géométriquement, cette intégrale représente l’aire entre la fonctiong(x) et l’axe des x sur l’intervalle [a,b].

a b

g(x)

x

[2]

Parcours de la lumière 17 / 92

Page 18: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Estimation de l’intégrale

Variable aléatoire uniforme

Soit un ensemble de n variables aléatoires uniformes Xi ∈ [a,b].L’intégration de Monte-Carlo repose sur la définition d’un estimateurpour I :

〈I〉 = b − an

n∑i=1

g(Xi)

xa b

g(x)

xj

g(xj)

[2]

On a que l’espérance de cet estimateur, E(〈I〉) donne exactement lavaleur de l’intégrale. Vérifions cela...

Parcours de la lumière 18 / 92

Page 19: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Estimation de l’intégrale

Variable aléatoire uniforme

E(〈I〉) = E

(b − a

n

n∑i=1

g(Xi)

)

=b − a

n

n∑i=1

E(g(Xi))

=b − a

n

n∑i=1

∫ b

ag(x)f (x) dx

=1n

n∑i=1

∫ b

ag(x) dx

=

∫ b

ag(x) dx

Parcours de la lumière 19 / 92

Page 20: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Estimation de l’intégrale

Variable aléatoire quelconque

La contrainte forçant l’utilisation d’une variable aléatoire uniforme peutêtre mise de côté par une simple généralisation de l’estimateur. Siles variables aléatoires proviennent d’une distribution ayant unedensité de probabilité f (x), alors l’estimateur devient

〈I〉 = 1n

n∑i=1

g(Xi)

f (Xi).

Ce résultat est extrêmement important, puisqu’un choix judicieux de ladistribution produisant les échantillons permettra une diminution de lavariance de l’estimateur, et donc une réduction du bruit dans l’imagefinale.

Parcours de la lumière 20 / 92

Page 21: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Estimation de l’intégrale

Variable aléatoire quelconque

Les intégrales que nous devrons estimer ne sont toutefois pasunidimensionnelles. On devra souvent intégrer sur des surfaces. Il estdonc rassurant de savoir que la généralisation de l’intégration deMonte-Carlo à plusieurs dimensions se fait sans heurt.

Considérons par exemple l’intégrale triple∫ x1

x0

∫ y1

y0

∫ z1

z0

g(x , y , z) dzdydx .

On choisit des échantillons aléatoires Xi = (xi , yi , zi) à partir d’unevariable alétoire uniforme sur le domaine d’intégration. La densité deprobabilité est de nouveau constante et donnée par

1x1 − x0

· 1y1 − y0

· 1z1 − z0

.

Parcours de la lumière 21 / 92

Page 22: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Estimation de l’intégrale

Variable aléatoire quelconque

L’estimateur devient alors simplement

(x1 − x0)(y1 − y0)(z1 − z0)

n

n∑i=1

g(Xi).

Le nombre d’échantillons utilisé pour l’estimation de l’intégrale estindépendant de la dimension de celle-ci.

C’est là un avantage marqué de l’intégration de Monte-Carlo parrapport à bien d’autres techniques d’intégration numérique où lenombre d’échantillons à considérer peut varier exponentiellement enfonction de la dimension de l’intégrale.

Parcours de la lumière 22 / 92

Page 23: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Intégration de Monte-Carlo

1 Intégration de Monte-CarloRappels mathématiquesEstimation de l’intégraleAmélioration de l’estimation

2 Lumières surfaciques

3 Illumination globale

4 Références

Parcours de la lumière 23 / 92

Page 24: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Efficacité d’un estimateur

Nous avons vu que la variance des résultats de la techniqued’intégration de Monte-Carlo se manifeste, dans le cas du lancer derayon, sous la forme de bruit dans l’image résultante.

[1]

Nous avons aussi mentionné que pour réduire la variance de moitié, ilétait nécessaire de quadrupler le nombre d’échantillons.

Parcours de la lumière 24 / 92

Page 25: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Efficacité d’un estimateur

Considérant le coût associé à l’augmentation du nombred’échantillons, nous choisirons une autre approche, basée sur unmeilleur échantillonnage, pour réduire la variance des résultats.

On définit l’efficacité d’un estimateur 〈I〉 par

ε(〈I〉) = 1V (〈I〉)T (〈I〉)

,

où V (〈I〉) est sa variance et T (〈I〉) son temps d’exécution. Ainsi, unestimateur 〈I1〉 est plus efficace que 〈I2〉 s’il prend moins de tempspour produire la même variance ou s’il produit une variance inférieuresur la même durée.

Parcours de la lumière 25 / 92

Page 26: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Efficacité d’un estimateur

Dans la formule de calcul de l’intégration de Monte-Carlo, nous avionsune certaine souplesse quant au choix de la distribution à partir delaquelle les échantillons étaient obtenus. Or, on verra que de choisirune distribution ayant une forme similaire à celle de la fonction àintégrer permet de réduire la variance de l’estimateur.

Cette approche porte le nom d’échantillonnage préférentiel(importance sampling).

Parcours de la lumière 26 / 92

Page 27: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Échantillonnage préférentiel

Les échantillons sont alors principalement choisis dans les régionsimportantes du domaine, c’est-à-dire lorsque la valeur de la fonctionest grande.

xa b

g(x)

xj

g(xj)

[2]

Parcours de la lumière 27 / 92

Page 28: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Échantillonnage préférentiel

[1]Parcours de la lumière 28 / 92

Page 29: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Échantillonnage préférentiel

[1]Parcours de la lumière 29 / 92

Page 30: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Échantillonnage préférentiel

Considérons la portion associée à la réflexion de l’équation du rendu :∫H2

f (p, ωo, ωi)Li(p, ωi) |cos θi | dωi .

On estime cette intégrale à l’aide de n directions échantillonnées sur lademi-sphère. Quelle est la conséquence de piger une direction quasiperpendiculaire à la normale au point p ? On va perdre notre temps !

En effet, puisque |cos θi | ≈ 0 pour cette direction, le rayon qui seralancé n’aura qu’une faible contribution au résultat final.

Parcours de la lumière 30 / 92

Page 31: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Échantillonnage préférentiel

En ce sens, il serait intéressant d’échantillonner la demi-sphère enfaisant en sorte que les directions ωi presque perpendiculaires à lanormale soient moins probables que celles formant un petit angleavec la normale. On choisit ainsi des directions maximisant |cos θi |.

De la même façon, l’échantillonnage peut aussi être basé sur laBRDF. Le choix d’une direction ωi telle que f (p, ωi , ωo) ≈ 0 ayant unintérêt limité, on peut concentrer nos échantillons dans les directionsoù les valeurs de la BRDF sont plus grandes.

Parcours de la lumière 31 / 92

Page 32: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Échantillonnage préférentiel

Une question d’importance reste sans réponse : qu’est-ce qui justifiele fait que la variance de l’estimateur soit réduite en choisissantune densité de probabilité dont la forme est similaire à la fonction àintégrer ? Tentons de répondre à cette question de manière intuitive...

Supposons que l’on souhaite utiliser l’intégration de Monte-Carlo pourévaluer l’intégrale d’une fonction g(x) sur son domaine. Pour y arriver,on choisit une distribution de probabilité telle que f (x) ∝ g(x),c’est-à-dire que f (x) = c · g(x). Or

f (x) = c · g(x)⇒∫ b

af (x) dx =

∫ b

ac · g(x) dx ⇒ c =

1∫ ba g(x) dx

.

Parcours de la lumière 32 / 92

Page 33: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Échantillonnage préférentiel

Voilà un résultat peu intéressant... Pour estimer une intégrale, ondoit définir une distribution de probabilité à partir de cette mêmeintégrale.

Parcours de la lumière 33 / 92

Page 34: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Échantillonnage préférentiel

Pour les besoins de la cause, imaginons que nous sommes enmesure d’obtenir des échantillons à partir de cette distribution.

Chaque élément g(Xi )f (Xi )

dans l’estimateur

〈I〉 = 1n

n∑i=1

g(Xi)

f (Xi)

aurat donc la valeur 1c . Ce faisant, peu importe le choix des

échantillons dans la distribution, l’estimation donnera le même résultatet présentera donc une variance nulle.

Parcours de la lumière 34 / 92

Page 35: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Échantillonnage préférentiel

Évidemment, si nous étions en mesure d’évaluer l’intégrale pour définircette distribution de probabilité, il ne serait pas nécessaire d’utiliser latechnique d’intégration de Monte-Carlo.

Cela illustre toutefois que notre intuition de départ était valide : enchoisissant une densité de probabilité f (x) similaire à la fonction àintégrer g(x), on arrive à diminuer la variance sans pour autantaugmenter le nombre d’échantillons. De plus, la tâche de trouverune telle distribution n’est souvent pas trop ardue.

Parcours de la lumière 35 / 92

Page 36: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Roulette russe

L’efficacité d’un estimateur est définie à partir de sa variance et dutemps d’exécution pour son calcul.

Avec l’échantillonnage préférentiel, nos efforts étaient concentrés surla diminution de la variance. La technique de la roulette russe metplutôt l’emphase sur la réduction du temps d’exécution.

Parcours de la lumière 36 / 92

Page 37: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Roulette russe

Comme avec l’échantillonnage préférentiel, la technique de la rouletterusse vise à augmenter la probabilité que chaque direction ait unecontribution significative dans le résultat final. Toutefois, au lieu dese concentrer à bien choisir les échantillons, on éliminera leséchantillons ayant une faible contribution.

Cette décision de lancer ou non un rayon dans la direction ωi est priseen fonction de la valeur de la fonction à intégrer.

Par exemple, si f (p, ωo, ωi) ≈ 0 ou si |cos θi | ≈ 0, aucun rayon nesera lancé dans la direction ωi .

Parcours de la lumière 37 / 92

Page 38: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Intégration de Monte-Carlo Amélioration de l’estimation

Roulette russe

Avec cette technique, comme des échantillons peuvent ne pas êtreutilisés, il faut accorder une attention particulière à la normalisationdes résultats en augmentant l’impact de ceux qui sont conservés.

L’utilisation de la roulette russe ne peut en aucun cas diminuer lavariance de l’estimateur. Son principe de fonctionnement est plusbarbare, mais aussi nettement plus simple que celui del’échantillonnage préférentiel.

Parcours de la lumière 38 / 92

Page 39: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques

Lumières surfaciques

1 Intégration de Monte-Carlo

2 Lumières surfaciquesOmbre et pénombreIllumination directeImplantation

3 Illumination globale

4 Références

Parcours de la lumière 39 / 92

Page 40: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Lumières surfaciques

1 Intégration de Monte-Carlo

2 Lumières surfaciquesOmbre et pénombreIllumination directeImplantation

3 Illumination globale

4 Références

Parcours de la lumière 40 / 92

Page 41: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Définitions

En infographie, une bonne gestion des ombres dans une scène 3Dpermet d’obtenir en un clin d’oeil de l’information sur la positionrelative des objets et des sources lumineuses.

[2]

Parcours de la lumière 41 / 92

Page 42: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Définitions

Lorsqu’on utilise uniquement les sources ponctuelles, il est questiond’ombres dures (hard shadows), puisqu’un point donné reçoit soit latotalité de la puissance lumineuse d’une source, soit rien du tout.

[2]

Parcours de la lumière 42 / 92

Page 43: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Définitions

Les ombres dues à des lumières réelles sont plus complexes àmodéliser. Comme ces sources lumineuses occupent un espacedans la scène, un point donné peut être partiellement caché par unautre objet, mais malgré tout recevoir une portion de la puissancelumineuse de la source.

[1]

Parcours de la lumière 43 / 92

Page 44: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Définitions

Les sources lumineuses ayant une surface non nulle et occupant unespace dans la scène portent le nom de lumière surfacique et lesombres ainsi obtenues sont appelées ombres douces (soft shadows).

[2]

Parcours de la lumière 44 / 92

Page 45: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Définitions

L’espace occupé par une lumière surfacique, au même titre que lesdimensions et positions des objets, auront un impact sur la taille desrégions formant l’ombre et la pénombre.

ombrepénombre

[2]

Parcours de la lumière 45 / 92

Page 46: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Principes de base

Au lieu de définir les lumières surfaciques comme des formesgéométriques à part dans la scène, on associera plutôt à un élémentde type GeometricObject un matériel émissif.

Soit un point d’intersection p sur une surface. On peut évaluer laradiance incidente au point p provenant d’une lumière surfaciquede trois façons :

Par échantillonnage de la surface de la source lumineuse ;

Par échantillonnage de l’angle solide associé à la sourcelumineuse ;

Par échantillonnage de la BRDF.

Parcours de la lumière 46 / 92

Page 47: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Principes de base

Avec l’échantillonnage de la surface de la source, on lance plusieursshadow rays à partir de p en direction de points sur la surface de lasource. Chaque point possède une radiance, au même titre qu’unesource ponctuelle.

Pour utiliser cette technique, chaque forme géométrique utiliséecomme source lumineuse doit être en mesure de fournir unensemble de points échantillonnés sur sa surface, de même que lanormale à ces points. Le niveau de difficulté pour l’obtention de ceséchantillons varie beaucoup d’une forme géométrique à l’autre.

Parcours de la lumière 47 / 92

Page 48: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Principes de base

La deuxième technique, basée sur l’échantillonnage de l’anglesolide au point p associé à la source lumineuse, fonctionnesensiblement de la même façon. Des shadow rays sont lancés endirection de la source, mais la direction de ceux-ci est cette fois-cidéterminée par des points sur la demi-sphère autour de p.

Ainsi, au lieu de devoir évaluer des échantillons sur la surface d’unobjet, on doit obtenir ceux-ci dans une région de projection sur unesurface sphérique.

Parcours de la lumière 48 / 92

Page 49: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Principes de base

La troisième approche ne repose pas sur l’échantillonnage de lasource de lumière, mais plutôt sur celui de la BRDF au point decontact. On utilise la BRDF pour obtenir un ensemble de directions ωipouvant contribuer significativement à l’éclairage du point p.

Des rayons sont ensuite lancés dans ces directions, puis des testsd’intersection sont effectués avec les formes géométriquesémissives. Ce principe de fonctionnement sera repris par l’algorithmedu tracé de chemin (path tracing) présenté à la section suivante.

Parcours de la lumière 49 / 92

Page 50: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Principes de base

Quelle technique produit les meilleurs résultats ? Ça dépend !

Les BRDF peuvent avoir des formes variées allant de la réflexiondiffuse parfaite à la réflexion spéculaire parfaite. De même, lessources lumineuses peuvent être minuscules et ne définir qu’unpetit angle solide sur p ou encore gigantesques et occuper la totalitéde la demi-sphère autour du point de contact.

Ce faisant, il est impossible de choisir une meilleure approche.

Parcours de la lumière 50 / 92

Page 51: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Principes de base

Par exemple, dans le cas où la BRDF est uniquement définie dans levoisinage d’une direction principale, il est préférable de procéder àun échantillonnage de celle-ci plutôt qu’à un échantillonnage de lasource lumineuse.

n

p

light surface

o

n

p

light surface

[2]

Parcours de la lumière 51 / 92

Page 52: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Ombre et pénombre

Principes de base

Inversement, si la BRDF est isotrope (uniforme dans toutes lesdirections), il est avantageux d’utiliser l’échantillonnage des sourceslumineuses pour s’assurer qu’un maximum de rayons percuteracelles-ci.

n

p

light surface

o

n

p

o

[2]

Parcours de la lumière 52 / 92

Page 53: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Illumination directe

Lumières surfaciques

1 Intégration de Monte-Carlo

2 Lumières surfaciquesOmbre et pénombreIllumination directeImplantation

3 Illumination globale

4 Références

Parcours de la lumière 53 / 92

Page 54: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Illumination directe

Fonctionnement

Pour la gestion de l’illumination directe provenant des lumièressurfaciques, on utilisera la première technique, soit celle reposant surun échantillonnage de la surface de la source lumineuse. Ce choix estmotivé par le fait que nous disposons déjà des outils permettant cetéchantillonnage pour une variété d’objets.

Il y a deux aspects à gérer pour supporter l’illumination directe à partirde lumières surfaciques dans l’algorithme du lancer de rayon :

le rendu de la source ;

la contribution de la source sur les objets de la scène.

Parcours de la lumière 54 / 92

Page 55: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Illumination directe

Fonctionnement

Tout comme les sources ponctuelles, les lumières surfaciquesémettent de la lumière et auront un impact sur la couleur perçuepour les formes géométriques de la scène.

Toutefois, une différence majeure entre les deux types de source estque les lumières surfaciques peuvent apparaître dans la scène, aumême titre que toute autre forme géométrique.

[1]

Parcours de la lumière 55 / 92

Page 56: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Illumination directe

Fonctionnement

Lorsqu’un rayon est lancé dans la scène, que ce soit un rayon primaireou un shadow ray, on teste les intersections avec tous les objets,incluant les lumières surfaciques. En cas de contact avec l’une decelles-ci, on évalue la radiance émise par la source dans la directioninverse du rayon.

n

p

primary ray

shadow ray

area light

Le

Le

o

i

[2]

Parcours de la lumière 56 / 92

Page 57: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Illumination directe

Estimation de la réflexion

Soit p un point sur une surface. On note par La(p, ωo) la radiancequittant le point p dans la direction ωo et qui est due à la réflexion de lalumière provenant directement d’une lumière surfacique. On a que

La(p, ωo) =

∫A

f (p, ωi , ωo)Le(p′,−ωi)V (p,p′)G(p,p′) cos θi dA′,

où p′ représente un point échantillonné sur la surface d’une sourcelumineuse, A est l’ensemble des surfaces des sources et dA′ est uneunité de surface différentielle autour de p′.

Parcours de la lumière 57 / 92

Page 58: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Illumination directe

Estimation de la réflexion

La direction ωi est fixée par les positions des points p et p′ :

ωi =p′ − p||p′ − p||

.

θ iθ i

p

np

dA

n'p'

|p − p'|2| |

i

− i

θ'

[2]

Parcours de la lumière 58 / 92

Page 59: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Illumination directe

Estimation de la réflexion

La(p, ωo) =

∫A

f (p, ωi , ωo)Le(p′,−ωi)V (p,p′)G(p,p′) cos θi dA′,

Dans cette équation, V (p,p′) est la fonction de visibilité entre deuxpoints de la scène :

V (p,p′) =

{1 si p et p′ peuvent se voir0 sinon

.

G(p,p′) est quant à lui le terme géométrique. Il est défini par

G(p,p′) =cos θ′

||p′ − p||2.

Parcours de la lumière 59 / 92

Page 60: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Illumination directe

Estimation de la réflexion

Si une scène contient n` sources de lumière surfaciques, on peutreformuler l’intégrale précédente :

La(p, ωo) =

n∑̀k=1

∫Ak

f (p, ωi , ωo)Le(p′,−ωi)V (p,p′)G(p,p′) cos θi dA′.

Ce faisant, pour une scène ne contenant qu’une seule source delumière surfacique, l’estimateur de Monte-Carlo pour l’intégrale aurala forme

〈La(p, ωo)〉 =1ns

ns∑j=1

f (p, ωi,j , ωo)Le(p′j ,−ωi,j)V (p,p′j )G(p,p′j ) cos θi

p(p′j )

pour ns points échantillonnés p′j sur la surface de la source.

Parcours de la lumière 60 / 92

Page 61: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Illumination directe

Estimation de la réflexion

Dans cet estimateur, p(p′j ) représente la densité de probabilitédéfinie en tout point de la surface de la lumière. La définition de cettefonction peut être très complexe si on souhaite qu’elle modéliseprécisément la contribution de chaque échantillon à l’estimateur.

La solution la plus simple est d’opter pour des échantillonsuniformément distribués sur la surface de la lumière. La densité deprobabilité est alors simplement donnée par

p(p′j ) =1

Ak,

où Ak est l’aire de la surface de la lumière.

Parcours de la lumière 61 / 92

Page 62: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Lumières surfaciques

1 Intégration de Monte-Carlo

2 Lumières surfaciquesOmbre et pénombreIllumination directeImplantation

3 Illumination globale

4 Références

Parcours de la lumière 62 / 92

Page 63: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Matériel émissif

Soit Le(p, ωo) la radiance émise par une lumière surfacique. Celle-cisera définie à l’aide d’un matériel émissif qui sera associé à uneforme géométrique. Par soucis de simplification, on utilisera unmatériel invariant dans l’espace (qui ne dépend pas de p) etisotrope (qui ne dépend pas de ωo).

On considère aussi que les formes géométriques qui émettent de lalumière n’ont pas d’autres propriétés de réflexion. C’est donc direque lorsqu’un rayon les atteint, celui-ci ne rebondit pas.

Parcours de la lumière 63 / 92

Page 64: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Matériel émissif

〈class IsotropicL〉 ≡

class I s o t r o p i c L : public Mate r i a l {

public :

I s o t r o p i c L ( ) ;I s o t r o p i c L ( const I s o t r o p i c L& a _ i l ) ;

~ I s o t r o p i c L ( ) ;

RGBColor shade ( I n t e r s e c t i o n& a _ i n t e r ) const ;

void setCo lor ( const RGBColor& a_co lor ) ;void setScale ( double a_ls ) ;

RGBColor getRadiance ( const I n t e r s e c t i o n& a _ i n t e r ) const ;

private :

double m_ls ;RGBColor m_color ;

} ;

Parcours de la lumière 64 / 92

Page 65: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Matériel émissif

Comme c’est le cas pour les sources ponctuelles, on définit laradiance émise (fonction getRadiance(.)) par le matériel à l’aide dedeux paramètres : la couleur et le facteur d’échelle.

La couleur perçue (fonction shade(.)) des lumières surfaciques seraaussi définie à partir de ces deux paramètres. Comme les objetsémetteurs ne réfléchissent pas la lumière, ils seront définis par unecouleur constante.

Parcours de la lumière 65 / 92

Page 66: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Matériel émissif

Pour conserver la souplesse d’utilisation des matériaux, on doit ajouterla fonction getRadiance(.) à la classe de base Material. Pour lesmatériaux non émissifs, la radiance sera nulle.

〈class Material〉 + ≡

class Mate r i a l : public std : : enable_shared_from_this <Mater ia l > {

public :

v i r t u a l RGBColor getRadiance ( const I n t e r s e c t i o n& a _ i n t e r ) const ;

} ;

i n l i n e RGBColor Ma te r i a l : : getRadiance ( const I n t e r s e c t i o n& a _ i n t e r ) const{

return RGBColor ( 0 . 0 ) ;}

Parcours de la lumière 66 / 92

Page 67: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Matériel émissif

Une dernière modification doit être faite à tous les matériaux. Pourajouter le support des lumières surfaciques, on doit modifier chacunedes fonctions shade(.) afin d’évaluer la quantité L à l’aide del’estimateur de Monte-Carlo.

〈Matte::shade(.)〉 + ≡

double cosOmegaI = dot ( wi , a _ i n t e r . m_normal . normal ize ( ) ) ;i f ( c o n t r i b u t e && cosOmegaI > 0){

L += m_diffuseBRDF−>f ( a_ in te r , wi , wo)∗ a _ i n t e r . m_pWorld−>m_l igh ts [ i ]−>getRadiance ( a _ i n t e r )∗ a _ i n t e r . m_pWorld−>m_l igh ts [ i ]−>g ( a _ i n t e r ) ∗ cosOmegaI/ a _ i n t e r . m_pWorld−>m_l igh ts [ i ]−>pdf ( a _ i n t e r ) ;

}

Parcours de la lumière 67 / 92

Page 68: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Objets émetteurs

Tel que mentionné en début de section, les formes géométriquesutilisées comme source de lumière doivent être en mesure de fournirdes points échantillonnés sur leur surface, de même qu’évaluer unedensité de probabilité et un vecteur normal en ces points.

On ajoute donc les fonctions sample(), pdf() et getNormal(.) àla classe GeometricObject. Pour fournir les échantillons, on utiliseun objet de type Sampler.

Voyons l’implantation de ces fonctions pour le plan.

Parcours de la lumière 68 / 92

Page 69: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Objets émetteurs

〈class Plane〉 ≡

class Plane : public Geometr icObject {

public :

Plane ( const s td : : shared_ptr <GeometricTransform > a_pO2W,const s td : : shared_ptr <GeometricTransform > a_pW2O,double a_xMin , double a_xMax ,double a_zMin , double a_zMax ) ;

BoundingBox objectBound ( ) const ;

bool i n t e r s e c t ( const Ray& a_ray , double& a_t , I n t e r s e c t i o n& a _ i n t e r ) const ;double area ( ) const ;

Po in t sample ( ) const ;double pdf ( ) const ;Normal getNormal ( const Poin t& a_p ) const ;

private :

double m_xMin , m_xMax, m_zMin , m_zMax ;} ;

Parcours de la lumière 69 / 92

Page 70: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Objets émetteurs

〈class Plane〉 + ≡

Poin t Plane : : sample ( ) const{

Po in t unitSample = m_sampler−>sampleUnitSquare ( ) ;

double x = unitSample .m_x ∗ (m_xMax − m_xMin ) + m_xMin ;double z = unitSample .m_y ∗ (m_zMax − m_zMin ) + m_zMin ;

Po in t planeSample ( x , 0 , z ) ;

return (∗m_objectToWorld ) ( planeSample ) ;}

double Plane : : pdf ( ) const{

return 1 / area ( ) ;}

Normal Plane : : getNormal ( const Poin t& a_p ) const{

Normal n(0 , −1 ,0);

return (∗m_objectToWorld ) ( n ) ;}

Parcours de la lumière 70 / 92

Page 71: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Objets émetteurs

La dernière étape est évidemment de définir un nouveau type desource : AreaLight. Pour y arriver, on doit cependant modifier laclasse de base Light.

〈class Light〉 + ≡

class L igh t {

public :v i r t u a l double g ( const I n t e r s e c t i o n& a _ i n t e r ) const ;v i r t u a l double pdf ( const I n t e r s e c t i o n& a _ i n t e r ) const ;

} ;

i n l i n e double L igh t : : g ( const I n t e r s e c t i o n& a _ i n t e r ) const{

return 1 . 0 ;}

i n l i n e double L igh t : : pdf ( const I n t e r s e c t i o n& a _ i n t e r ) const{

return 1 . 0 ;}

Parcours de la lumière 71 / 92

Page 72: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Objets émetteurs

〈class AreaLight〉 ≡

class AreaLight : public L igh t {

public :

AreaLight ( ) ;AreaLight ( const s td : : shared_ptr <GeometricObject > a_object ,

const s td : : shared_ptr <Mate r ia l > a_mater ia l ) ;~AreaLight ( ) ;

Vector g e t D i r e c t i o n ( const I n t e r s e c t i o n& a _ i n t e r ) const ;RGBColor getRadiance ( const I n t e r s e c t i o n& a _ i n t e r ) const ;

double g ( const I n t e r s e c t i o n& a _ i n t e r ) const ;double pdf ( const I n t e r s e c t i o n& a _ i n t e r ) const ;

Po in t ge tPos i t i on ( ) ;

private :

s td : : shared_ptr <GeometricObject > m_object ;s td : : shared_ptr <Mate r ia l > m_material ;Po in t m_sample ;

} ;

Parcours de la lumière 72 / 92

Page 73: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Objets émetteurs

Contrairement à une source ponctuelle, la notion de position pourune lumière surfacique n’est pas clairement définie. La fonctiongetPosition() sera responsable d’évaluer un point sur la surfacede l’objet et c’est celui-ci qui sera utilisé comme position.

〈AreaLight::getPosition()〉 ≡

Poin t AreaLight : : ge tPos i t i on ( ){

m_sample = m_object−>sample ( ) ;

return m_sample ;}

Parcours de la lumière 73 / 92

Page 74: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Lumières surfaciques Implantation

Objets émetteurs

Il ne reste plus qu’à définir une lumière surfacique dans la fonctionbuild() de la classe World :

〈World::build()〉 + ≡

s td : : shared_ptr < I so t r op i cL > iso1 (new I s o t r o p i c L ( ) ) ;iso1−>setScale ( 3 0 0 ) ;s td : : shared_ptr < S t ra t i f i edSamp le r > alSampler (new S t r a t i f i e d S a m p l e r ( 1 0 0 ) ) ;

s td : : shared_ptr <GeometricTransform >o2w1(new GeometricTransform ( t r a n s l a t e ( Vector (0 , 300 , 0 ) ) ) ) ;

s td : : shared_ptr <GeometricTransform >w2o1 (new GeometricTransform ( inverse (∗o2w1 ) ) ) ;

s td : : shared_ptr <Plane> ep1 (new Plane (o2w1 , w2o1 , −50, 50 , −50, 5 0 ) ) ;ep1−>s e t M a t e r i a l ( iso1 ) ;ep1−>setSampler ( alSampler ) ;ob jec ts . push_back ( ep1 ) ;

AreaLight a l1 ( ep1 , iso1 ) ;addLight ( s td : : make_shared<AreaLight >( a l1 ) ) ;

Parcours de la lumière 74 / 92

Page 75: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale

Illumination globale

1 Intégration de Monte-Carlo

2 Lumières surfaciques

3 Illumination globaleTracé de chemin

4 Références

Parcours de la lumière 75 / 92

Page 76: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

tracé de chemin

1 Intégration de Monte-Carlo

2 Lumières surfaciques

3 Illumination globaleTracé de chemin

4 Références

Parcours de la lumière 76 / 92

Page 77: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Transport de la lumière

Jusqu’à maintenant, nous nous sommes intéressés à la gestion del’illumination directe provenant des sources de lumière ponctuelles etsurfaciques, de même qu’à l’illumination indirecte sous la forme de laréflexion miroir. Pour en arriver à une simulation réaliste de l’éclairagedans une scène, il faut toutefois gérer plusieurs autres modes depropagation de la lumière.

Dans cette section, on s’attardera à décrire un modèle de réflexionlumineuse pour toute surface, sans égard à sa BRDF.

Parcours de la lumière 77 / 92

Page 78: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Transport de la lumière

Pour justifier ce nouveau modèle, considérons l’exemple d’une surfacespéculaire réfléchissant sa lumière sur une surface diffuse.

spéculaire

diffusr

l 1

l 0

l 2

p [2]

Le point d’intérpet p reçoit alors de la radiance incidente de deuxfaçons : par illumination directe (l0) et par illumination indirecte (l2)suite à une réflexion sur une surface intermédiaire.

Parcours de la lumière 78 / 92

Page 79: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Transport de la lumière

Or, dans la situation actuelle, nous savons sans problème évaluer lacomposante directe de l’illumination, mais il en est autrement pourl’illumination indirecte. Le problème est que l’algorithme du lancer derayon ne dispose présentement d’aucun mécanisme lui permettantde découvrir la lumière provenant de la direction l2.

L’objectif des techniques d’illumination globale est donc de simulerl’ensemble des contributions lumineuses participant à la formationd’une image. Pour atteindre celui-ci, nous ferons appel à l’algorithmedu tracé de chemin (path tracing).

Parcours de la lumière 79 / 92

Page 80: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Transport de la lumière

Parcours de la lumière 80 / 92

Page 81: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Algorithme du tracé de chemin

La technique du tracé de chemin est une méthode simple reposant surla force brute pour l’évaluation de l’illumination directe et indirectedans des scènes possédant des lumières surfaciques. Le tracé dechemin ne fonctionne pas avec des sources ponctuelles.

Comme les images produites sont de résolution finie, la technique dutracé de chemin peut permettre d’obtenir une solution exacte àl’équation du rendu, à condition d’utiliser une nombre suffisantd’échantillons et de permettre un très grand nombre de rebonds.

Parcours de la lumière 81 / 92

Page 82: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Algorithme du tracé de chemin

Le fonctionnement de la méthode est très simple : un rayon est lancédans la scène à partir d’un pixel et son parcours est suivi jusqu’à cequ’un des événements suivants ne survienne.

1 Le rayon frappe une source lumineuse ;2 Le rayon atteint son nombre maximal de rebonds sans frapper

une source lumineuse ;3 Le rayon quitte le cadre de la scène.

[2]

Parcours de la lumière 82 / 92

Page 83: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Algorithme du tracé de chemin

À chaque point de contact sur une surface, on détermine la directiondu rayon réfléchi en fonction du matériel de l’objet en question. Il n’y adonc aucune restriction quant aux propriétés réflexives dessurfaces.

Pour un pixel donné dans l’image, plusieurs rayons sont lancés etchacun de ceux-ci engendrera un parcours différent. En utilisant assezd’échantillons, on arrive à découvrir l’ensemble des directionscontribuant à l’éclairage du point.

r1

r3

r2

p p

[2]Parcours de la lumière 83 / 92

Page 84: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Résultats et améliorations

Le problème principal du tracé de chemin est que la taille dessources lumineuses est souvent très petite en comparaison avec lereste des objets. Ce faisant, il n’y a qu’une faible proportion des rayonsqui entrera en contact avec une source de lumière.

Cela a non seulement pour effet que beaucoup de calculs sont faitsinutilement, mais aussi que plusieurs pixels apparaîtrons en noir,puisqu’aucun de ses rayons n’atteindra de lumière. Il devient alorsnécessaire d’utiliser plusieurs milliers d’échantillons par pixel pourobtenir un résultat satisfaisant.

Parcours de la lumière 84 / 92

Page 85: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Résultats et améliorations

[2]

Parcours de la lumière 85 / 92

Page 86: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Résultats et améliorations

[2]

Parcours de la lumière 86 / 92

Page 87: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Résultats et améliorations

Sur papier, le tracé de chemin est une solution idéale pour approximerl’équation du rendu, car il gère à lui seul l’illumination directe etindirecte. Les images résultantes sont toutefois souvent sombres,bruitées et prennent un temps fou à obtenir.

Une solution est alors d’utiliser une approche hybride : gérerl’illumination directe comme nous le faisions précédemment etconfier au tracé de chemin le calcul de l’illumination indirecte.Pour se convaincre de la pertinence d’une telle approche, comparonsla qualité du rendu de l’illumination directe traditionnelle par rapport àcelle obtenue par tracé de chemin.

Parcours de la lumière 87 / 92

Page 88: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Résultats et améliorations

On utilise ici un même nombre d’échantillons, soit 100 rayons lancéspar pixel, et on fixe le nombre maximal de rebonds à 1 pour le tracé dechemin, de manière à obtenir uniquement l’illumination directe.

[2]

Parcours de la lumière 88 / 92

Page 89: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Résultats et améliorations

Avec une telle approche, il faut toutefois faire attention pour ne pascompter en double la contribution de l’illumination directe.

[2]

Parcours de la lumière 89 / 92

Page 90: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Illumination globale Tracé de chemin

Résultats et améliorations

Le tracé de chemin n’est pas la seule méthode permettant la gestionde l’illumination globale. C’est toutefois celle qui s’intègre le plusfacilement à la structure mise en place depuis le début de la session.

D’autres avenues envisageables sont

le placage de photon (photon mapping) ;la radiosité ;l’éclairage par harmoniques sphériques ;l’illumination point-based.

Parcours de la lumière 90 / 92

Page 91: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Références

Références

1 Intégration de Monte-Carlo

2 Lumières surfaciques

3 Illumination globale

4 Références

Parcours de la lumière 91 / 92

Page 92: IMN528 - Chapitre 5 Parcours de la lumièreinfo.usherbrooke.ca/.../chapitres/imn528-chap05.pdf · 1 x0 Z y 1 y0 Z z 1 z0 g(x;y;z) dzdydx: On choisit des échantillons aléatoires

Références

Références I

M. Pharr and G. Humphreys.Physically Based Rendering.Morgan Kaufmann, second edition, 2010.

K. G. Suffern.Ray Tracing from the Ground Up.A K Peters, 2007.

Parcours de la lumière 92 / 92