En gráficos por computadora , el mapeo de fotones es un algoritmo de renderizado de iluminación global de dos pasos desarrollado por Henrik Wann Jensen entre 1995 y 2001 [1] que resuelve aproximadamente la ecuación de renderizado para integrar el resplandor de la luz en un punto dado del espacio. Los rayos de la fuente de luz (como los fotones ) y los rayos de la cámara se trazan de forma independiente hasta que se cumple algún criterio de terminación, luego se conectan en un segundo paso para producir un valor de radiancia. El algoritmo se utiliza para simular de manera realista la interacción de la luz con diferentes tipos de objetos (similar a otros técnicas de renderizado fotorrealista ). Específicamente, es capaz de simular la refracción de la luz a través de una sustancia transparente como el vidrio o el agua (incluidas las cáusticas ), la interreflexión difusa entre objetos iluminados, la dispersión de la luz bajo la superficie en materiales translúcidos y algunos de los efectos causados por partículas tales como como humo o vapor de agua . El mapeo de fotones también se puede extender a simulaciones de luz más precisas, como la representación espectral . El mapeo de fotones progresivo (PPM) comienza con el trazado de rayos y luego agrega más y más pases de mapeo de fotones para proporcionar un renderizado cada vez más preciso.
A diferencia de camino trazado , bidireccional Path Tracing , path tracing volumétrico , y transporte de la luz Metropolis , mapeo de fotones es un "parcial" algoritmo de representación , lo que significa que un promedio de infinitamente muchos renders de la misma escena utilizando este método no converge a una solución correcta a la ecuación de representación . Sin embargo, es un método consistente y la precisión de un render se puede incrementar aumentando el número de fotones. A medida que el número de fotones se acerca al infinito, un render se acercará cada vez más a la solución de la ecuación de renderizado.
Efectos
Cáusticos
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/6/63/Glas-1000-enery.jpg/440px-Glas-1000-enery.jpg)
La luz refractada o reflejada causa patrones llamados cáusticos , generalmente visibles como parches concentrados de luz en superficies cercanas. Por ejemplo, cuando los rayos de luz atraviesan una copa de vino colocada sobre una mesa, se refractan y los patrones de luz son visibles en la mesa. El mapeo de fotones puede rastrear las trayectorias de fotones individuales para modelar dónde aparecerán estos parches de luz concentrados.
Interreflexión difusa
La interreflexión difusa es evidente cuando la luz de un objeto difuso se refleja en otro. El mapeo de fotones es particularmente hábil para manejar este efecto porque el algoritmo refleja fotones de una superficie a otra en función de la función de distribución de reflectancia bidireccional (BRDF) de esa superficie y, por lo tanto, la luz de un objeto que golpea a otro es un resultado natural del método. La interreflexión difusa se modeló primero utilizando soluciones de radiosidad . Sin embargo, el mapeo de fotones difiere en que separa el transporte de luz de la naturaleza de la geometría en la escena. El sangrado de color es un ejemplo de interreflexión difusa.
Dispersión del subsuelo
La dispersión subterránea es el efecto evidente cuando la luz entra en un material y se dispersa antes de ser absorbida o reflejada en una dirección diferente. La dispersión del subsuelo se puede modelar con precisión mediante el mapeo de fotones. Esta fue la forma original en que Jensen lo implementó; sin embargo, el método se vuelve lento para materiales de alta dispersión, y las funciones de distribución de reflectancia de dispersión superficial bidireccional (BSSRDF) son más eficientes en estas situaciones.
Uso
Construcción del mapa de fotones (1er paso)
Con el mapeo de fotones, los paquetes de luz llamados fotones se envían a la escena desde las fuentes de luz. Siempre que un fotón se cruza con una superficie, el punto de intersección y la dirección entrante se almacenan en un caché llamado mapa de fotones . Por lo general, se crean dos mapas de fotones para una escena: uno especialmente para cáusticos y otro global para otra luz. Después de cruzar la superficie, el material da una probabilidad de reflejar, absorber o transmitir / refractar. Se utiliza un método de Monte Carlo llamado ruleta rusa para elegir una de estas acciones. Si el fotón es absorbido, no se da una nueva dirección y termina el rastreo de ese fotón. Si el fotón se refleja, la función de distribución de reflectancia bidireccional de la superficie se utiliza para determinar la proporción de radiancia reflejada. Finalmente, si el fotón está transmitiendo, se da una función para su dirección dependiendo de la naturaleza de la transmisión.
Una vez que se construye el mapa de fotones (o durante la construcción), generalmente se organiza de una manera óptima para el algoritmo de vecino más cercano k , ya que el tiempo de búsqueda de fotones depende de la distribución espacial de los fotones. Jensen aboga por el uso de árboles kd . Luego, el mapa de fotones se almacena en el disco o en la memoria para su uso posterior.
Renderizado (segundo paso)
En este paso del algoritmo, el mapa de fotones creado en el primer paso se usa para estimar la radiación de cada píxel de la imagen de salida. Para cada píxel, se traza el rayo de la escena hasta que se encuentra la superficie de intersección más cercana.
En este punto, la ecuación de renderizado se usa para calcular la radiancia de la superficie que sale del punto de intersección en la dirección del rayo que lo golpeó. Para facilitar la eficiencia, la ecuación se descompone en cuatro factores separados: iluminación directa, reflexión especular, cáusticos e iluminación indirecta suave.
Para una estimación precisa de la iluminación directa, se traza un rayo desde el punto de intersección hasta cada fuente de luz. Siempre que un rayo no se cruce con otro objeto, la fuente de luz se utiliza para calcular la iluminación directa. Para obtener una estimación aproximada de la iluminación indirecta, se utiliza el mapa de fotones para calcular la contribución de la radiancia.
La reflexión especular se puede calcular, en la mayoría de los casos, mediante procedimientos de trazado de rayos (ya que maneja bien los reflejos).
La contribución a la radiancia de la superficie de los cáusticos se calcula utilizando el mapa de fotones cáusticos directamente. El número de fotones en este mapa debe ser lo suficientemente grande, ya que el mapa es la única fuente de información cáustica en la escena.
Para una iluminación indirecta suave, la radiancia se calcula utilizando el mapa de fotones directamente. Sin embargo, esta contribución no necesita ser tan precisa como la contribución de las cáusticas y, por lo tanto, utiliza el mapa global de fotones.
Calcular la radiancia usando el mapa de fotones
Para calcular la radiancia de la superficie en un punto de intersección, se utiliza uno de los mapas de fotones almacenados en caché. Los pasos son:
- Reúna los N fotones más cercanos utilizando la función de búsqueda de vecinos más cercanos en el mapa de fotones.
- Sea S la esfera que contiene estos N fotones.
- Para cada fotón, divida la cantidad de flujo (fotones reales) que representa el fotón por el área de S y multiplique por el BRDF aplicado a ese fotón.
- La suma de esos resultados para cada fotón representa el resplandor total de la superficie devuelto por la intersección de la superficie en la dirección del rayo que lo golpeó.
Optimizaciones
- Para evitar la emisión de fotones innecesarios, la dirección inicial de los fotones salientes a menudo está restringida. En lugar de simplemente enviar fotones en direcciones aleatorias, se envían en la dirección de un objeto conocido que es un manipulador de fotones deseado para enfocar o difundir la luz. Hay muchas otras mejoras que se pueden realizar en el algoritmo: por ejemplo, elegir la cantidad de fotones que se enviarán y dónde y en qué patrón enviarlos. Parecería que emitir más fotones en una dirección específica causaría que se almacenara una mayor densidad de fotones en el mapa de fotones alrededor de la posición donde chocan los fotones y, por lo tanto, medir esta densidad daría un valor inexacto de irradiancia . Esto es verdad; Sin embargo, el algoritmo utilizado para calcular la luminosidad no , no depende de las estimaciones de irradiancia.
- Para la iluminación indirecta suave, si la superficie es lambertiana , se puede utilizar una técnica conocida como caché de irradiancia para interpolar valores de cálculos anteriores.
- Para evitar pruebas de colisión innecesarias en iluminación directa, se pueden utilizar fotones de sombra. Durante el proceso de mapeo de fotones, cuando un fotón golpea una superficie, además de las operaciones habituales realizadas, se emite un fotón de sombra en la misma dirección de donde vino el fotón original que atraviesa todo el objeto. El siguiente objeto con el que choca provoca que se almacene un fotón de sombra en el mapa de fotones. Luego, durante el cálculo de la iluminación directa, en lugar de enviar un rayo desde la superficie a la luz que prueba las colisiones con los objetos, se consulta el mapa de fotones en busca de fotones de sombra. Si no hay ninguno, entonces el objeto tiene una línea de visión clara hacia la fuente de luz y se pueden evitar cálculos adicionales.
- Para optimizar la calidad de la imagen, particularmente de las cáusticas, Jensen recomienda el uso de un filtro de cono. Esencialmente, el filtro da peso a las contribuciones de los fotones a la radiancia dependiendo de qué tan lejos estén de las intersecciones de la superficie del rayo. Esto puede producir imágenes más nítidas.
- El mapeo de fotones del espacio de la imagen logra un rendimiento en tiempo real al calcular la primera y la última dispersión utilizando un rasterizador de GPU.
Variaciones
- Aunque el mapeo de fotones se diseñó para funcionar principalmente con trazadores de rayos, también se puede ampliar para su uso con renderizadores de línea de exploración .
Referencias
- ^ Jarosz, Wojciech (septiembre de 2008). "Capítulo 7: El método de mapeo de fotones". Métodos eficientes de Monte Carlo para el transporte de luz en medios de dispersión (tesis doctoral). Universidad de California, San Diego. pag. 119 - vía Dartmouth.
enlaces externos
- Iluminación global usando mapas de fotones
- Síntesis de imágenes realistas mediante el mapeo de fotonesISBN 1-56881-147-0
- Introducción al mapeo de fotones del Instituto Politécnico de Worcester
- Sesgo en la representación
- Papel Siggraph