TP5: Insertion d'objets virtuels

Description :

Les photos prisent avec des caméras standarts ne permettent pas d'avoir autant de détails que l'oeil humain peut en décoder. c'est pourquoi les images à hautes plages dynamiques existent sur les appareils photos récent. Le but de ce travail est de prendre plusieurs images avec des temps d'expositions différents pour reconstruire la plage dynamique complète. La carte de radiance d'une bille mirror est ensuite trouvée pour obtenir de l'informations sur la luminosité et ajouter des objects virtuels.

Préparation de la carte de radiance

La première étape est de trouver la carte de radiance de la bille métalique. Pour ce faire on débute par trouver l'intensité de chaque pixel avec la fonction d'irradiance multiplié par le temps d'exposition.

En inversant, on trouve,

Et,

Où,

Le problème peut finalement s'inscrire comme un problème de moindre carré linéaire. Avec N pour le nombre de pixel choisit qui est de 300 dans mon cas, P correspond au nombre d'images et lambda est un coéficient qui lisse la courbe, 10 est choisi.

Voici le résultat de la courbe g dans ces conditions, la courbe n'est pas particulièrement lisse, mais la carte de radiance semble tout de même bonne et l'augmentation de lambda n'améliore pas la courbe.

Construction de la carte de radiance

L'étape suivante est de construire la carte de radiance a partir des valeurs d'intensités obtenues. Les valeurs sont pondérés selon l'équation suivante :

Transformation sphérique à longitude-latitude

Il faut passer des coordonnées de la sphère au coordonnée équi-rectangulaire (longitute-latitude). Pour ce faire, on part d'une image rectangulaire étalonnée en coordonnés sphériques, theta/phi. Avec ces valeurs on calcul le vecteurs de réflexions en coordonnés cartésiennes x, y, z. Avec le vecteur de réflexion et si on établie de vecteur de l'observateur à V = (0, 0, 1), on trouve le vecteur u, v de la normal. Finalement on interpole u, v pour trouver des valeurs plus justes sur la carte de radiance. Voici un example, un algorithme de tone mapping est appliqué pour mieux voir les couleurs.

Rendu d'objets synthétiques

Les étape suivante sont pour dessiner un plan avec des objets 3D dans l'espace. Le but est d'avoir un image du plan avec les objets, une image sans les objets et finalement un masque sur les objects. Voici les trois images générées par Blender :

Composition

La dernière étape est de composer les images pixels par pixels pour obtenir le rendu final. L'équation pour obtenir le résultat est Composite = M.*R + (1-M).*I + (1-M).*(R-E).*c, où M est le masque, R est le rendu avec les objects, I est l'image d'arrière plan, E est le plan sans object et c est une constante pour la luminosité qui est 1 dans mon cas. Voici le résultat du rendu final :

Explication

Malheureusement tous mes testes sont faits sur les images fournient dans le cours puisque mon algorithme pour trouver la carte de radiance ne fonctionnait pas avec mes images maisons. Je crois que mes images sont trop sombres et je ne peux pas faire de mldivide dans l'algorithme et trouver un bonne réponse au système linéaire, même en augmentant le nombre de points. C'est pourquoi je crois que mes images étaient trop sombre. J'ai donc été oubligé de continuer à développer sur les images fournient puisque je n'avais plus la bille en ma possession. Voici les images que j'ai prises :

Sinon on peut voir la lumière dans les objects du rendu final. Je pense éventuellement refaire la prise de photos pour tester mon algorithme sur mes images.