Iluminación de armónicos esféricos: ¿qué logra?


8

Según tengo entendido, los armónicos esféricos a veces se usan para aproximar ciertos aspectos de la iluminación (dependiendo de la aplicación).

Por ejemplo, parece que puede aproximarse a la iluminación difusa causada por una fuente de luz direccional en un punto de superficie, o partes de él, calculando los coeficientes SH para todas las bandas que está utilizando (para cualquier precisión que desee) en la dirección de la superficie normal y escalarlo con lo que sea necesario para escalarlo (por ejemplo, intensidad de color claro, punto (n, l), etc.).

Lo que aún no entiendo es lo que se supone que debe lograr. ¿Cuáles son las ventajas reales de hacerlo de esta manera en lugar de evaluar el BRDF difuso de la manera normal? ¿Guarda los cálculos en alguna parte? ¿Hay alguna información adicional contenida en la representación SH que no pueda obtener de los resultados escalares de la evaluación normal?


si crees que hay algo que no te gusta con la respuesta, ¿tal vez puedo explicarlo?
concept3d

Respuestas:


10

La razón para usar armónicos esféricos es aproximar la distribución de luz entrante alrededor de un punto, típicamente luz indirecta calculada por algún algoritmo de iluminación global. Luego, el BRDF también se aproxima con armónicos esféricos, para permitir el cálculo eficiente de la luz saliente vista por el espectador, al tomar el producto de punto de los coeficientes SH de luz entrante con los coeficientes SH BRDF. Esto se aproxima a la convolución de la luz entrante con el BRDF, como se ve en la ecuación de representación.

Si solo desea recibir luz de fuentes puntuales, no necesita SH. Las luces de punto se manejan con mayor precisión simplemente evaluando el BRDF directamente. Además, si tiene un entorno fijo (cielo, etc.) del que desea recibir luz, puede generar mapas de cubos preconvolucionados sin conexión (utilizando CubeMapGen, por ejemplo) que hacen un trabajo bastante bueno al aproximar la convolución del mapa del entorno con el BRDF No hay necesidad de SH aquí tampoco.

Donde SH realmente es útil es cuando tienes una escena compleja y quieres iluminación indirecta, es decir, iluminación de rebote. En este caso, la distribución de la luz varía de un lugar a otro. En principio, cada punto individual de la escena tiene un entorno de iluminación diferente en función de su entorno. En la práctica, muestreamos la iluminación en puntos discretos utilizando algún algoritmo de iluminación global. Hay muchas formas de hacerlo: puede probar la iluminación en cada vértice de las superficies, por ejemplo, o en cada texel de un mapa de luz. O cree una representación volumétrica utilizando una cuadrícula o una malla tetraédrica .

El punto es que hay una gran cantidad de puntos donde se muestrea la iluminación, por lo que necesitamos una representación flexible pero muy compacta de la iluminación alrededor de un punto, para evitar consumir demasiada memoria. SH cumple este papel muy bien. También tiene la propiedad práctica de que funciona bien con la interpolación, es decir, los coeficientes SH se pueden interpolar de un punto de muestra a otro y la iluminación intermedia se comportará razonablemente. Y dado que captura la distribución angular general de la luz entrante, no solo la luz de una dirección, puede usarla con una superficie mapeada normal y obtener resultados bastante buenos.

Sin embargo, debe tenerse en cuenta que SH solo es realmente útil para la iluminación difusa. A menos que use un número verdaderamente loco de coeficientes SH, se desdibujará demasiado la distribución angular de la luz entrante. Para una iluminación indirecta especular de alta calidad, se necesita algo más, como mapas de cubo con corrección de paralaje y / o trazado de rayos en el espacio de la pantalla.


> El punto es que hay una gran cantidad de puntos donde se muestrea la iluminación, por lo que necesitamos una representación flexible pero muy compacta de la iluminación alrededor de un punto, para evitar consumir demasiada memoria. SH cumple muy bien este papel <Esto es lo que me confunde. Me parece que puedes representar la luz alrededor de un punto (esto es irradiación, ¿no es así?) Igual de bien con una representación de intensidad normal, y también necesitas menos memoria para ello, ya que incluso solo 2 bandas SH usan 4 coeficientes por color, mientras que la intensidad es solo 3 en total.
TravisG el

Bueno, tomemos un ejemplo específico: ¿está familiarizado con el algoritmo de volumen de propagación de luz utilizado en Cryengine 3? Me pregunto por qué no es práctico representar la iluminación en el LPV como intensidades.
TravisG el

@TravisG No es solo un solo valor de intensidad RGB porque diferentes cantidades de luz provienen de diferentes direcciones. La idea es representar la distribución angular de la luz entrante, no solo la luz de una dirección específica, o el promedio en todas las direcciones. Considere si tiene una luz verde a la izquierda y una luz roja a la derecha. Una superficie mapeada normal debería reflejar verde donde las normales apuntan a la izquierda y rojo donde apuntan a la derecha. Una sola intensidad RGB no puede representar esta situación, pero una base SH de 2 o 3 bandas sí.
Nathan Reed

@TravisG Del mismo modo con LPV, debe realizar un seguimiento de la dirección en la que se propaga la luz. No solo se extiende en todas las direcciones (a menos que esté dispersado por partículas en el aire o algo así); continúa en la dirección en que se emitió. Por ejemplo, un nodo en el LPV podría contener luz roja que viaja hacia la derecha, y luz verde que viaja hacia la izquierda, al mismo tiempo. Por lo tanto, cada nodo necesita realizar un seguimiento de la distribución angular de la luz que lo atraviesa.
Nathan Reed

3

Lo que aún no entiendo es lo que se supone que debe lograr.

Respuesta corta, cálculos de luz física más precisos. (con respecto a algunas características de interacción de la superficie de la luz).

¿Por qué no evaluar todo con el BRDF difuso de la manera normal?

Lamentablemente, el problema radica en la definición de la forma normal . El modelo de reflexión de phong "normal" ha sido adoptado hace mucho tiempo por la comunidad de renderizado en tiempo real desde el principio y ha sido el estándar de facto debido a su simplicidad que lo hace apropiado para el uso del renderizado en tiempo real.

Sin embargo , el problema es que la interacción luz / material de la vida real es tan complicada que no puede ser modelada por un solo BRDF.

Los BRDF son una abstracción de cómo se supone que suceda la interacción de luz real. Phong es uno más, que tiene la ventaja de la simplicidad.

¿Pero cuáles son las ventajas reales?

En gráficos de computadora hay diferentes BRDF que se dividen en dos categorías principales:

  1. Basado en la teoría física.
  2. Diseñado para adaptarse a una clase específica de tipo de superficie y generalmente se usa en renderizado en tiempo real.

Hablando de la segunda categoría, cada BRDF intenta lograr ciertas características con la interacción de la superficie de la luz. El BRDF más simple posible es Lambertian, que intenta modelar la dispersión subsuperficial y a menudo se usa en gráficos de computadora. El valor de reflectancia constante de un BRDF Lambertian se conoce comúnmente como el color difuso.

En tiempo real, los gráficos por computadora generalmente se seleccionan manualmente y los parámetros se configuran para lograr el aspecto deseado (por ejemplo, usando Phong con ciertos valores para modelar una superficie de plástico o cromo).

Por otro lado, a veces los BRDF se miden directamente desde la superficie deseada (y no están representados por una ecuación matemática). Esto nos da datos mucho más precisos físicamente sobre la superficie que de otro modo serían difíciles de lograr analíticamente.

Un método para ajustar esos datos capturados es seleccionar un BRDF analítico y ajustar estos datos en él. Los armónicos esféricos son solo una técnica utilizada para representar esas cantidades medidas y ajustarlas en un modelo analítico BRDF.

El mejor recurso para la teoría BRDF se puede encontrar en la representación en tiempo real

  • 7.5 Teoría BRDF.
  • En armónicos esféricos, revise 7.7.2 Representaciones para BRDF medidos.

Gracias por la respuesta, pero me falta un poco lo que estoy buscando. Según tengo entendido, puede aproximar cualquier función f (x) usando armónicos esféricos, y por alguna razón la gente decide aproximar partes de un modelo de iluminación usando armónicos esféricos (lo que depende exactamente de la aplicación, pero por ejemplo, el término difuso lambertiano es algo que me he encontrado a menudo). Me pregunto por qué es así, me parece que los armónicos esféricos son solo una representación con pérdida que representa los mismos datos pero que ni siquiera tiene una ventaja de memoria.
TravisG

Bueno, eso depende de con qué lo compares. Si lo compara con un modelo analítico, es más complicado y costoso. Pero el modelo analítico no tiene en cuenta el entorno local. En estos días, aunque veo principalmente a personas que usan mapas de cubos. Logran resultados similares y tienen un mejor soporte de hardware.
drxzcl
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.