¿Cómo se manejan los efectos volumétricos en el trazado de rayos?

10

¿Cómo son los efectos volumétricos como el humo, la niebla o las nubes generados por un rastreador de rayos? A diferencia de los objetos sólidos, estos no tienen una superficie bien definida para calcular una intersección.

marca
fuente

Respuestas:

11

Visión general

La aparición de volúmenes (también llamados medios participantes) en la naturaleza es causada por pequeñas partículas, como polvo, gotas de agua o plancton, que están suspendidas en el fluido circundante, como el aire o el agua. Estas partículas son objetos sólidos, y la luz refracta o se refleja de estos objetos como lo haría en una superficie normal. En teoría, los medios participantes podrían ser manejados por un rastreador de rayos tradicional con solo intersecciones de superficie.

Modelo estadístico

Por supuesto, el gran número de estas partículas hace que no sea posible rastrearlas individualmente. En cambio, se aproximan a un modelo estadístico: debido a que las partículas son muy pequeñas y la distancia entre las partículas es mucho mayor que el tamaño de partícula, las interacciones individuales de la luz con las partículas pueden modelarse como estadísticamente independientes. Por lo tanto, es una aproximación razonable reemplazar las partículas individuales con cantidades continuas que describen la interacción "promedio" de partículas de luz en esa determinada región en el espacio.

Para el transporte de luz volumétrica con base física, reemplazamos las inconcebiblemente muchas partículas con un medio participante continuo que tiene dos propiedades: el coeficiente de absorción y el coeficiente de dispersión. Estos coeficientes son muy convenientes para el trazado de rayos, ya que nos permiten calcular la probabilidad de que un rayo interactúe con el medio, es decir, la probabilidad de golpear una de las partículas, en función de la distancia.

El coeficiente de absorción se denota . Digamos que un rayo de luz quiere viajar t metros dentro del medio participante; la probabilidad de atravesar sin absorber, es decir, no golpear una de las partículas y ser absorbida por ella, es e - t σ a `. A medida que aumenta t, podemos ver que esta probabilidad llega a cero, es decir, cuanto más tiempo recorremos el medio, más probabilidades hay de golpear algo y ser absorbido. Cosas muy similares son válidas para el coeficiente de dispersión σ s : la probabilidad de que el rayo no golpee una partícula y se disperse es e - t σ sσatetσaσsetσs; es decir, cuanto más viajamos a través de un medio, más probable es que golpeemos una partícula y nos dispersen en una dirección diferente.

Por lo general, estas dos cantidades se pliegan en un solo coeficiente de extinción, . La probabilidad de viajar t metros a través de un medio sin interactuar con él (ni ser absorbido ni dispersado) es entonces e - t σ t . Por otro lado, la probabilidad de interactuar con un medio después de t metros es 1 - e - t σ t .σt=σa+σstetσtt1etσt

Renderizado con medios participantes

1etσtttσaσtσsσt

La función de fase describe cómo se dispersa el rayo y depende de la naturaleza de las partículas; la función de fase de Rayleigh describe la dispersión de partículas esféricas más pequeñas que la longitud de onda de la luz (por ejemplo, nuestra atmósfera); la función de fase Mie describe la dispersión de partículas esféricas de tamaño similar a la longitud de onda (por ejemplo, gotas de agua); en gráficos, generalmente se usa la función de fase Henyey-Greenstein , originalmente aplicada a la dispersión del polvo interestelar.

tMaxtt<tMaxttMax, el rayo salió ileso e interactúa con la superficie como de costumbre.

panorama

Esta publicación fue solo una pequeña introducción al renderizado con los medios participantes; entre otras cosas, ignoré completamente los coeficientes espacialmente variables (que necesitas para nubes, humo, etc.). Las notas de Steve Marschner son un buen recurso, si está interesado. En general, los medios participantes son muy difíciles de reproducir de manera eficiente, y puede ser mucho más sofisticado que lo que describí aquí; hay mapeo volumétrico de fotones , haces de fotones , aproximaciones de difusión , muestreo de importancia conjunta y más. También hay trabajo interesante en medios granulares. que describe qué hacer cuando el modelo estadístico se descompone, es decir, las interacciones de partículas ya no son estadísticamente independientes.

Benedikt Bitterli
fuente
4

Una forma de hacerlo, que no es exactamente la solución "ir a", pero que puede funcionar bien, es encontrar la distancia que recorrió el rayo a través del volumen y usar la integración de alguna función de densidad para calcular la cantidad de "cosas" golpear.

Aquí hay un enlace con un ejemplo de implementación: http://blog.demofox.org/2014/06/22/analytic-fog-density/

Alan Wolfe
fuente
3

Depende del efecto del volumen.

Los efectos de volumen uniformes que no pertenecen a la dispersión pueden simularse simplemente calculando las distancias de entrada y salida de rayos.

De lo contrario, debe hacer la integración de la ruta de rayos, también conocida como marcha de rayos. Para evitar la necesidad de disparar rayos secundarios, la marcación de rayos a menudo se combina con algún tipo de caché, como mapas de profundidad, mapas profundos, mapas de ladrillos o nubes voxel para sombrear la luz, etc. De esta manera, no necesariamente tiene que marchar toda la escena. El almacenamiento en caché similar a menudo se realiza con la textura procesal del volumen.

También es posible convertir la textura en primitivas de superficie como cajas, esferas o planos que tienen una textura de borde suave adecuada. Luego puede usar técnicas de renderizado normales para resolver el efecto volumétrico. El problema con esto es que generalmente necesita muchas primitivas. Además, la forma de la primitiva puede aparecer como un muestreo demasiado uniforme.

joojaa
fuente
Solo quiero tener en cuenta que también puede hacer una integración real de una ruta de rayos analíticamente, no tiene que usar Ray marching si no es deseable.
Alan Wolfe
@AlanWolfe es lo que haces en el caso del uniforme, sin embargo, si el medio participa con geometría, entonces debes hacer algo más ingenioso. De todos modos no afirmé que esto es todos los métodos.
joojaa
Por supuesto, solo agregue a su respuesta. Cuando dice mayúsculas y minúsculas, no está seguro de lo que quiere decir exactamente, pero para el caso de niebla, no tiene que ser una densidad uniforme, solo alguna función de densidad que pueda integrar. ¿Eso es lo que quisiste decir con uniforme?
Alan Wolfe