Rendu raliste en synthse dimages Lancer de rayons

  • Slides: 105
Download presentation
Rendu réaliste en synthèse d’images. Lancer de rayons stochastique

Rendu réaliste en synthèse d’images. Lancer de rayons stochastique

Organisation l Lancer de rayons stochastique – Intégration de Monte Carlo l – –

Organisation l Lancer de rayons stochastique – Intégration de Monte Carlo l – – Exemple sur l’éclairage direct Résolution de l’équation de la luminance Optimisation l Carte de photons

Lancer de rayon classique l Un rayon d’ombre par point l Sources lumineuses approximées

Lancer de rayon classique l Un rayon d’ombre par point l Sources lumineuses approximées par un point l Ombres dures

Solution exacte l l Ombres douces Sources étendues != Sources ponctuelles

Solution exacte l l Ombres douces Sources étendues != Sources ponctuelles

Plus d’échantillons? l l Approximer la source par plusieurs points Aliasing sur les ombres

Plus d’échantillons? l l Approximer la source par plusieurs points Aliasing sur les ombres (Effet marche d’escalier)

Equation V(x, y)=? qx x rxy y l qy l Intégration analytique très difficile

Equation V(x, y)=? qx x rxy y l qy l Intégration analytique très difficile Utilisation de techniques numériques : Monte Carlo

Intégration numérique l Intégration numérique d'intégrale simple a b

Intégration numérique l Intégration numérique d'intégrale simple a b

Intégration déterministe l Intégration déterministe par quadrature : a Ne marche que sous certains

Intégration déterministe l Intégration déterministe par quadrature : a Ne marche que sous certains conditions : fonctions dérivables, dimensions du problème pas trop élevé b

Intégration de Monte Carlo l Estimation de la valeur d’une intégrale – – Échantillonner

Intégration de Monte Carlo l Estimation de la valeur d’une intégrale – – Échantillonner N points suivant une densité de probabilité p(x) L’estimateur est une moyenne pondérée des valeurs de la fonction à chaque échantillon

Variable aléatoire continue l Variable aléatoire X l Fonctions de répartition : probabilité que

Variable aléatoire continue l Variable aléatoire X l Fonctions de répartition : probabilité que la variable aléatoire soit inférieure ou égal à x l Densité de probabilité

Exemple : taille d’un individu l Densité de probabilité 120 160 190 230

Exemple : taille d’un individu l Densité de probabilité 120 160 190 230

Densité de probabilité uniforme l Densité uniforme a a’ b’ b P(x) : probabilité

Densité de probabilité uniforme l Densité uniforme a a’ b’ b P(x) : probabilité que x appartienne à [a’, b’]

Échantillonnage selon une densité l Choisir une densité de probabilité p(x) 1 0 0

Échantillonnage selon une densité l Choisir une densité de probabilité p(x) 1 0 0 1

Échantillonnage selon une densité l Choisir une densité de probabilité p(x). 1 l Intégrer

Échantillonnage selon une densité l Choisir une densité de probabilité p(x). 1 l Intégrer pour obtenir une fonction de répartition P(x): 0 0 1

Échantillonnage selon une densité l Choisir une densité de probabilité normalisée p(x). l Intégrer

Échantillonnage selon une densité l Choisir une densité de probabilité normalisée p(x). l Intégrer pour obtenir une fonction de répartition P(x): l Inverser P(x) : x = P-1( ) échantillonné avec une densité uniforme entre 0 et 1 1 0 0 1

Échantillonnage selon une densité l Choisir une densité de probabilité normalisée p(x). 1 l

Échantillonnage selon une densité l Choisir une densité de probabilité normalisée p(x). 1 l Intégrer pour obtenir une distribution de probabilité P(x): 0 Inverser P(x) : x = P-1( ) 0 1 Transforme un échantillonnage uniforme vers échantillonnage non uniforme l

Illumination directe ’ V(x, y)=? qx x y l Génération de points aléatoires sur

Illumination directe ’ V(x, y)=? qx x y l Génération de points aléatoires sur la source l Évaluation de l'intégrale avec ces points qy rxy

Illumination directe 1 rayon d'ombre 9 rayons d'ombre

Illumination directe 1 rayon d'ombre 9 rayons d'ombre

Illumination directe 36 rayons d'ombre 100 rayons d'ombre

Illumination directe 36 rayons d'ombre 100 rayons d'ombre

Échantillonnage stratifié l Objectif – l Réduction de la variance. Principe – Découpage du

Échantillonnage stratifié l Objectif – l Réduction de la variance. Principe – Découpage du domaine d'intégration 0 1

Échantillonnage stratifié l Objectif – l Réduction de la variance. Principe – – Découpage

Échantillonnage stratifié l Objectif – l Réduction de la variance. Principe – – Découpage du domaine d'intégration Estimateur 0 1

Échantillonnage stratifié l Application à 2 dimensions N 2 échantillons Échantillons arbitrairement proches Problème

Échantillonnage stratifié l Application à 2 dimensions N 2 échantillons Échantillons arbitrairement proches Problème pour les dimensions supérieures

Échantillonnage stratifié 9 rayons d'ombre uniformes 9 rayons d'ombre stratifiés

Échantillonnage stratifié 9 rayons d'ombre uniformes 9 rayons d'ombre stratifiés

Échantillonnage stratifié 36 rayons d'ombre uniformes 36 rayons d'ombre stratifiés

Échantillonnage stratifié 36 rayons d'ombre uniformes 36 rayons d'ombre stratifiés

Échantillonnage stratifié 100 rayons d'ombre uniformes 100 rayons d'ombre stratifiés

Échantillonnage stratifié 100 rayons d'ombre uniformes 100 rayons d'ombre stratifiés

Echantillonnage stratifié l Application aux dimensions supérieures Échantillonnage stratifié en en grille Nd Echantillons

Echantillonnage stratifié l Application aux dimensions supérieures Échantillonnage stratifié en en grille Nd Echantillons Échantillonnage des N reines N Echantillons

9 échantillons Uniforme Stratifié N reines

9 échantillons Uniforme Stratifié N reines

36 échantillons Uniforme Stratifié N reines

36 échantillons Uniforme Stratifié N reines

Plusieurs sources lumineuses l L’intégrale ne change pas : au lieu d’intégrer sur la

Plusieurs sources lumineuses l L’intégrale ne change pas : au lieu d’intégrer sur la surface de la source, on intègre sur les surfaces des sources lumineuses. l La densité pour sélectionner les points est modifié : d’abord on sélectionne une source S avec la densité p(S) puis un point sur S avec p(y|S)

Plusieurs sources lumineuses 36 rayons d’ombres par pixels dans les deux images mais densité

Plusieurs sources lumineuses 36 rayons d’ombres par pixels dans les deux images mais densité de probabilité différentes

Application aux pixels l Calcul de la luminance au centre du pixel : aliassage

Application aux pixels l Calcul de la luminance au centre du pixel : aliassage l Utilisation d'un filtre … … évalué par intégration de Monte Carlo.

Application aux pixels l Tout type d'échantillonnage envisageable

Application aux pixels l Tout type d'échantillonnage envisageable

Implantation 1 rayon / pixel 10 rayons / pixel 100 rayons / pixel

Implantation 1 rayon / pixel 10 rayons / pixel 100 rayons / pixel

Implantation l Comparaison : 1 rayon centré par pixel 100 rayons d'ombre aléatoires par

Implantation l Comparaison : 1 rayon centré par pixel 100 rayons d'ombre aléatoires par intersection 100 rayons aléatoires par pixel 1 rayons d'ombre aléatoire par intersection

Équation du rendu l Évaluation de l'équation du rendu – Comment écrire l'équation du

Équation du rendu l Évaluation de l'équation du rendu – Comment écrire l'équation du rendu et l'évaluer par intégration de Monte Carlo? – Quelle densité de probabilité utiliser pour l'équation du rendu? – Algorithmes et résultats

Équation du rendu

Équation du rendu

Équation du rendu

Équation du rendu

Calcul de la luminance l Comment évaluer L ? – Trouver Le(x ) –

Calcul de la luminance l Comment évaluer L ? – Trouver Le(x ) – Ajouter L=?

Calcul de la luminance l Comment évaluer Li ? – Intégration de Monte Carlo

Calcul de la luminance l Comment évaluer Li ? – Intégration de Monte Carlo – Générer des directions aléatoires sur Wx, en utilisant la densité de probabilité p( )

Calcul de la luminance l Échantillonnage de l'hémisphère

Calcul de la luminance l Échantillonnage de l'hémisphère

Calcul de la luminance l Générer une direction aléatoire i Evaluer la brdf Evaluer

Calcul de la luminance l Générer une direction aléatoire i Evaluer la brdf Evaluer le cos(…) Evaluer L(x¬ i)

Calcul de la luminance l l Evaluation de L(x¬ i) ? La radiance est

Calcul de la luminance l l Evaluation de L(x¬ i) ? La radiance est constante sur la direction de propagation. rc(x, i) = premier point visible. L(x¬ i) = L(rc(x, i)

Calcul de la luminance l Évaluation récursive l Chaque rebond ajoute un niveau d'éclairage

Calcul de la luminance l Évaluation récursive l Chaque rebond ajoute un niveau d'éclairage indirect.

Arrêt de la récursivité l Quand arrêter la récursivité ? Les contributions des ordres

Arrêt de la récursivité l Quand arrêter la récursivité ? Les contributions des ordres de réflexions élevés sont négligeables. Si on les ignore, les estimateurs sont biaisés !

Roulette russe l Roulette russe – En pratique, définition d'un coefficient d'absorption a l

Roulette russe l Roulette russe – En pratique, définition d'un coefficient d'absorption a l l – Probabilité a que le rayon soit absorbé. La luminance deviens L/(1 -a). Exemple : a=0. 9 (1. 0 - moyenne de la réflectance) l l Un rayon sur 10 est réfléchit. La luminance estimée sur un rayon réfléchi est multipliée par 10.

Roulette russe l Estimateur non biaisé l Espérance de l’estimateur est toujours correcte l

Roulette russe l Estimateur non biaisé l Espérance de l’estimateur est toujours correcte l Plus grande variance l Mais plus efficace

Tracé de chemins l Algorithme – – – Lancer N rayons par pixels A

Tracé de chemins l Algorithme – – – Lancer N rayons par pixels A chaque intersection avec une surface, lancer 1 rayon distribués sur l'hémisphère pour évaluer l’équation de la luminance Terminer la récursivité par roulette russe

Tracé de chemins 1 rayon/pixel 16 rayons/pixel 256 rayons/pixel Très bruité : contribution nulle

Tracé de chemins 1 rayon/pixel 16 rayons/pixel 256 rayons/pixel Très bruité : contribution nulle tant que le chemin n’a pas atteint une source lumineuse!!

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins

Tracé de chemins • Améliorer l’algorithme en séparant l’intégrale en deux parties

Tracé de chemins • Améliorer l’algorithme en séparant l’intégrale en deux parties

Tracé de chemins

Tracé de chemins

Tracé de chemins l Conclusion – Évaluer différemment l'éclairage direct et indirect

Tracé de chemins l Conclusion – Évaluer différemment l'éclairage direct et indirect

Algorithme

Algorithme

Algorithme

Algorithme

Algorithme

Algorithme

Algorithme

Algorithme

Algorithme

Algorithme

Algorithme

Algorithme

Comparaison Sans calcul d'éclairage direct Avec calcul d'éclairage direct 16 rayons/pixel

Comparaison Sans calcul d'éclairage direct Avec calcul d'éclairage direct 16 rayons/pixel

Comparaison 1 rayon/ pixel 4 rayons/ pixel 16 rayons/ pixel 256 rayons/ pixel

Comparaison 1 rayon/ pixel 4 rayons/ pixel 16 rayons/ pixel 256 rayons/ pixel

Limitations l Chemins tracés en sens inverse de la lumière l Ne prends pas

Limitations l Chemins tracés en sens inverse de la lumière l Ne prends pas bien en compte tous les effets l Bruit sur les caustiques

Limitations Tracé de chemins : 1000 chemins par pixel

Limitations Tracé de chemins : 1000 chemins par pixel

Tracé de chemins lumineux l Tracer des chemins des sources lumineuse plutôt que de

Tracé de chemins lumineux l Tracer des chemins des sources lumineuse plutôt que de l’œil l Permet de bien prendre en compte les caustiques et l’éclairage indirect l Mais pas les réflexions!!!

Tracé de chemins lumineux

Tracé de chemins lumineux

Tracé de chemins bidirectionnels l Trace un chemin des sources lumineuses et un chemin

Tracé de chemins bidirectionnels l Trace un chemin des sources lumineuses et un chemin de l’œil l Connecte les chemins à chaque sommets l Très coûteux mais prend en compte quasiment tous les effets

Tracé de chemins bidirectionnels

Tracé de chemins bidirectionnels

Tracé de chemins bidirectionnels Tracé de chemins classique

Tracé de chemins bidirectionnels Tracé de chemins classique

1 L, 2 E 1 L, 3 E 1 L, 4 E 2 L,

1 L, 2 E 1 L, 3 E 1 L, 4 E 2 L, 1 E 3 L, 1 E 4 L, 1 E

Carte de photons l Algorithme fondé sur l’estimation de densité l Approche similaire au

Carte de photons l Algorithme fondé sur l’estimation de densité l Approche similaire au tracé de chemins bidirectionnel – « cache » des chemins lumineux

Estimation de densité par noyau l Méthode statistique l Ensemble de données issues d’un

Estimation de densité par noyau l Méthode statistique l Ensemble de données issues d’un processus aléatoire l Estimer la densité de probabilité de ce processus

Estimation de densité par noyau l Relation entre densité de probabilité et éclairement –

Estimation de densité par noyau l Relation entre densité de probabilité et éclairement – par définition : – Exprimé par rapport au flux :

Estimation de densité par noyau l l l N photons d’énergie lancé dans la

Estimation de densité par noyau l l l N photons d’énergie lancé dans la scène Le flux s incident sur une surface s’exprime Probabilité qu’un photon Pi heurte une surface A

Estimation de densité par noyau l La densité de probabilité des photons est proportionnelle

Estimation de densité par noyau l La densité de probabilité des photons est proportionnelle à l’éclairement

Estimation de densité par noyau Ensemble de n données observées

Estimation de densité par noyau Ensemble de n données observées

Estimation de densité par noyau La densité estimée par la moyenne de n fonctions

Estimation de densité par noyau La densité estimée par la moyenne de n fonctions noyaux centrées sur chaque donnée observée Fonction noyau K unitaire, symétrique et à support compact

Estimation de densité par noyau La densité estimée par la moyenne de n fonctions

Estimation de densité par noyau La densité estimée par la moyenne de n fonctions noyaux centrées sur chaque donnée observée Fonction noyau K unitaire, symétrique et à support compact

Estimation de densité par noyau Le paramètre de lissage h contrôle le compromis biais/variance

Estimation de densité par noyau Le paramètre de lissage h contrôle le compromis biais/variance

Estimation de densité par noyau Le paramètre de lissage h contrôle le compromis biais/variance

Estimation de densité par noyau Le paramètre de lissage h contrôle le compromis biais/variance Biais Variance

Application à l’éclairage global l l Lancer de photons Photons – – l l

Application à l’éclairage global l l Lancer de photons Photons – – l l Position Énergie Processus aléatoire = lancer de photons Données observées = photons

Estimation de l’éclairement l Densité des photons proportionnelle à l’éclairement incident l Éclairement estimé

Estimation de l’éclairement l Densité des photons proportionnelle à l’éclairement incident l Éclairement estimé en un point – – Approche scène : estimé par sommet ou par texel Approche image : estimé par pixel

Mise en oeuvre Jensen (96) Visualisation directe de la carte de photons (6 min)

Mise en oeuvre Jensen (96) Visualisation directe de la carte de photons (6 min)

Mise en oeuvre Walter (98) Éclairage global par estimation de densité linéaire: 8 h

Mise en oeuvre Walter (98) Éclairage global par estimation de densité linéaire: 8 h

Approche classique • La fonction noyau est à support local et symétrique : disque

Approche classique • La fonction noyau est à support local et symétrique : disque en 2 D • Localiser les k photons qui sont à une distance h du point d’estimation

Approche duale • L’éclairement estimé en un grand nombre de points • Pour chaque

Approche duale • L’éclairement estimé en un grand nombre de points • Pour chaque photon, localiser les points d’estimation à la distance h, et leur ajouter la contribution du photon

Approche duale en pratique l Par texture – – l Estimation réalisée dans l’espace

Approche duale en pratique l Par texture – – l Estimation réalisée dans l’espace texture très efficace Peu évident à généraliser Par maillage triangulaire connecté – – Plus général Plus coûteux

Performance l Résultats équivalents entre approche duale et classique l Photons accédés linéairement –

Performance l Résultats équivalents entre approche duale et classique l Photons accédés linéairement – Permet de gérer plus facilement ce grand volume de donnés

Biais sur les bords l Fuite d’énergie sur les bords des surfaces

Biais sur les bords l Fuite d’énergie sur les bords des surfaces

Biais sur les bords l l Estimation de densité évalue la fonction à zéro

Biais sur les bords l l Estimation de densité évalue la fonction à zéro en dehors de la surface Biais vers zéro sur les bords

Corriger le biais sur les bords l Méthode de réflexion – l Réfléchir les

Corriger le biais sur les bords l Méthode de réflexion – l Réfléchir les données sur les bords Utilisation de noyaux frontières – – Noyaux qui s’adaptent au bord (ne sont plus symétriques) Calculs complexes

Triangles fantômes l Étendre la surface pour rajouter de l’information

Triangles fantômes l Étendre la surface pour rajouter de l’information

Triangles fantômes l Surfaces étendues sur leurs bords – – – l Trouver le

Triangles fantômes l Surfaces étendues sur leurs bords – – – l Trouver le contour Déplacer le contour Trianguler la bande formée par les deux contours Déplacement proportionnel au paramètre de lissage

Triangles fantômes l l Lancer de photons modifié pour prendre en compte les triangles

Triangles fantômes l l Lancer de photons modifié pour prendre en compte les triangles fantômes Un photon n’est pas arrêté par un triangle fantôme mais un photon est ajouté

Triangles fantômes l Réduit le biais sur les bords – l Nécessite des calculs

Triangles fantômes l Réduit le biais sur les bords – l Nécessite des calculs géométriques Augmente la complexité géométrique – Dépend du paramètre de lissage => Dépend du nombre de photons

Carte de Photons 100000 photons, 50 photons pour l’estimateur

Carte de Photons 100000 photons, 50 photons pour l’estimateur

Carte de Photons 500000 photons, 500 photons pour l’estimateur

Carte de Photons 500000 photons, 500 photons pour l’estimateur

Carte de Photons l Photons stockés dans un Kd-Tree balancé pour accélérer le calcul

Carte de Photons l Photons stockés dans un Kd-Tree balancé pour accélérer le calcul des N plus proches voisins l Photons séparés en deux groupes : caustiques et globales l Limité par la mémoire