Synthèse réaliste d’image par raytracing et photon mapping Présentation de toxic Synthèse réaliste d’image par raytracing et photon mapping François BEAUNE beaune@aist.enst.fr 12 janvier 2004
Plan de la présentation Introduction Introduction au photon mapping Construction de la photon map Rendu final de la scène Résultats Conclusions
Introduction Brique de projet de 3ème année. toxic : En développement depuis début 2003. 30 000 lignes de code source. C++ moderne, code portable. Projet open source sous licence GPL. Disponible sur SourceForge. http://toxicengine.sourceforge.net/
Introduction Raytracing stochastique pur :
Introduction Illumination globale :
Introduction Quelques techniques d’illumination globale Path tracing James T. Kajiya, 1986. Extension immédiate du raytracing. Principe : Échantillonnage de la fonction inconnue (la distribution de la lumière) par des rayons distribués de façon stochastique dans l’ensemble des chemins lumineux possibles. Valeur finale d’un pixel obtenue par moyennage d’un grand nombre d’échantillons (de 101 à 105).
Introduction Quelques techniques d’illumination globale Path tracing Avantages Résoud intégralement l’équation de rendu. Aucune contrainte sur les BRDF et la géométrie. Implémentation triviale. Inconvénients Temps de calcul prohibitif. (Presque) toujours du bruit dans la solution.
Introduction Quelques techniques d’illumination globale Éléments finis (radiosité) Goral, Torrance, Greenberg, Battaile, 1984. Principe : Décomposition de toutes les surfaces de la scène en patches (surfaces élémentaires). Calcul des échanges de lumière entre tous les patches. Résolution d’un système d’équations linéaires.
Introduction Quelques techniques d’illumination globale Éléments finis (radiosité) Avantages Jamais de bruit dans la solution. Solution indépendante de la position de l’observateur. Inconvénients Nécessite la décomposition de chaque surface en patches (pas toujours efficace, et parfois impossible). Inapplicable aux scènes complexes (occupation mémoire et temps de calcul trop importants).
Introduction au photon mapping Le photon mapping Henrik Wann Jensen. Développé durant son PhD. en 1993-1994. Première publication en 1995-1996. Principe simple : diviser le raytracing en deux phases distinctes : Émission de photons depuis les sources lumineuses et propagation à travers la scène. Collecte des photons pour le rendu final. Implémentation relativement aisée.
Introduction au photon mapping Phase 1 : construction de la photon map Émission de photons depuis les sources lumineuses. Propagation des photons à travers la scène. Phase 2 : rendu final de la scène Raytracing distribué (stochastique). Sampling de la photon map.
Introduction au photon mapping Position dans l’espace 3 flottants 32 bits (x, y, z) : 12 octets. Puissance transportée Exprimée avec l’exposant commun de Ward (Ward’s shared-exponent RGB format). 4 entiers 8 bits (r, g, b, e) : 4 octets. D’autres informations moins importantes. En pratique, 1 photon = 20 octets.
Construction de la photon map Sources lumineuses parfaitement diffuses. Pour chaque source lumineuse : Émission aléatoire de N photons. Pphoton = Psource / N. N est un facteur de qualité (104 ≤ N ≤ 106).
Construction de la photon map Pour chaque photon émis : Propagation du photon à travers la scène jusqu’à perte ou absorption.
Construction de la photon map Interaction photon / surface diffuse idéale : Stockage du photon à la suite du tableau de photons. Selon probabilité p = réflectance surface ρ : Réflexion diffuse : Émission d’un nouveau photon depuis le point d’impact. Pphoton émis = Pphoton incident Absorption : fin de la propagation du photon.
Construction de la photon map Interaction photon / surface spéculaire idéale : Puissance du photon multipliée par la réflectance de la surface. Réflexion / réfraction du photon par rapport à la normale à la surface.
Construction de la photon map Remarques : L’interaction photon / surface peut être résolue : quelque soit la surface, pourvue que l’intersection rayon / surface puisse être calculée, quelque soit la BRDF de la surface. Les photons sont stockés dans un tableau linéaire à une dimension.
Construction de la photon map Phase d’émission et de propagation Tableau linéaire de photons. Objectif : estimation de densité de photons Recherche des M plus proches photons d’un point donné de l’espace. Tableau linéaire très peu efficace. Structure plus adaptée : le kd-tree.
Construction de la photon map Le kd-tree Arbre binaire multidimensionnel (ici de dimension 3). Chaque nœud partitionne une dimension. Recherche des M plus proches photons parmi N : O(M + log N) [1] en moyenne. Occupation mémoire : O(N). Représentation extrèmement compacte possible. [1] Jon L. Bentley. “Multidimensional binary search trees in database applications.” IEEE Trans. on Soft. Eng. 5(4): 333-340 (July 1979).
Rendu final de la scène Raytracing récursif stochastique Récursif (Turner Whitted, 1980) Réflexion Réfraction Stochastique ou distribué (Robert L. Cook, 1984) : Ombres douces Profondeur de champ Flou de mouvement Réflexions floues, translucence
Rendu final de la scène Lancé de rayons depuis l’observateur à travers chaque pixel de l’image (rayons primaires). Détermination de l’intersection rayon / surface. À chaque point d’intersection rayon / surface : Surface spéculaire : Lancé de rayons réfléchis / réfractés (rayons secondaires). Surface diffuse : Calcul de l’illumination directe Sampling des sources lumineuses (shadow rays). Calcul de l’illumination indirecte Estimation de la densité de photons au point d’intersection → « Visualisation directe » de la photon map.
Rendu final de la scène Photons Rayons primaires Rayons secondaires Shadow rays
Rendu final de la scène Illumination directe seulement : Temps de calcul (rendu) : 1 minute 40 secondes
Rendu final de la scène Illumination indirecte seulement (visualisation directe de la photon map) : Temps de calcul (rendu) : 20 secondes
Rendu final de la scène Constat : Solution : C’est joli mais… Photon map trop grossière pour une visualisation directe. Solution : Ajout d’un niveau « d’indirection » : le final gathering.
Rendu final de la scène Le final gathering Sampling de l’hémisphère au point d’intersection rayon primaire / surface : Lancé de rayons depuis le point d’intersection. Intersection des rayons avec la scène. Estimation de la densité de photons à ces nouveaux points d’intersection. Illumination indirecte finale = moyenne de chaque estimation de densité à ces nouveaux points.
Rendu final de la scène Le final gathering Estimation en ce point de la densité de photons grâce à la photon map
Rendu de la scène Illumination indirecte seulement (final gathering) : Temps de calcul (rendu) : 18 minutes 46 secondes
Rendu de la scène Illumination globale : Temps de calcul (rendu) : 20 minutes
Résultats Rendu de référence (Cornell Univ.) Rendu toxic
Résultats Ce modèle est la propriété de François Gilliot.
Résultats Ce modèle provient du site Image-based 3D Models Archive, Télécom Paris (http://www.tsi.enst.fr/3dmodels/). Utilisé avec la permission de Carlos Hernández Esteban et Francis Schmitt.
Résultats Ce modèle provient du site Image-based 3D Models Archive, Télécom Paris (http://www.tsi.enst.fr/3dmodels/). Utilisé avec la permission de Carlos Hernández Esteban et Francis Schmitt.
Conclusions Puissance du photon mapping Robustesse Simplicité Toute géométrie Toute BRDF Simplicité Performances Extensibilité
Conclusions Extensions possibles du photon mapping Caustiques Caustiques volumétriques Milieux non-homogènes (participating media) Sub Surface Scattering
Résultats
Bonus : quelques images générées par Henrik Wann Jensen (Dali) Cette image provient du site de Henrik Wann Jensen (http://graphics.ucsd.edu/~henrik).
Bonus : quelques images générées par Henrik Wann Jensen (Dali) Cette image provient du site de Henrik Wann Jensen (http://graphics.ucsd.edu/~henrik).