¿Cuál es el enfoque más conocido actualmente e idealmente verificado por producción para el muestreo de mapas de entorno (EM) en un trazado de ruta unidireccional basado en MIS y tipos similares de renderizadores? Preferiría soluciones que sean razonablemente complicadas y razonablemente funcionales a las que proporcionan un muestreo perfecto a costa de una implementación súper complicada y difícil de entender.
Lo que se hasta ahora
Hay algunas formas fáciles de muestrear EM. Se puede muestrear el hemisferio necesario de una manera ponderada por el coseno, que ignora las formas de la función BSDF y EM. Como resultado, no funciona para EM dinámicos:
Para mejorar el muestreo a un nivel utilizable, se puede muestrear la luminancia del EM en toda la esfera. Se implementa con relativa facilidad y los resultados son bastante buenos. Sin embargo, la estrategia de muestreo sigue ignorando la información de visibilidad hemisférica y el factor coseno (y también el BSDF), lo que resulta en un alto ruido en las superficies que no están iluminadas directamente por áreas de alta intensidad del EM:
Documentos
He encontrado algunos documentos sobre el tema, pero aún no los he leído. ¿Vale la pena leer e implementar alguno de estos en un trazador de ruta unidireccional directo, o hay algo aún mejor?
Muestreo de importancia estructurada de mapas ambientales (2003) por Agarwal et al.
Muestreo de importancia orientable (2007) por Kartic Subr y Jim Arvo. Afirman presentar "... un algoritmo para un muestreo eficiente e importante estratificado de mapas ambientales que genera muestras en el hemisferio positivo definido por la orientación local de superficies arbitrarias mientras se tiene en cuenta la ponderación del coseno. "El documento" Importancia del muestreo de armónicos esféricos "lo comenta:" Crean una representación triangulada del mapa del entorno y almacenan la iluminación premultipliplicada por cada una de las primeras nueve funciones básicas de armónicos esféricos en cada vértice. Esto forma una base orientable donde el coseno sujetado puede rotarse eficientemente a cualquier orientación ".
Muestreo práctico de importancia del producto para iluminación directa (2008) por Petrik Clarberg y Tomas Akenine-Möller. Un algoritmo para muestrear el producto de la iluminación del mapa ambiental y la reflectancia de la superficie. Utiliza muestreo de importancia basado en wavelets.
Importance Sampling Spherical Harmonics (2009) por Jarosz, Carr y Jensenn. El resumen dice: "... presentamos el primer método práctico para las funciones de muestreo de importancia representadas como armónicos esféricos (SH) ..."
Muestreo de mapas de medio ambiente basado en el cambio medio por tonos (2015) por Feng et al. Esto es bastante nuevo y no he encontrado ni una referencia ni el documento en sí.
fuente
Respuestas:
Esta no es una respuesta completa, solo me gustaría compartir el conocimiento que obtuve al estudiar dos de los documentos mencionados en la pregunta: Muestreo de importancia orientable y Muestreo práctico de importancia del producto para iluminación directa .
Muestreo de importancia orientable
En este documento proponen un método para muestrear el producto del componente coseno fijado y la iluminación del mapa ambiental:
Aprovechan el hecho de que una aproximación lineal por partes de la función del producto puede expresarse relativamente bien y precalcularse parcialmente utilizando las primeras nueve bases armónicas esféricas. Construyen esta aproximación sobre un EM triangulado adaptativamente y lo usan como una función importante para el muestreo.
Precalculan y almacenan coeficientes de aproximación para cada vértice de triángulo y también coeficientes para el cálculo de la integral de aproximación sobre el triángulo para cada triángulo. Estos coeficientes se denominan pesos de vértice y triángulo. Luego hacen uso del hecho de que es posible calcular fácilmente los coeficientes para una integral sobre un conjunto de triángulos simplemente sumando los pesos de los triángulos individuales sin incorporar bases armónicas esféricas adicionales. Esto les permite construir un árbol binario equilibrado sobre los triángulos donde cada nodo contiene coeficientes para calcular la integral de aproximación sobre los triángulos del subárbol del nodo.
El procedimiento de muestreo consiste en seleccionar un triángulo y muestrear su área:
Para mí, esto parece una técnica prometedora , pero la pregunta clásica con los papeles es cómo se comportará en la vida real. Por un lado, puede haber casos patológicos en los que el EM es difícil de aproximar con una función lineal triangulada por partes, lo que puede conducir a una enorme cantidad de triángulos y / o una mala calidad de la muestra. Por otro lado, puede proporcionar instantáneamente una aproximación relativamente buena de toda la contribución EM, lo que puede ser útil al muestrear múltiples fuentes de luz.
Muestreo práctico de importancia del producto para iluminación directa
En este artículo proponen un método para muestrear el producto de la iluminación del mapa ambiental y la reflectancia de la superficie ponderada en coseno:
El único preprocesamiento en este método es el cálculo de una representación jerárquica del EM (ya sea basado en mipmap o wavelet). El resto se realiza sobre la marcha durante el muestreo.
El procedimiento de muestreo:
El procedimiento debería generar muestras relativamente buenas a costa de un cálculo previo pesado; muestran que se necesitan aproximadamente 100–200 muestras de BRDF para la aproximación de BRDF para lograr el mejor rendimiento de muestreo. Esto puede hacerlo adecuado para cálculos de iluminación puramente directos, donde se generan muchas muestras por punto de sombreado, pero probablemente sea demasiado costoso para los algoritmos de iluminación global (por ejemplo, trazadores de ruta unidireccional o bidireccional), donde generalmente se generan solo unas pocas muestras por punto de sombreado.
fuente
Descargo de responsabilidad: no tengo idea de cuál es el estado del arte en el muestreo del mapa ambiental. De hecho, tengo muy poco conocimiento sobre este tema. Entonces, esta no será una respuesta completa, pero formularé el problema matemáticamente y lo analizaré. Lo hago principalmente por mí mismo, así que lo dejo en claro para mí mismo, pero espero que OP y otros lo encuentren útil.
Queremos calcular la iluminación directa en un punto, es decir, queremos saber el valor de la integral donde es la función BSDF ( explícitamente la dependencia de lo normal que será útil más adelante), es el resplandor del mapa ambiental y es el término coseno junto con la visibilidad (para qué sirve el ) es decir if
Estimamos esta integral generando muestras con respecto a la función de densidad de probabilidad , el estimador esN ω1i,…,ωNi p(ωi)
La pregunta es: ¿Cómo elegimos el pdf modo que podamos generar las muestras en un tiempo aceptable y la varianza del estimador anterior es razonablemente pequeña?p
El mejormétodo Elijaproporcional al integrando Pero la mayoría de las veces es Es muy costoso generar una muestra de acuerdo con este pdf, por lo que no es útil en la práctica.Métodos sugeridos por OP:
Método uno : Elija proporcional al término coseno Método dos : Elija proporcional al EMp
Basado en los nombres de los documentos mencionados, puedo adivinar parcialmente lo que hacen (desafortunadamente no tengo el tiempo y la energía para leerlos en este momento). Pero antes de discutir lo que probablemente hacen, hablemos un poco sobre las series de poder: D
Si tenemos una función de una variable real, por ejemplo, . Entonces, si se comporta bien, puede expandirse en una serie de potencias Donde son constantes. Esto se puede usar para aproximar truncando la suma en algún paso Si es suficientemente alto, entonces el error es realmente pequeño.f(x)
Ahora, si tenemos función en dos variables, por ejemplo, podemos expandirla solo en el primer argumento donde son funciones solo en . También se puede expandir en ambos argumentos donde son constantes. Por lo tanto, la función con argumentos reales se puede ampliar como la suma de los poderes de ese argumento. Se puede hacer algo similar para las funciones definidas en la esfera.f(x,y)
Ahora, tengamos una función definida en la esfera, por ejemplo, . Dicha función también se puede ampliar de manera similar a la función de un parámetro real donde son constantes y Son armónicos esféricos . Los armónicos esféricos normalmente están indexados por dos índices y se escriben como función en coordenadas esféricas, pero eso no es importante aquí. Lo importante es que puede escribirse como una suma de algunas funciones conocidas.f( ω )
Ahora la función que toma dos puntos en la esfera, por ejemplo, se puede expandir solo en sus primeros argumentos o en sus dos argumentosf(ω,ω′)
Entonces, ¿cómo es todo esto útil?
Propongo el CMUNSM (Crazy mental inútil sin método de muestreo): supongamos que tenemos expansiones para todas las funciones, es decir, Si conectamos esto en el integral obtenemos
En realidad, ya no necesitamos Monte Carlo porque podemos calcular los valores de las integrales antemano y luego evaluar la suma (en realidad aproximada suma, sumaríamos solo los primeros términos) y obtenemos el resultado deseado.∫S2Sk( ωyo) Snorte( ω ) Spag( ωyo) dωyo
Todo esto es bueno, pero es posible que no sepamos que las expansiones de BSDF o el mapa ambiental o las expansiones convergen muy lentamente, por lo tanto, tendríamos que tomar muchos términos en la suma para obtener una respuesta razonablemente precisa.
Entonces, la idea no es expandirse en todos los argumentos. Un método que podría valer la pena investigar sería ignorar BSDF y expandir solo el mapa ambiental, es decir, esto conduciría a pdf:
Ya sabemos cómo hacer esto para , esto no es más que el método uno . Supongo que se hace en uno de los documentos para más alto .K= 0 K
Extensiones adicionales. Puede expandir diferentes funciones en diferentes argumentos y hacer cosas similares a las anteriores. Otra cosa es que puede expandirse de manera diferente, es decir, no use armónicos esféricos sino diferentes funciones.
Así que esta es mi opinión sobre el tema, espero que lo haya encontrado al menos un poco útil y ahora me voy a GoT y me acuesto.
fuente
Si bien los métodos de muestreo del producto proporcionan una mejor distribución (perfecta) de los rayos, diría que el uso de MIS (muestreo de importancia múltiple) es un método verificado en la producción. Dado que la información de sombreado es desconocida, el muestreo del producto no se vuelve perfecto de todos modos y es bastante difícil de implicar. ¡Disparar más rayos podría valer más! Depende de su situación y presupuestos de rayos, por supuesto!
Breve descripción de MIS: en esencia, trazas un rayo BSDF (como lo harías de todos modos para hacer una iluminación indirecta) y un rayo explícito hacia el EM. MIS le brinda pesos para que pueda combinarlos de una manera que elimine mucho ruido. MIS es especialmente bueno para elegir la "técnica" (muestreo implícito o explícito) en función de la situación que se presenta. Esto sucede naturalmente sin que el usuario tenga que tomar decisiones difíciles basadas en la aspereza, etc.
El Capítulo 9 de http://graphics.stanford.edu/papers/veach_thesis/ cubre esto en detalle. Consulte también https://www.shadertoy.com/view/4sSXWt para ver una demostración de MIS en acción con luces de área.
fuente