La dispersión subsuperficial ( SSS ), también conocida como transporte de luz subsuperficial ( SLST ), [1] es un mecanismo de transporte de luz en el que la luz que penetra la superficie de un objeto translúcido se dispersa al interactuar con el material y sale de la superficie potencialmente en un punto diferente. La luz generalmente penetra la superficie y se dispersa varias veces en ángulos irregulares dentro del material antes de volver a salir del material en un ángulo diferente del que habría tenido si se hubiera reflejado directamente desde la superficie.
La dispersión subsuperficial es importante para los gráficos de computadora 3D realistas , ya que es necesaria para la reproducción de materiales como mármol , piel , hojas , cera y leche . Si no se implementa la dispersión subsuperficial, el material puede parecer poco natural, como plástico o metal.
Para mejorar la eficiencia de la representación, muchos algoritmos de gráficos por computadora en tiempo real solo calculan la reflectancia en la *superficie* de un objeto. En realidad, muchos materiales son ligeramente translúcidos: la luz ingresa a la superficie, se absorbe, se dispersa y se reemite, potencialmente en un punto diferente. La piel es un buen ejemplo de ello; solo alrededor del 6% de la reflectancia es directa, el 94% proviene de la dispersión subsuperficial. [2] Una propiedad inherente de los materiales semitransparentes es la absorción. Cuanto más viaja la luz a través del material, mayor es la proporción absorbida. Para simular este efecto, se debe obtener una medida de la distancia que la luz ha viajado a través del material.
Publicada por Pixar, esta técnica se considera la más avanzada. Generalmente se integra en un trazador de trayectorias. Básicamente, simula lo que les sucede a los fotones reales al trazar una trayectoria de luz en el material, generando nuevas trayectorias utilizando una distribución lambertiana alrededor de la normal invertida y luego eligiendo nuevas direcciones en múltiples pasos para dispersar aún más la trayectoria de la luz, de ahí el nombre de "caminata aleatoria". La dispersión isotrópica se simula eligiendo direcciones aleatorias de manera uniforme a lo largo de una esfera. La dispersión anisotrópica se simula generalmente utilizando la función de fase de Henyey-Greenstein. Por ejemplo, la piel humana tiene dispersión anisotrópica. La profundidad/absorción óptica se aplica en función de la longitud de las trayectorias, utilizando la ley de Beer-Lambert. Las trayectorias pueden terminar dentro del material cuando alcanzan un umbral mínimo de contribución o un recuento máximo de iteraciones. Cuando una trayectoria (rayo) golpea la superficie nuevamente, se utiliza para recolectar la radiancia de la escena, ponderada por una distribución lambertiana, como en un trazador de trayectorias tradicional. Esta técnica es intuitiva y robusta frente a geometrías delgadas, etc.
Un método para estimar esta distancia es utilizar mapas de profundidad, [3] de una manera similar al mapeo de sombras . La escena se renderiza desde el punto de vista de la luz en un mapa de profundidad, de modo que se almacena la distancia a la superficie más cercana. Luego, el mapa de profundidad se proyecta sobre él utilizando el mapeo de textura proyectivo estándar y la escena se vuelve a renderizar. En este paso, al sombrear un punto dado, la distancia desde la luz en el punto en el que el rayo entró en la superficie se puede obtener mediante una simple búsqueda de textura. Al restar este valor del punto en el que el rayo salió del objeto, podemos obtener una estimación de la distancia que la luz ha recorrido a través del objeto. [ cita requerida ]
La medida de distancia obtenida con este método se puede utilizar de varias maneras. Una de ellas es utilizarla para indexar directamente una textura 1D creada por un artista que disminuye exponencialmente con la distancia. Este enfoque, combinado con otros modelos de iluminación más tradicionales, permite la creación de diferentes materiales como mármol , jade y cera . [ cita requerida ]
Potencialmente, pueden surgir problemas si los modelos no son convexos, pero se puede utilizar el peeling de profundidad [4] para evitar el problema. De manera similar, se puede utilizar el peeling de profundidad para tener en cuenta las densidades variables debajo de la superficie, como los huesos o los músculos, para brindar un modelo de dispersión más preciso.
Como se puede ver en la imagen de la cabeza de cera a la derecha, la luz no se difunde al atravesar el objeto utilizando esta técnica; las características de la parte posterior se muestran claramente. Una solución para esto es tomar múltiples muestras en diferentes puntos de la superficie del mapa de profundidad. Alternativamente, se puede utilizar un enfoque diferente para la aproximación, conocido como difusión en el espacio de textura . [ cita requerida ]
Como se señaló al comienzo de la sección, uno de los efectos más obvios de la dispersión subsuperficial es un desenfoque general de la iluminación difusa. En lugar de modificar arbitrariamente la función difusa, la difusión se puede modelar con mayor precisión simulándola en el espacio de textura . Esta técnica fue pionera en la representación de rostros en The Matrix Reloaded [5] , pero también se utiliza en el ámbito de las técnicas de representación en tiempo real.
El método desenrolla la malla de un objeto utilizando un sombreador de vértices, calculando primero la iluminación en función de las coordenadas originales del vértice. Luego, los vértices se reasignan utilizando las coordenadas de textura UV como la posición de pantalla del vértice, transformadas adecuadamente del rango [0, 1] de coordenadas de textura al rango [-1, 1] de coordenadas de dispositivo normalizadas. Al iluminar la malla desenrollada de esta manera, obtenemos una imagen 2D que representa la iluminación en el objeto, que luego se puede procesar y volver a aplicar al modelo como un mapa de luz . Para simular la difusión, la textura del mapa de luz simplemente se puede desenfocar. La representación de la iluminación en una textura de menor resolución en sí misma proporciona una cierta cantidad de desenfoque. La cantidad de desenfoque necesaria para modelar con precisión la dispersión del subsuelo en la piel aún se encuentra bajo investigación activa, pero realizar solo un desenfoque único modela mal los efectos reales. [6] Para emular la naturaleza dependiente de la longitud de onda de la difusión, las muestras utilizadas durante el desenfoque (gaussiano) se pueden ponderar por canal. Se trata de un proceso un tanto artístico. En la piel humana, la dispersión más amplia se da en el rojo, luego en el verde y, finalmente, en el azul, que tiene muy poca dispersión. [ cita requerida ]
Una de las principales ventajas de este método es su independencia de la resolución de la pantalla; el sombreado se realiza solo una vez por texel en el mapa de textura, en lugar de por cada píxel del objeto. Por lo tanto, un requisito obvio es que el objeto tenga un buen mapeo UV, de modo que cada punto de la textura debe mapearse solo en un punto del objeto. Además, el uso de la difusión del espacio de textura proporciona uno de los varios factores que contribuyen a las sombras suaves, aliviando una de las causas de la deficiencia de realismo del mapeo de sombras . [ cita requerida ]