El supuesto subyacente a dicho modelo es el mismo que muchos otros modelos para el renderizado de máscaras; La dispersión subsuperficial puede ser aproximada como un fenómeno de difusión. Esto es bueno porque en medios altamente dispersos, la distribución de la luz pierde dependencia del ángulo y tiende a la isotropía.
La aproximación dipolo es una formulación para la resolución de dicho problema de difusión de manera analítica.
Básicamente comienzan aproximando el BSSRDF como un componente de dispersión múltiple y dispersión única. La dispersión múltiple se define entonces como:
Donde Ft son términos de Fresnel y R es el perfil de difusión expresado en función de la distancia entre el punto de entrada y el de salida.
Este R se conoce como perfil de difusión y formulan este perfil a través de una aproximación dipolo. Se considera que la contribución del rayo de luz entrante es una de dos fuentes virtuales: una negativa debajo de la superficie y otra positiva encima (por eso dipolo)
∥ xyo- xo∥
Este modelo solo tiene en cuenta múltiples eventos de dispersión, pero eso es lo suficientemente bueno para la máscara. Sin embargo, debe tenerse en cuenta que para algunos materiales translúcidos (por ejemplo, humo y mármol) la dispersión única es fundamental. Ese documento propone una formulación de dispersión única, pero es costosa.
El perfil de difusión generalmente se aproxima para la aplicación en tiempo real como una serie de desenfoques gaussianos (como en los trabajos seminales de D'Eon et al. En GPU Gems 3 luego utilizados para el SSSSS de Jiménez) para que sea práctico para escenarios en tiempo real . En este maravilloso artículo hay detalles sobre tal aproximación. Una imagen de ese artículo muestra en realidad cuán buena es esta formulación:
Como nota al margen, la aproximación de dipolo supone que el material es semi-infinito, sin embargo, esta suposición no se cumple con losas delgadas y material de varias capas como la piel. Sobre la base del trabajo dipolo, Donner y Jensen [2005] propusieron la aproximación multipolar que explica los problemas dipolo. Con este modelo en lugar de un solo dipolo, los autores usan un conjunto de ellos para describir el fenómeno de dispersión. En dicha formulación, los perfiles de reflectancia y transmitancia se pueden obtener resumiendo la contribución de los diferentes dipolos involucrados
EDITAR: Estoy poniendo aquí las respuestas a un par de preguntas de @NathanReed en la sección de comentarios:
Incluso con la aproximación del perfil de difusión, el modelo BSSRDF aún requiere la integración en un radio de puntos cercanos en la superficie para recoger la luz entrante, ¿correcto? ¿Cómo se logra eso en, por ejemplo, un trazado de ruta? ¿Tiene que construir una estructura de datos para poder muestrear puntos en la superficie cerca de un punto dado?
La aproximación BSSRDF todavía necesita integrarse en un área determinada, sí.
En el documento vinculado, utilizaron un trazador de rayos Montecarlo que toma muestras aleatoriamente alrededor de un punto con una densidad definida como:
σt rmi- σt rre
Donde ese valor sigma es el coeficiente de extinción efectivo definido a continuación (depende del coeficiente de dispersión y absorción, que son propiedades del material) yd es la distancia al punto que estamos evaluando. Esta densidad se define de esta manera porque el término de difusión tiene una caída exponencial.
En [Jensen y Buhler 2002] propusieron una técnica de aceleración. Uno de los conceptos principales era desacoplar el muestreo de la evaluación del término de difusión. De esta forma, realizan una evaluación jerárquica de la información calculada durante la fase de muestreo para agrupar muestras distantes a la hora de evaluar la difusión. La implementación descrita en el documento utiliza un octree como estructura. Esta técnica, según el artículo, es un orden de magnitud más rápido que la integración completa de Monte Carlo.
Desafortunadamente, nunca me metí en una implementación fuera de línea, por lo que no puedo ayudar más que esto.
En las aproximaciones de suma de gaussianos en tiempo real, el radio correcto se establece implícitamente al definir la varianza de los desenfoques gaussianos que deben aplicarse.
¿Por qué una luz positiva y una negativa? ¿El objetivo es que se cancelen entre sí de alguna manera?
2 A D
Frer
EDIT2: He expandido (un poquito) algunos de los conceptos en esta respuesta en una publicación de blog: http://bit.ly/1Q82rqT
Para aquellos que no están asustados por muchas letras griegas en una fórmula, aquí hay un extracto de mi tesis donde el perfil de reflectancia se describe brevemente en cada término: