Qu'est-ce que l '«approximation dipolaire» pour la diffusion souterraine?

18

Si vous lisez des articles sur la diffusion souterraine, vous rencontrerez fréquemment des références à quelque chose appelé "approximation dipolaire". Ce terme semble revenir à l'article Un modèle pratique pour le transport de lumière souterraine par Henrik Wann Jensen et al, mais cet article est assez difficile à comprendre.

Quelqu'un peut-il expliquer en termes relativement simples ce qu'est l'approximation dipolaire et comment elle est utilisée dans le rendu de la diffusion souterraine?

Nathan Reed
la source
1
C'est en effet un papier compliqué (ça me fait toujours des cauchemars de temps en temps!) Mais j'ai essayé de simplifier un peu le tout. Faites-moi savoir si vous pensez que la réponse ci-dessous devrait être ajustée d'une manière ou d'une autre :)
cifz

Réponses:

23

L'hypothèse sous-jacente à ce modèle est la même que celle de nombreux autres modèles de rendu de peau; la diffusion souterraine peut être approchée comme un phénomène de diffusion. C'est bien car dans les milieux très diffusants, la distribution de la lumière perd sa dépendance de l'angle et tend à l'isotropie.

L'approximation dipolaire est une formulation pour la résolution d'un tel problème de diffusion d'une manière analytique.

Fondamentalement, ils commencent par approximer le BSSRDF en tant que composant de diffusion multiple et de diffusion unique. La diffusion multiple est alors définie comme:

entrez la description de l'image ici

Où sont des termes de Fresnel et est le profil de diffusion exprimé en fonction de la distance entre le point d'entrée et le point de sortie. FtR

Ce est appelé profil de diffusion et ils formulent ce profil via une approximation dipolaire. La contribution du rayon lumineux entrant est considérée comme l'une des deux sources virtuelles: une négative sous la surface et une positive au-dessus (c'est pourquoi le dipôle)R

entrez la description de l'image ici

Ici dans l'image r est leau dessus. La contribution de ces sources de lumière dépend de divers facteurs tels que la distance de la lumière à la surface, le coefficient de diffusion, etc. (voir ci-dessous pour une description plus détaillée de la formule elle-même).Xje-Xo

Ce modèle ne prend en compte que plusieurs événements de diffusion, mais c'est assez bien pour la peau. Il faut cependant noter que pour certains matériaux translucides (par exemple la fumée et le marbre) la diffusion unique est fondamentale. Cet article propose une formulation de diffusion unique, mais est coûteux.

Le profil de diffusion est généralement approximé pour une application en temps réel sous la forme d'une série de flous gaussiens (comme dans les travaux fondateurs de D'Eon et al. Dans GPU Gems 3 puis utilisés pour le SSSSS de Jimenez) afin de le rendre pratique pour des scénarios en temps réel . Dans ce merveilleux article, il y a des détails sur une telle approximation. Une image de cet article montre à quel point cette formulation est bonne:

entrez la description de l'image ici

Comme note latérale, l'approximation dipolaire suppose que le matériau est semi-infini, mais cette hypothèse ne tient pas avec les dalles minces et les matériaux multicouches tels que la peau. S'appuyant sur les travaux dipolaires, Donner et Jensen [2005] ont proposé l'approximation multipolaire qui tient compte des problèmes dipolaires. Avec ce modèle au lieu d'un seul dipôle, les auteurs en utilisent un ensemble pour décrire le phénomène de diffusion. Dans une telle formulation, les profils de réflectance et de transmittance peuvent être obtenus en résumant la contribution des différents dipôles impliqués


EDIT: Je mets ici les réponses à quelques questions de @NathanReed dans la section des commentaires:

Même avec l'approximation du profil de diffusion, le modèle BSSRDF nécessite toujours l'intégration sur un rayon de points proches sur la surface pour recueillir la lumière entrante, n'est-ce pas? Comment cela se fait-il, disons, dans un traceur de chemin? Devez-vous créer une structure de données pour pouvoir échantillonner des points sur la surface à proximité d'un point donné?

Oui, l'approximation BSSRDF doit encore être intégrée sur une certaine zone.

Dans l'article lié, ils ont utilisé un traceur de rayons Montecarlo échantillonnant au hasard autour d'un point avec une densité définie comme:

σtre-σtr

Lorsque cette valeur sigma est le coefficient d'extinction effectif défini ci-dessous (il dépend du coefficient de diffusion et d'absorption, qui sont les propriétés du matériau) et d est la distance jusqu'au point que nous évaluons. Cette densité est ainsi définie car le terme de diffusion a une chute exponentielle.

Dans [Jensen et Buhler 2002], ils ont proposé une technique d'accélération. L'un des principaux concepts était de dissocier l'échantillonnage de l'évaluation du terme de diffusion. De cette façon, ils effectuent une évaluation hiérarchique des informations calculées pendant la phase d'échantillonnage pour regrouper des échantillons distants lorsqu'il s'agit d'évaluer la diffusion. L'implémentation décrite dans l'article utilise un octree comme structure. Cette technique, selon l'article, est d'un ordre de grandeur plus rapide que l'intégration complète de Monte Carlo.
Malheureusement, je ne me suis jamais lancé dans une implémentation hors ligne, donc je ne peux pas aider plus que cela.

Dans les approximations de la somme des Gaussiennes en temps réel, le rayon correct est implicitement défini lors de la définition de la variance des flous gaussiens qui doivent être appliqués.

Pourquoi une lumière positive et une négative? Leur objectif est-il de s'annuler d'une manière ou d'une autre?

Oui, la méthode de la source dipolaire (qui date bien avant l'article de Jensen) est définie de manière à satisfaire une condition aux limites. Plus précisément, la fluence doit être nulle à une certaine limite extrapolée qui a une distance de la surface de où2UNE

entrez la description de l'image ici

Étant la réflectivité de Fresnel de la dalle considérée et cette valeur sigma est le coefficient d'extinction réduit décrit ci-dessous.Fr


EDIT2: J'ai développé (un tout petit peu) certains des concepts de cette réponse dans un article de blog: http://bit.ly/1Q82rqT


Pour ceux qui ne sont pas effrayés par beaucoup de lettres grecques dans une formule, voici un extrait de ma thèse où le profil de réflectance est brièvement décrit dans chaque terme:

entrez la description de l'image ici

cifz
la source
Merci! Je me demande encore deux ou trois choses. (1) Même avec l'approximation du profil de diffusion, le modèle BSSRDF nécessite toujours l'intégration sur un rayon de points proches sur la surface pour recueillir la lumière entrante, n'est-ce pas? Comment cela se fait-il, disons, dans un traceur de chemin? Devez-vous créer une structure de données pour pouvoir échantillonner des points sur la surface à proximité d'un point donné? Et (2) Pourquoi une lumière positive et une négative? Leur objectif est-il de s'annuler d'une manière ou d'une autre?
Nathan Reed
1) En effet, ce qu'ils proposent dans l'article avec leur traceur de rayons de Monte Carlo est un échantillonnage stochastique avec une densité spécifique basée sur la distance et le coefficient d'extinction. Je suppose que vous pouvez lancer des fléchettes pour trouver des échantillons et utiliser une probabilité d'acceptation appropriée basée sur le coefficient d'extinction. et la distance. (1/2)
cifz
Je sais que Jensen a publié une approche d'intégration hiérarchique en 2002 que malheureusement je viens de lire de temps en temps, donc je me souviens juste de quelques bits. Le concept de base était de découpler l'échantillonnage de l'approximation de diffusion et des échantillons distants en grappes. IIRC ils ont utilisé un octree comme structure hiérarchique. Je ne me suis jamais embarqué dans une implémentation hors ligne, je ne suis donc pas très utile sur d'autres détails à ce sujet, je le crains. (2/2)
cifz
2) C'est de cette façon pour satisfaire certaines conditions aux limites, que vous voulez laisser la fluence devenir nulle à une certaine limite extrapolée qui a une distance spécifique du milieu. Cette distance est calculée sur la base du coefficient de diffusion et de l'albédo de diffusion.
cifz
@NathanReed Faites-moi savoir si cela a clarifié quelque chose, sinon je peux essayer d'élargir les pensées de ce commentaire dans la réponse elle
cifz
3

Pour comprendre facilement la «théorie dipôle», nous devons d'abord comprendre d'où elle vient de la «théorie de la diffusion».

Et cela vient de la simulation du transport de la lumière dans les médias participants en résolvant l'équation de transport de radiance (RTE).

L'approximation de diffusion classique résout le RTE en considérant uniquement une expansion harmonique sphérique de premier ordre du rayonnement. Si nous supposons en outre que la fonction source est une source ponctuelle isotrope de puissance unitaire dans un milieu homogène infini, nous arrivons à la fonction classique de Green de diffusion (monopôle).

Lors du rendu de matériaux translucides, il est commode de reformuler ce problème par analogie avec l'intégrale de réflexion de surface locale. Il en résulte une équation intégrale qui calcule le rayonnement sortant, Lo, à la position et la direction comme une convolution de l'illumination incidente, Li, et le BSSRDF, S, sur toutes les positions et directions incidentes.

Maintenant, avec la fonction de diffusion de Green, nous ne tenons pas compte des conditions aux limites imposées par les surfaces des matériaux. Ces conditions peuvent être simplement gérées en plaçant une source négative en miroir à l'extérieur du milieu pour chaque source positive à l'intérieur du milieu de telle sorte que la fluence soit mise à zéro à une distance extrapolée au-dessus de la surface. Il s'agit de l'approximation dipolaire.

Donc, sans conditions aux limites, notre fluence est exprimée volumétriquement dans le milieu. Pour rendre la diffusion souterraine, nous devons calculer la lumière en laissant divers points sur la surface. Pour cela, nous devons calculer les profils de diffusion dus à un dipôle afin d'évaluer la dérivée directionnelle de la fluence dans la direction de la normale de surface.

Les dernières avancées sur BSSRDF proviennent du changement de l'approche volumétrique initiale et des médias participants avec des éléments ad hoc qui prennent mieux en compte les conditions aux limites de la surface.

En ce qui concerne la ..

Le modèle BSSRDF nécessite toujours l'intégration sur un rayon de points proches sur la surface pour recueillir la lumière entrante ..?

Oui, nous intégrons la lumière incidente au BSSRDF sur toutes les positions et directions d'incident.

Nous pouvons maintenant adopter ici une méthode de force brute ou une approche de lancer de fléchettes avec le roulet russe. Mais ce sont deux approches naïves.

SSS est entré en production (Pixar Renderman) lorsqu'une méthode d'approximation a été développée pour utiliser la collecte de lumière hiérarchique en utilisant une structure de données octree où cuire un éclairage diffus pour être disponible en grappes pour le calcul SSS. Avec Renderman, c'était une approche naturelle en raison de REYES, de sorte que chaque micropoligon généré à partir de REYES pouvait être facilement «éclaboussé» en un point et inséré dans un octree.

Une deuxième vague d'améliorations repose sur l'échantillonnage d'importance basé sur disque (Arnold) qui est maintenant l'approche de facto pour de nombreuses implémentations SSS dans le monde. Généralement, nous définissons un volume de recherche (sphère), distribuons des échantillons sur le disque au-dessus de la surface et sondons le long des directions normales et des directions orthogonales pour trouver tous les hits à l'intérieur du volume.

Max Tarpini
la source