Radiance es un conjunto de herramientas para realizar simulaciones de iluminación escrito originalmente por Greg Ward. [1] Incluye un renderizador , así como muchas otras herramientas para medir los niveles de luz simulados. Utiliza el trazado de rayos para realizar todos los cálculos de iluminación, acelerados por el uso de una estructura de datos octree . Fue pionero en el concepto de imágenes de alto rango dinámico , donde los niveles de luz son (teóricamente) valores abiertos en lugar de una proporción decimal de un máximo (por ejemplo, 0,0 a 1,0) o una fracción entera de un máximo (0 a 255 / 255). También implementa la iluminación global utilizando el método de Monte Carlo para muestrear la luz que cae sobre un punto.
Greg Ward comenzó a desarrollar Radiance en 1985 mientras trabajaba en el Laboratorio Nacional Lawrence Berkeley . El código fuente se distribuyó bajo una licencia que prohibía su posterior redistribución. En enero de 2002, Radiance 3.4 fue reautorizado bajo una licencia menos restrictiva.
Un estudio concluyó que Radiance es el paquete de software más útil para la simulación de iluminación arquitectónica. El estudio también señaló que Radiance a menudo sirve como motor de simulación subyacente para muchos otros paquetes. [2]
Radiance definió un formato de imagen para almacenar imágenes HDR, ahora descrito como formato de imagen RGBE . Dado que fue el primer (y durante mucho tiempo el único) formato de imagen HDR, este formato es compatible con muchos otros [ ¿cuáles? ] paquetes de software. [ cita requerida ]
El archivo comienza con la firma '#?RADIANCE' y luego varias líneas que enumeran los comandos utilizados para generar la imagen. Esta información permite que el renderizador rpict continúe con un renderizado parcialmente completado (ya sea manualmente o utilizando el front-end rad ). También hay declaraciones de clave = valor , incluida la línea 'FORMAT=32-bit_rle_rgbe'.
Después de esto hay una línea en blanco que indica el final del encabezado. Una sola línea describe la resolución y el orden de los píxeles. Tal como lo generan las herramientas de Radiance, esto siempre toma la forma '-Y altura + X ancho' . Después de esta línea siguen los datos binarios de los píxeles.
Radiance calcula los valores de luz como tripletes de coma flotante , uno para el rojo, el verde y el azul. Pero almacenar un float de precisión doble completo para cada canal (8 bytes × 3 = 24 bytes) es una carga incluso para los sistemas modernos. Se utilizan dos etapas para comprimir los datos de la imagen. La primera escala los tres valores de coma flotante para compartir un exponente común de 8 bits , tomado del más brillante de los tres. Luego, cada valor se trunca a una mantisa de 8 bits (parte fraccionaria). El resultado son cuatro bytes, 32 bits, para cada píxel. Esto da como resultado una compresión de 6:1, a expensas de una fidelidad de color reducida.
La segunda etapa realiza la codificación de longitud de ejecución en los valores de píxeles de 32 bits. Esto tiene un impacto limitado en el tamaño de la mayoría de las imágenes renderizadas, pero es rápido y simple.
Una escena de resplandor se crea a partir de uno o más archivos de objetos. El formato .rad es un archivo de texto simple. Puede especificar objetos geométricos individuales, así como llamar programas iniciando una línea con un signo de exclamación '!'. [4]
Al especificar la geometría, la primera línea es
nombre del tipo modificador
Las tres líneas siguientes contienen parámetros que comienzan con un número entero que especifica la cantidad de parámetros. No es necesario que los parámetros estén en la misma línea, pueden continuar en varias líneas para facilitar la lectura.
Los modificadores crean materiales y se pueden encadenar entre sí, modificando uno al siguiente.
Por ejemplo:
mi bola.rad
bola esférica cromada004 0 0 10 10
Esto luego se puede colocar en otro archivo usando el programa xform (descrito más adelante):
escena.rad
metal cromado vacío005 0,8 0,8 0,8 0,9 0,0!xform -a 5 -t 20 0 0 mibola.rad
Esto crea un material cromado y cinco esferas cromadas espaciadas 20 unidades a lo largo del eje X.
Antes de poder utilizar una escena, se la debe compilar en un archivo octree ('.oct') mediante la herramienta oconv . La mayoría de las herramientas de renderizado (ver a continuación) utilizan un archivo octree como entrada.
La suite Radiance incluye más de 50 herramientas. Fueron diseñadas para usarse en sistemas Unix y similares. Muchas de las herramientas actúan como filtros, tomando la entrada en la entrada estándar y enviando el resultado procesado a la salida estándar . Estas se pueden usar en la línea de comandos de Unix y canalizar a un nuevo archivo, o incluir en los mismos archivos de escena de Radiance ('.rad'), como se muestra arriba.
Varios programas de Radiance manipulan datos de escenas de Radiance leyendo desde un archivo específico o su entrada estándar y escribiendo en la salida estándar.
Los generadores simplifican la tarea de modelar una escena, crean ciertos tipos de geometría a partir de los parámetros suministrados.
Radiance incluye una serie de programas para convertir la geometría de la escena desde otros formatos. Entre ellos se incluyen: