TP5 Illumination Globale et Tone Mapping

Download Report

Transcript TP5 Illumination Globale et Tone Mapping

TP5 Illumination Globale et Tone Mapping
1
Image HDR et Tone Mapping
Depuis le d´ebut du projet, toutes les images g´en´er´ees sont en Low Dynamic Range (les
valeurs des pixels ne d´epassent pas 1). La fonction Raytracing::raytraceImage poss`ede
l’algorithme de Tone Mapping le plus basique : les valeurs sup´erieurs a` 1 sont remises
a` 1. L’illumination globale et les sc`enes complexes rendent ce pseudo Tone Mapping
probl´ematique puisque l’intensit´e d’un pixel n’a aucunes raisons de rester inf´erieure ou
´egale `a 1. Pour avoir un rendu physiquement plausible il faut pouvoir g´erer toutes les
intensit´es de pixels de 0 a` +∞.
1.1
Tone Mapping
La premi`ere solution consiste a` appliquer un algorithme de Tone Mapping sur l’image
HDR afin de replacer intelligemment les valeurs entre 0 et 1.
Linear Mapping.
L’algorithme le plus na¨ıf est le mapping lin´eaire des valeurs :
Vtm = (Vi − Vmin )/(Vmax − Vmin )
(1)
Impl´
ementez cet algorithme de Tone Mapping et observez le r´
esultat.
Reinhard.
Afin d’obtenir une image plus int´eressante `a regarder, vous allez devoir impl´
ementer
le Tone Mapping de Reinhard fourni avec le sujet du TP (figure 6 du document).
Beaucoup de param`etres peuvent ˆetre utilis´es pour ajuster le r´esultat final.
(a) Clamp des valeurs > 1
(b) Mapping Lin´eaire x60
1
(c) Reinhard
1.2
Format d’image HDR (Objectif Bonus)
Une seconde solution est de sauvegarder l’image dans un format High Dynamic Range.
Il faudra ensuite utiliser un logiciel sp´ecial pour pouvoir les visualiser. Utilisez les
fichiers rgbe.h et rgbe.cpp pr´
esents dans les sources du code pour sauvegarder l’image au format .hdr. Vous pouvez t´el´echarger et compiler le logiciel
HDRSee pour visualiser l’image ainsi obtenu, il permet de voir l’effet de plusieurs
algorithmes de Tone Mapping.
2
Path Tracing
En r´ep´etant r´ecursivement l’´echantillonnage du TP pr´ec´edent a` chaque rebond, vous
obtiendriez l’algorithme de stochastic ou distributed ray tracing et donc une premi`ere
m´ethode d’illumination globale. Comme vous pouvez d´ej`a le constater, l’inconv´enient
majeur en terme d’impl´ementation est la n´ecessit´e de plusieurs boucles d’´echantillonnage
pour int´egrer (au sens de Monte-Carlo) les diff´erents termes de l’´equation du rendu :
pour calculer l’´eclairage direct par les sources ´etendues, pour ´evaluer l’´eclairage indirect
pond´er´e par les BRDF, pour r´ealiser l’int´egration sur un pixel (anti-aliasing).
L’algorithme de path tracing r´ealise les mˆemes int´egrales avec une seule boucle d’´echantillonnage
sur chaque pixel, c’est celui que vous allez impl´ementer. Pour cela, ´
echantillonnez de
` chaque
fa¸con dense les pixels (plusieurs centaines de rayons par pixel). A
intersection, ´
evaluez d’abord l’illumination directe (lancez un rayon d’ombre
al´
eatoire vers une des sources lumineuses ´
etendues), puis l’illumination indirecte : lancer un rayon secondaire (appel r´
ecursif `
a Scene::raytrace) dans la
direction indiqu´
ee par l’importance sampling de la BRDF.
(a) 20 chemins par pixel
(b) 400 chemins par pixel
Figure 2 – Le path-tracing n´ecessite d’envoyer beaucoup de rayons par pixel pour ´eviter
d’avoir des images bruit´es
2
L’utilisation d’un crit`ere d’arrˆet arbitraire sur la profondeur de l’arbre des rayons
n’est pas satisfaisante (cela introduit un biais dans l’int´egration). Mettez en œuvre
un m´
ecanisme de roulette Russe pour y rem´
edier. Vous pouvez utiliser la couleur
ambiante moyenne du mat´eriau comme coefficient d’absorption.
Important Un path-tracer physiquement r´ealiste et g´en´erique est difficile a` obtenir
et n´ecessite un important travail (impl´ementation, tests, d´ebugage).
Votre path-tracer comptera comme la premi`ere partie de la note finale du projet, la
restitution du code sera accompagn´e d’un document simple et clair qui r´esumera et
qui illustrera les capacit´es du programme.
L’objectif id´eal est d’obtenir un path-tracer qui fonctionne dans tous les cas
d’´eclairement (lumi`eres ponctuelles et directionnelles, objet ´emetteur de lumi`ere, carte
d’environnement), de g´eom´etrie (triangles, sph`eres, plans) et de mat´eriaux (Ward et
Phong).
3