TP5: Insertion d'objets virtuels

Description du travail

Ce travail consiste à prendre plusieurs photos d'une sphère métalique dans un environnement donné à des niveaux d'expositions différents. Ensuite, ces images de la sphère à différents niveaux vont permettre la création d'une image HDR à partir de l'algorithme de Debevec. Cette image de type spécial, contenant des informations sur la radiance de la scène, permet d'illuminer une scène 3D dans Blender.

Construction de la carte de radiance


1/45 s

1/60 s

1/125 s

1/250 s

1/500 s

1/1000 s

1/2000 s

1/4000 s

La première étape consiste à prendre des photos d'une sphère réfléchissante dans une scène statique à différents niveaux d'exposition comme celles montrées ci-haut. Les niveaux sont exposés dans le titre en dessous de chaque image. Ensuite, ces photos sont combinées grâce à l'agorithme décrit par Debevec dans son article de 1997. Je me suis basé sur le code Matlab qu'il fournit à la fin de l'article afin de résoudre la fonction du capteur (g). Cette fonction est ensuite utilisé afin de créer la carte de radiance avec une fonction de pondération (w) triangulaire normalisée (0 à 1). Pour chaque pixel de l'image final, on prend cette position de pixel dans chaque image (z) et on applique la fonction de pondération (w) à g(z). Les pixels proches du centre de la plage dynamique (127) sont donc avantagés dans la valeur du pixel final sur la carte de radiance. Par la suite, la carte est réduit à un array de float entre 0 et 1 avant d'être sauvée en format HDR. Évidamment, l'image HDR comporte un certain "ghosting" en raison de mon inaptitude à garder mon téléphone cellulaire bien droit dans mes mains.

Exemple d'image HDR obtenue


Image HDR convertie en LDR Drago

Scène 1

Pour cette scène, j'ai simplement importé mon HDR dans la scène fournise, ajusté l'intensié de la lumière pour match le gamma de mon HDR, déplacé un peu les objets, ajusté l'angle de la caméra et appuyer sur F12. Plutôt jolie, mais par la suite, j'ai découvert le mode "shadow catcher" qu'on peut activer sur le ground plane. Miracle! Il ne reste que les ombres avec un canal alpha! Ce rendu m'a donc donné un fichier PNG avec les objets et les ombres. Il m'a ensuite suffit de combiner ce PNG avec l'image de fond et le tour était jouer.

Image HDR utilisée


Image HDR convertie en LDR Drago

Scène blender


Perspective de la caméra

Résultat


Rendu composé

Rendu brute

Image de fond

Scène 2

Pour ma deuxième scène, j'ai décidé d'apprendre à utiliser les "nodes" dans Blender afin de produire l'image finale que je désire entièrement dans Blender, composition incluse! Comme premier essais, j'ai décider de reproduire la sphère métallique qui a permis de créer le fichier HDR! On peut voir dans l'image de la scène Blender que j'ai utilisé deux layers, soit une pour la boule avec son "shadow catcher" et l'autre pour l'image de fond. Ensuite, j'ai utilisé des nodes de contrastes et de saturation afin d'avoir l'effet exact que je recherchais sur la boule. Le résulat est à mon avis plutôt convaincant.

Image HDR utilisée


Image HDR convertie en LDR Drago

Scène blender


Nodes et perspective de la caméra

Résultat


Rendu composé

Référence

Image de fond

Cependant, comme il fallait utiliser un autre modèle avec des textures différentes, j'ai également télécharger un modèle d'ours en peluche. Je l'ai "assis" correctement sur le poteau puis j'ai ajouter une source lumineuse en plus de celle de la carte d'environnement puisque celle-ci toute seule ne donnait pas un effet convaincant sur le pauvre ourson. J'ai ajuster mes "nodes" de post-processing pour avoir l'effet désiré puis j'ai fais une dernière fois F12 pour obtenir les résultats ci-bas. Il était beaucoup plus difficile que je pensais de faire le rendu de l'ourson en raison de sa texture très complexe. Également, j'ai modéliser le poteau au complet afin que toutes les ombres générées "match" parfaitement avec la photo en arrîère plan.

Scène blender


Nodes et perspective de la caméra

Résultat


Rendu composé