TP5: Insertion d'objets virtuels

Carl Nadeau 2017

Description du projet

Les buts du projet sont d'éclairer des objets virtuels avec une estimation de la radiance d'une scène et les intégrer à une photo de cette même scène.

Partie A : Carte de radiance HDR

Nous avons suivi les étapes proposés pour effecter un carte de radiance. On peut décrire les démarches en plusieurs étapes :

  1. Après avoir pris en photo la scène où l'on désire insérer des objets virtuels, nous avons aussi pris en photo un mirroir sphérique (boule réfléchissante) à plusieurs expositions (-2,-1,0,1,2).
    C'est avec ces photographies que nous allons déduire la radiance.

  2. Découper les images pour garder seulement la sphère métallique à ses différentes expositions.

  3. Résoudre l'équation proposé dans le Recovering High Dynamic Range Radiance Maps from Photographs de Paul E. Debevec et Jitendra Malik : Zij = f(Ei x Δtj) ou g(Zij) = ln(Ei) + ln(tj), simplifié.
    Zij est la valeur du pixel à une exposition donnée et Ei, la radiance pour un pixel donné.

    1. Nous avons modifié le code Matlab des auteurs, en intégrant le calcul de la pondération triangulaire des valeurs de pixel.
    2. De cette fonction, nous ne nous intéressons qu'à la sortie g. lE sera calculé plus tard sur tous les pixels.
    3. Nous utilisons un lamda de 0.8 dans toutes nos processus.
    4. Nous avons établie que notre fonction triangulaire commencerait à monter à une valeur de 5 et elle arrête de descendre à 250.
    5. Formules pour calculer ln(Ei)
      Équation à minimiser avec résolution SVD pour estimer g à un facteur près. La fonction triangulaire de pondération. Les sommations à effectuer pour construire la carte de radiance. Le graph de g pour un scène (bell) dans le canal rouge


  4. Pour trouver un g intéressant, nous avons échantilloné une centaine de valeur sur la diagonale des images, sur chacune des 5 images au temps d'exposition différent. Nous avons ainsi 505 valeurs pour trouver g.

  5. De là, nous pouvons calculer la valeur de ln(Ei) et Ei. Nous avons établie que lorsque w(Zij)=0, nous lui attribuons une petite valeur pour éviter des divisions par zéros.

Voici des exemples de découpe de boule, de carte de radiance en logarithme naturelle et directement. Nous avons aussi un modèle HDR afficher en LDR avec Tonewrap de Matlab.

Photographies du mirroir sphérique à plusieurs expositions

La même scène, mais après résolution et compressée en LDR

Carte de radiance pour une autre scène
En log naturel Directe

Nous avons remarqué que nos photographies auraient dû être encore plus sous exposés pour bien calculer la radiance des sources lumineuses. On parle de sous expositions à -3,-4 et même -5.

Partie B : Rendu d'objets synthétiques

Nous présentons nos résulats avec des courtes explications sur la configuration de la scène dans blender pour les rendus.
Dans tous les cas, nous avons composé les images avec cette formule donnée : composite = M.*R + (1-M).*(I + (R-E).*c).

Première scène
Scène composée. Assez réaliste, mais les ombres ne sont pas suffisament fortes. Si on regarde bien, on peut voir la réflexion de la boite de mouchoir sur la boule. Scène vide Objets vituels avec son plan, pour récupérer les ombres et les réflexions Plan seulement, pour la soustraction avec la dernière images et composer l'image
Le plan est mat avec un peu de réflexion pour simuler la bilbiothèque.

Deuxième scène
Scène composée, le rendu et l'éclairage rend la scène réaliste sympatique. On dirait de l'impression 3D. Scène vide Objets vituels avec son plan, pour récupérer les ombres et les réflexions Le plan est très mat et absorbant et gris pour simuler le dessus du téléphone.

Comme remarqué précédement,nos photographies auraient dû être encore plus sous exposés pour bien calculer la radiance des sources lumineuses. Cela ce fait sentir par la faiblesse des ombres dans toutes les images.

Partie C : Crédits supplémentaire

Nous avons effectué 4 autres scènes et fait une projection Lat-Long de la boule sur une surface rectangulaire.

Troisième scène
Scène composée. Les textures sont très intéressante, surtout le coeur, mais les ombres sont très minces. Scène vide Objets vituels avec son plan, pour récupérer les ombres et les réflexions Le plan est un peu réfléchissant pour simuler du bois vernis.

Quatrième scène
Scène composée. Les réflections sont très réaliste. On peut voir que la lumière du soleil est impliqué par la force des réflections. Sinon, le modèle est trop petit pour être suffisament apprécié. Scène vide Objets vituels avec son plan, pour récupérer les ombres et les réflexions Le plan est un blanc mat (encore). Deux plans pour obtenir les ombres.

Cinquième scène
Scène composée. Modèle haute définition. J'ai tenté de reproduire une texture d'un vieux métal précieux. L'angle de la statue n'est pas optimal non plus. Scène vide Objets vituels avec son plan, pour récupérer les ombres et les réflexions Les plans sont de deux couleurs respectivement pour accommoder les couleurs du téléphone et de l'affiche.

Sixième scène
Scène composée. La matériel du modèle est réfléchissant à 100%. Je voulais aussi tester la force des ombres. Scène vide Objets vituels avec son plan, pour récupérer les ombres et les réflexions Les deux plans permettent de capturuer les ombres des grandes ailes du modèle.

Concernant la projection Lat-Long, j'ai réussi à programmer quelque chose de similaire, mais ce n'est pas parfait. Je projette la carte sphérique sur un rectangle, mais je ne réussi pas à l'étaler parfaitement.
les coordonnées sont de theta de -pi à pi et, de phi, de -pi à pi.
Vous pouvez consulter le code dans calculerMap.m.

Carte des radiance
Carte de radiance de la scène du globe terrestre (statue verte) en boule Carte en Lat-Long de la même scène

Exemple plus visible - LDR
Carte de radiance de la scène du globe terrestre (statue verte) en boule Carte en Lat-Long de la même scène

Les résultats sont bien!

Conclusion

Pour conclure, nous avons réussi à éclairer des objets virtuelles avec une estimation de la radiance d'une scène pour ensuite les intégrer à des photos de cette même scène.