stringtranslate.com

Radiosidad (gráficos por computadora)

Escena renderizada con RRV [1] (implementación simple del renderizador radiosity basado en OpenGL) 79.a iteración
La caja de Cornell , renderizada con y sin radiosidad por BMRT

En gráficos por computadora en 3D , la radiosidad es una aplicación del método de elementos finitos para resolver la ecuación de representación de escenas con superficies que reflejan la luz de manera difusa . A diferencia de los métodos de renderizado que utilizan algoritmos de Monte Carlo (como el trazado de trayectoria ), que manejan todo tipo de trayectorias de luz, la radiosidad típica solo tiene en cuenta las trayectorias (representadas por el código "LD*E") que salen de una fuente de luz y se reflejan de manera difusa en algunas partes. número de veces (posiblemente cero) antes de golpear el ojo. La radiosidad es un algoritmo de iluminación global en el sentido de que la iluminación que llega a una superficie proviene no sólo directamente de las fuentes de luz, sino también de otras superficies que reflejan la luz. La radiosidad es independiente del punto de vista, lo que aumenta los cálculos involucrados, pero los hace útiles para todos los puntos de vista.

Los métodos de radiosidad se desarrollaron por primera vez alrededor de 1950 en el campo de la ingeniería de la transferencia de calor . Posteriormente fueron perfeccionados específicamente para el problema de renderizar gráficos por computadora en 1984 por investigadores de la Universidad de Cornell [2] y la Universidad de Hiroshima . [3]

Los motores de radiosidad comerciales notables son Enlighten by Geomerics (utilizado para juegos como Battlefield 3 y Need for Speed: The Run ); 3ds Max ; forma•Z ; LightWave 3D y el sistema de animación de imágenes eléctricas .

Características visuales

Diferencia entre iluminación directa estándar sin sombra penumbra y radiosidad con sombra penumbra

La inclusión de cálculos de radiosidad en el proceso de renderizado a menudo aporta un elemento añadido de realismo a la escena terminada, debido a la forma en que imita los fenómenos del mundo real. Considere una escena de habitación sencilla.

La imagen de la izquierda fue renderizada con un típico renderizador de iluminación directa . Hay tres tipos de iluminación en esta escena que han sido elegidas y colocadas específicamente por el artista en un intento de crear una iluminación realista: iluminación puntual con sombras (colocada fuera de la ventana para crear la luz que brilla en el suelo), iluminación ambiental (sin que cualquier parte de la habitación no iluminada directamente por una fuente de luz quedaría totalmente a oscuras), y la iluminación omnidireccional sin sombras (para reducir la planitud de la iluminación ambiental).

La imagen de la derecha se representó utilizando un algoritmo de radiosidad . Sólo hay una fuente de luz : una imagen del cielo colocada fuera de la ventana. La diferencia es marcada. La habitación brilla con luz. Se ven sombras suaves en el suelo y sutiles efectos de iluminación se notan en toda la habitación. Además, el color rojo de la alfombra se ha fundido con las paredes grises, dándoles un aspecto ligeramente cálido. Ninguno de estos efectos fue elegido o diseñado específicamente por el artista.

Descripción general del algoritmo de radiosidad.

Cada una de las superficies de la escena que se va a renderizar se divide en una o más superficies más pequeñas (parches). Se calcula un factor de vista (también conocido como factor de forma ) para cada par de parches; es un coeficiente que describe qué tan bien se pueden ver los parches entre sí. Las zonas que están muy alejadas unas de otras, u orientadas en ángulos oblicuos entre sí, tendrán factores de visión más pequeños. Si hay otros parches en el camino, el factor de visión se reducirá o será cero, dependiendo de si la oclusión es parcial o total.

Los factores de vista se utilizan como coeficientes en un sistema lineal de ecuaciones de representación. Al resolver este sistema se obtiene la radiosidad o brillo de cada parche, teniendo en cuenta las interreflexiones difusas y las sombras suaves.

La radiosidad progresiva resuelve el sistema de forma iterativa con valores de radiosidad intermedios para el parche, correspondientes a los niveles de rebote. Es decir, después de cada iteración, sabemos cómo se ve la escena después de un rebote de luz, después de dos pases, dos rebotes, etc. Esto es útil para obtener una vista previa interactiva de la escena. Además, el usuario puede detener las iteraciones una vez que la imagen se vea lo suficientemente bien, en lugar de esperar a que el cálculo converja numéricamente.

A medida que el algoritmo se repite, se puede ver que la luz fluye hacia la escena, mientras se calculan múltiples rebotes. Los parches individuales son visibles como cuadrados en las paredes y el suelo.

Otro método común para resolver la ecuación de radiosidad es "disparar radiosidad", que resuelve iterativamente la ecuación de radiosidad "disparando" luz desde el parche con mayor energía en cada paso. Después de la primera pasada, sólo se iluminarán aquellas zonas que estén en la línea de visión directa de un parche emisor de luz. Después del segundo pase, se iluminarán más zonas a medida que la luz comience a rebotar por la escena. La escena continúa haciéndose más brillante y finalmente alcanza un estado estable.

formulación matemática

El método de la radiosidad básica tiene su base en la teoría de la radiación térmica , ya que la radiosidad se basa en calcular la cantidad de energía luminosa transferida entre superficies. Para simplificar los cálculos, el método supone que toda la dispersión es perfectamente difusa . Las superficies suelen discretizarse en elementos cuadriláteros o triangulares sobre los cuales se define una función polinómica por partes.

Después de este desglose, la cantidad de transferencia de energía luminosa se puede calcular utilizando la reflectividad conocida del parche reflectante, combinada con el factor de visión de los dos parches. Esta cantidad adimensional se calcula a partir de la orientación geométrica de dos parches y puede considerarse como la fracción del área de emisión total posible del primer parche que está cubierta por el segundo.

Más correctamente, la radiosidad B es la energía por unidad de área que sale de la superficie del parche por intervalo de tiempo discreto y es la combinación de energía emitida y reflejada:

dónde:

El factor de forma geométrica (o "ángulo sólido proyectado" ) Fij . Fij se puede obtener proyectando el elemento Aj sobre la superficie de un hemisferio unitario y luego proyectándolo a su vez sobre un círculo unitario alrededor del punto de interés en el plano de Ai . El factor de forma es entonces igual a la proporción del círculo unitario cubierto por esta proyección. Los factores de forma obedecen a la relación de reciprocidad A i F ij = A j F ji



Si las superficies se aproximan mediante un número finito de parches planos, cada uno de los cuales se considera que tiene una radiosidad B i y una reflectividad ρ i constantes , la ecuación anterior da la ecuación de radiosidad discreta,

donde Fij es el factor de visión geométrico para la radiación que sale de j y llega al parche i .

Esta ecuación luego se puede aplicar a cada parche. La ecuación es monocromática, por lo que la reproducción de la radiosidad del color requiere un cálculo para cada uno de los colores requeridos.

Métodos de solución

La ecuación se puede resolver formalmente como ecuación matricial, para dar la solución vectorial:

Esto proporciona la solución completa de "rebote infinito" para B directamente. Sin embargo, el número de cálculos para calcular la solución matricial aumenta según n 3 , donde n es el número de parches. Esto se vuelve prohibitivo para valores realistas grandes de n .

En cambio, la ecuación se puede resolver más fácilmente de forma iterativa, aplicando repetidamente la fórmula de actualización de rebote único anterior. Formalmente, esta es una solución de la ecuación matricial mediante la iteración de Jacobi . Debido a que las reflectividades ρ i son menores que 1, este esquema converge rápidamente y generalmente requiere solo un puñado de iteraciones para producir una solución razonable. También se pueden utilizar otros métodos iterativos estándar para soluciones de ecuaciones matriciales, por ejemplo, el método de Gauss-Seidel , donde los valores actualizados para cada parche se utilizan en el cálculo tan pronto como se calculan, en lugar de que todos se actualicen sincrónicamente al final de cada barrer. La solución también se puede modificar para iterar sobre cada uno de los elementos de envío por turno en su bucle principal más externo para cada actualización, en lugar de cada uno de los parches receptores. Esto se conoce como la variante de disparo del algoritmo, a diferencia de la variante de recolección . Usando la reciprocidad del factor de vista, A i Fi ij = A j F ji , la ecuación de actualización también se puede reescribir en términos del factor de vista F ji visto por cada parche de envío A j :

Esto a veces se conoce como formulación de "potencia", ya que ahora es la potencia total transmitida de cada elemento lo que se actualiza, en lugar de su radiosidad.

El propio factor de vista Fij se puede calcular de varias maneras. Los primeros métodos utilizaban un hemicubo (un cubo imaginario centrado en la primera superficie sobre la que se proyectaba la segunda superficie, ideado por Michael F. Cohen y Donald P. Greenberg en 1985). La superficie del hemicubo se dividió en cuadrados similares a píxeles, para cada uno de los cuales se puede calcular fácilmente analíticamente un factor de visión. El factor de forma completo podría entonces aproximarse sumando la contribución de cada uno de los cuadrados similares a píxeles. La proyección sobre el hemicubo, que podría adaptarse a partir de métodos estándar para determinar la visibilidad de los polígonos, también resolvió el problema de los parches intermedios que oscurecían parcialmente los que estaban detrás.

Sin embargo, todo esto era bastante costoso desde el punto de vista computacional , porque idealmente se deben derivar factores de forma para cada par posible de parches, lo que lleva a un aumento cuadrático en el cálculo a medida que aumenta el número de parches. Esto se puede reducir un poco usando un árbol de partición de espacio binario para reducir la cantidad de tiempo dedicado a determinar qué parches están completamente ocultos de los demás en escenas complejas; pero aun así, el tiempo dedicado a determinar el factor de forma normalmente sigue escalando como n log n . Los nuevos métodos incluyen la integración adaptativa. [4]

Enfoques de muestreo

De hecho , los propios factores de forma Fij no son necesarios explícitamente en ninguna de las ecuaciones de actualización; ni para estimar la intensidad total Σ j F ij B j recogida de la vista completa, ni para estimar cómo se distribuye la potencia A j B j que se irradia. En cambio, estas actualizaciones se pueden estimar mediante métodos de muestreo, sin tener que calcular factores de forma explícitamente. Desde mediados de la década de 1990, estos enfoques de muestreo han sido los métodos más utilizados para cálculos prácticos de radiosidad.

La intensidad acumulada se puede estimar generando un conjunto de muestras en el círculo unitario, elevándolas hacia el hemisferio y luego viendo cuál era la radiosidad del elemento en el que se habría originado un rayo entrante en esa dirección. La estimación de la intensidad total acumulada es entonces sólo el promedio de las radiosidades descubiertas por cada rayo. De manera similar, en la formulación de potencia, la potencia se puede distribuir generando un conjunto de rayos a partir del elemento radiante de la misma manera y distribuyendo la potencia de manera equitativa entre cada elemento que incide sobre el rayo.

Esta es esencialmente la misma distribución que un programa de rastreo de trayectorias muestrearía al rastrear un paso de reflexión difusa; o que un programa de trazado de rayos bidireccional tomaría muestras para lograr un paso de reflexión difusa hacia adelante cuando la fuente de luz se mapea hacia adelante. Por lo tanto, el enfoque de muestreo representa hasta cierto punto una convergencia entre las dos técnicas; la diferencia clave sigue siendo que la técnica de radiosidad tiene como objetivo construir un mapa suficientemente preciso de la radiancia de todas las superficies de la escena, en lugar de simplemente una representación de la radiación actual. vista.

Reducir el tiempo de cálculo

Aunque en su forma básica se supone que la radiosidad tiene un aumento cuadrático en el tiempo de cálculo con geometría agregada (superficies y parches), este no tiene por qué ser así. El problema de la radiosidad se puede reformular como un problema de renderizar una escena con un mapa de textura . En este caso, el tiempo de cálculo aumenta solo linealmente con la cantidad de parches (ignorando cuestiones complejas como el uso de la caché ).

Siguiendo el entusiasmo comercial por las imágenes mejoradas con radiosidad, pero antes de la estandarización del cálculo rápido de la radiosidad, muchos arquitectos y artistas gráficos utilizaron una técnica denominada vagamente falsa radiosidad . Al oscurecer las áreas de los mapas de textura correspondientes a las esquinas, [ cita necesaria ] juntas y huecos, y aplicarlas mediante autoiluminación o mapeo difuso, se podría crear un efecto similar a la radiosidad de la interacción del parche con un renderizador de línea de exploración estándar (cf. oclusión ambiental ).

La radiosidad estática precalculada se puede mostrar en tiempo real a través de Lightmaps en las computadoras de escritorio actuales con hardware de aceleración de gráficos estándar .

Ventajas

Una representación moderna de la tetera Utah . Se utilizó radiosidad para toda la iluminación difusa en esta escena.

Una de las ventajas del algoritmo Radiosity es que es relativamente sencillo de explicar e implementar. Esto lo convierte en un algoritmo útil para enseñar a los estudiantes sobre algoritmos de iluminación global. Un renderizador de iluminación directa típico ya contiene casi todos los algoritmos ( transformaciones de perspectiva , mapeo de texturas , eliminación de superficies ocultas ) necesarios para implementar la radiosidad. No se requieren conocimientos sólidos de matemáticas para comprender o implementar este algoritmo [ cita requerida ] .

Limitaciones

Los métodos típicos de radiosidad sólo tienen en cuenta trayectorias de luz de la forma LD*E, es decir, trayectorias que comienzan en una fuente de luz y realizan múltiples rebotes difusos antes de llegar al ojo. Aunque existen varios enfoques para integrar otros efectos de iluminación, como los reflejos especulares [5] y brillantes [6] , los métodos basados ​​en radiosidad generalmente no se utilizan para resolver la ecuación de renderizado completa.

La radiosidad básica también tiene problemas para resolver cambios repentinos en la visibilidad (por ejemplo, sombras de bordes duros) porque la discretización regular y gruesa en elementos constantes por partes corresponde a un filtro de caja de paso bajo del dominio espacial. El mallado de discontinuidades [1] utiliza el conocimiento de los eventos de visibilidad para generar una discretización más inteligente.

Confusión sobre terminología

Radiosity fue quizás el primer algoritmo de renderizado de uso generalizado que tuvo en cuenta la iluminación indirecta difusa. Los algoritmos de renderizado anteriores, como el trazado de rayos estilo Whitted, eran capaces de calcular efectos como reflejos, refracciones y sombras, pero a pesar de ser fenómenos altamente globales, estos efectos no se denominaban comúnmente " iluminación global ". Como consecuencia, los términos " interreflexión difusa " y "radiosidad" se confundieron con "iluminación global" en el lenguaje popular . Sin embargo, los tres son conceptos distintos.

El método de radiosidad, en el contexto de los gráficos por computadora, se deriva (y es fundamentalmente el mismo) del método de radiosidad en la transferencia de calor . En este contexto, la radiosidad es el flujo radiativo total (tanto reflejado como rerradiado) que sale de una superficie; esto también se conoce a veces como excitación radiante . El cálculo de la radiosidad, en lugar de las temperaturas de la superficie, es un aspecto clave del método de la radiosidad que permite aplicar métodos matriciales lineales al problema.

Ver también

Referencias

  1. ^ Dudka, Kamil. "RRV - Visualizador y renderizador de radiosidad". Dudka.cz . Consultado el 1 de febrero de 2013 .
  2. ^ "Cindy Goral, Kenneth E. Torrance, Donald P. Greenberg y B. Battaile, Modelado de la interacción de la luz entre superficies difusas", Computer Graphics , vol. 18, núm. 3. ( PDF )
  3. ^ "T. Nishita, E. Nakamae, Representación de medios tonos de objetos tridimensionales con bordes suaves mediante el uso de un método de escaneo múltiple", Revista de IPSJ, Vol.25, No.5, páginas 703-711, 1984 (en japonés) ( PDF )
  4. ^ G Walton, Cálculo de factores de vista obstruida mediante integración adaptativa , Informe NIST NISTIR-6925, consulte también http://view3d.sourceforge.net/
  5. ^ Wallace, John R.; Cohen, Michael F.; Greenberg, Donald P. (agosto de 1987). "Una solución de dos pasos a la ecuación de renderizado: una síntesis de los métodos de radiosidad y trazado de rayos". Gráficos por computadora ACM SIGGRAPH . 21 (4): 311–320. doi :10.1145/37402.37438. ISSN  0097-8930.
  6. ^ "Agrupación para una iluminación global brillante". Archivado desde el original el 12 de octubre de 2006 . Consultado el 29 de diciembre de 2006 .

Otras lecturas

enlaces externos