Dispersión volumétrica completa de Montecarlo


9

Me gustaría agregar una dispersión volumétrica completa de monte-carlo a mi trazado de ruta, pero me resulta difícil investigar cómo hacerlo. Permítanme explicar lo que me gustaría hacer: Dispersión volumétrica de Monte Carlo un rayo ingresa a un material y aplicamos el BTDF, luego, después de cierta distancia, ocurre un evento de dispersión volumétrica, después de lo cual (en el caso isotrópico), el rayo se dispersa en cualquier dirección en el esfera. Esto se repite hasta que el rayo sale del material con otro BTDF.

Mis preguntas son las siguientes:

  1. ¿Cómo elijo la distancia entre los eventos de dispersión? La intuición me dice que debería haber algún tipo de pdf de dispersión, que da la probabilidad de dispersarse después de una cierta distancia.
    • ¿Sería esto correcto?
    • ¿Sería el pdf una función lineal para materiales isotrópicos?
    • ¿Esta función tiene un nombre o algo que puedo buscar en Google?
  2. ¿Beer-Lambert todavía se aplicaría entre eventos de dispersión?
    • Yo diría que no Dado que Beer-Lambert es una simplificación de los cálculos de dispersión reales.
    • Por otra parte, tal vez Beer-Lambert es un cálculo a escala micro, y el trazado de ruta es a escala macro.
  3. ¿Cuál es el equivalente volumétrico de un BSDF? Parece que puedo usar una función de fase como Henyey-Greenstein para determinar la nueva dirección, pero ¿qué uso para la atenuación?
  4. Por último, ¿cuáles son algunas mejores frases de Google para la dispersión volumétrica de Montecarlo?
    • La búsqueda de dispersión volumétrica, o SSS, termina dando documentos, métodos y publicaciones de blog sobre las simplificaciones de la simulación completa de Monte-Carlo (dipolo, dispersión interna, dispersión externa, difusión, etc.)

Respuestas:


7

En primer lugar, una buena referencia para el trazado de ruta de Monte Carlo en los medios participantes son estas notas del curso de Steve Marschner.

σσ=σs+σuna

σ

Entonces, para responder sus preguntas directamente:

  1. mi-σXX

    X=-(Enξ)/ /σmi-σX

    σuna/ /σ1-σuna/ /σ

  2. No, si sigue el procedimiento de muestreo de importancia que se acaba de describir, Beer-Lambert ya está incorporado implícitamente en el muestreo, por lo que no desea aplicarlo a los pesos de la ruta.

  3. σs,σuna

    También podría hacer algo así para los BSDF; podría factorizar el albedo general y tener la dependencia direccional siempre normalizada. Es sobre todo una cuestión de convención AFAICT.

  4. Pruebe con "medios participantes" (es decir, un "medio" volumétrico, "medios" plurales, que "participa" en el transporte ligero) y "trazado de ruta volumétrica".


¿Cómo muestrearía distancias para coeficientes de dispersión / absorción no monocromáticos? Elija aleatoriamente un canal, luego divida por 1/3 (en el caso de RGB o XYZ)?
RichieSams

1
@RichieSams La recomendación que he visto para ese caso es asignar a cada rayo un solo canal de longitud de onda o color. Básicamente, calcula la dispersión de cada canal por separado. Por ejemplo, en la dispersión atmosférica, la luz azul se dispersa mucho más fuerte que la roja y, por lo tanto, necesita muchos más eventos de dispersión, y los fotones azules seguirán caminos mucho más intrincados que los rojos. Por lo tanto, tiene sentido simularlos por separado, al igual que la dispersión debido a la refracción. Sin embargo, nunca lo he intentado.
Nathan Reed

Ahh, eso tiene sentido. Sin embargo, el rendimiento se verá afectado ... No es de extrañar que todos quieran estimar a los medios participantes de Montecarlo. ¡Gracias por toda la información!
RichieSams
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.