Está en la página 1de 59

2001

Yael A. Bobadilla Inclán>

RADIOSITY
Algoritmos de Iluminación Global

Uady – FMAT

Nos da una visión de los Algoritmos


más comunes de renderización,
haciendo un análisis comparativo y
progresivo de los mismos hasta
llegar al Radiosity.

ad
Radiosity, Un Modelo de Iluminación Global

Índice General

Capítulo 1
Introducción 1
1.1 Algoritmos de Iluminación Global . . . . . . . . . . . . . . . . . 2

1.2 Ray Tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Método Radiosity . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4 Realismo Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Capítulo 2
Determinación de la superficie visible 7
2.1 Técnicas para mejorar la eficiencia de los algoritmos . . . . . . . . 9

2.2 Algoritmos para la determinación de líneas visibles . . . . . . . . . 12

2.3 Algoritmos para la determinación de superficies visibles . . . . . . 13

Capítulo 3
Iluminación y sombreado 24
3.1 Modelos de iluminación . . . . . . . . . . . . . . . . . . . . . . . 25

3.2 Modelos de sombreado para polígonos . . . . . . . . . . . . . . . 30

3.3 Detalles de la superficie . . . . . . . . . . . . . . . . . . . . . . . 33

3.4 Implementación de zonas de sombra . . . . . . . . . . . . . . . . 34

3.5 Reflexiones entre objetos . . . . . . . . . . . . . . . . . . . . . . 36

3.6 Modelos de iluminación basados en leyes físicas . . . . . . . . . . 37


. .
3.7 Fuentes de luz extendidas . . . . . . . . . . . . . . . . . . . . . . 39
.
3.8 El modelo de cámara . . . . . . . . . . . . . . . . . . . . . . . . . 40
.
3.9 Algoritmos de iluminación global . . . . . . . . . . . . . . . . . . 40
.
3.10 Trazado de rayos recursivo . . . . . . . . . . . . . . . . . . . . . 41

Autor: Yael Bobadilla Inclán


Radiosity, Un Modelo de Iluminación Global

. .
3.11 Renderización . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Capítulo 4
Algoritmos de radiosidad 44
4.1 Métodos de radiosidad . . . . . . . . . . . . . . . . . . . . . . 44

4.2 Refinamiento progresivo . . . . . . . . . . . . . . . . . . . . . 51

Conclusiones 53

Glosario 54

Bibliografía 55

Autor: Yael Bobadilla Inclán


Radiosity, Un Modelo de Iluminación Global

Capítulo 1

Introducción

Durante los últimos 30 años las gráficas por computadora han evolucionado y han
pasado de ser una disciplina compleja y desconocida a formar parte de la mayoría de las
aplicaciones informáticas que requieren interacción con el usuario.
Este auge de las gráficas por computadora se ha visto impulsado por su utilidad en la
representación de imágenes, especialmente imágenes realistas, que por diversos motivos, son
difíciles de obtener mediante métodos tradicionales (fotografía y pintura, por ejemplo). En
este sentido podemos distinguir las principales aplicaciones de dicho campo:
• Diseño asistido por computadora (CAD) se usa como una herramienta en el
diseño de objetos (automóviles, puentes, chips, etc) proporcionándonos una herramienta
interactiva, una interfaz de simulación y análisis para el ingeniero.
• Bellas artes: el artista puede utilizar la pantalla computadora como un medio para
crear imágenes de impresionante belleza, efectos cinematográficos especiales, animar
historietas y anuncios de televisión.
• Visualización científica: un acontecimiento de simulación científica (tal como el
nacimiento de una estrella o el desarrollo de un tornado) puede ser exhibido
pictóricamente y en movimiento para proporcionar más información que simples tablas
de números.
• Interfaces entre las computadoras y sus usuarios, proporcionando un método más
intuitivo de manejo.

Autor: Yael Bobadilla Inclán 1


Radiosity, Un Modelo de Iluminación Global

Se puede afirmar que una imagen realista—ya sea pintada, fotografiada o


generada por computadora—es una imagen que captura muchos de los efectos de la
luz que interactúa con los objetos reales. De esta manera, podemos hablar de las
imágenes y las técnicas utilizadas para crearlas.
Para la creación de imágenes realistas el hombre se ha visto en la necesidad de
entender las propiedades físicas tanto de la luz como de los materiales que forman parte de
una escena y la manera como interactúan todos ellos. Por esta razón, en los últimos siglos los
físicos han desarrollado modelos matemáticos de los procesos mediante los cuales la luz
interactúa con los objetos de un ambiente, así como la forma en que se propaga esta por este
medio.

1.1 Algoritmos de Iluminación Global

Actualmente con el desarrollo de la computación ha sido más fácil evaluar los


modelos matemáticos de propagación de la luz, para una escena específica, detallando
numéricamente sus propiedades geométricas y materiales.
Un modelo de iluminación calcula el color de un punto en términos de la luz emitida
directamente por las fuentes emisoras y la luz que llega al punto después de la reflexión y la
transmisión de sí misma y de otras superficies. Esta luz indirectamente reflejada y transmitida
es frecuentemente llamada Iluminación Global. En contraste, la iluminación local es la luz
que proviene de la fuente de luz emisora hacia el punto a ser sombreado [COHE93].
Una gran parte de la luz que se encuentra en un ambiente del mundo real no proviene
de una fuente de luz directa. Se han usado dos clases de algoritmos para generar la
iluminación global: los algoritmos ray tracing y el algoritmo radiosity(Radiosidad).
En los métodos ray tracing, el observador es lo principal. Todos los rayos de luz son
trazados desde la posición de observación en el ambiente. Al cambiar la posición de
observación, aunque sea en una cantidad mínima el proceso ray tracing es repetido
completamente. Por esta razón se dice que son métodos visualmente dependientes.
El método radiosity es exactamente opuesto. Los cálculos de transferencia de luz
están basados únicamente sobre la geometría del ambiente. No hay posición de vista u
observador. Radiosity considera sólo la interacción de la luz con las superficies del medio.
Dado un ambiente, se calcula la brillantez visual de cada uno de los elementos de la

Autor: Yael Bobadilla Inclán 2


Radiosity, Un Modelo de Iluminación Global

superficie. Estos cálculos solamente se ejecutan una vez, pues es posible posicionar y
orientar los objetos del ambiente con estos El método radiosity (radiosidad), por lo tanto, es
visualmente independiente
Los métodos visualmente dependientes discretizan el plano visual para determinar
los puntos en los cuales se debe evaluar la ecuación de iluminación, dada la dirección del
observador. En contraste, los métodos visualmente independientes discretizan el ambiente, y
lo procesan en orden para evaluar la ecuación de iluminación a cualquier punto y desde
cualquier dirección.
En resumen, podríamos considerar a ray tracing y radiosity como enfoques
complementarios de sintetización de imágenes. Los investigadores aún están refinando los
algoritmos existentes y desarrollando nuevos. En la actualidad, contamos con un enfoque
híbrido que combina las mejores características de ambos métodos para reflexiones difusas y
Ray Tracing para luces especulares) [ASHD94].
Durante este trabajo se manejaran los términos radiosity y radiosidad por igual, es
decir, significaran lo mismo.

1.2 Ray Tracing

Ray Tracing aplicado a las gráficas por computadora fue desarrollado primero por
Appel y por Goldstein y Nagel. Appel uso una rejilla dispersa de rayos para determinar
sombras incluyendo si un punto estaba dentro de la sombra. Goldstein y Nagel originalmente
usaron su algoritmo para simular las trayectorias de proyectiles balísticos y partículas
nucleares; sólo después lo aplicaron a las gráficas. Appel fue el primero en trazar sombras,
mientras Goldstein y Nagel fueron los pioneros en usar ray tracing para evaluar conjuntos de
operaciones booleanas. Whitted y Kay extendieron ray trac¡ng para manejar reflexión
especular y refracción [FOLE96].
Ray Tracing, también conocido como ray casting, determina la visibilidad de las
superficies trazando rayos de luz imaginarios desde el ojo del observador a los objetos de la
escena. Un centro de proyección (el ojo del observador) y una ventana sobre un plano de
vista arbitrario son seleccionados. La ventana puede ser imaginada como una malla cuyos
elementos corresponden a los pixeles en la resolución deseada. Así, para cada pixel en la
ventana un rayo del ojo es lanzado desde el centro de la proyección al centro del pixel en la
escena. Las intersecciones de los rayos con los objetos deben notarse, como en el mundo real.
Si los rayos pasan sin intersectar un objeto al fondo del pixel se le asigna un color,

Autor: Yael Bobadilla Inclán 3


Radiosity, Un Modelo de Iluminación Global

regularmente negro. Cuando las intersecciones tocan las superficies del objeto, la intensidad
de las fuentes de luz en la superficie es calculada y al pixel se le asigna una combinación de
color de estas fuentes de luz, menos algunos colores que son absorbidos por la superficie. Si
la superficie es reflejada, el ángulo de incidencia de los rayos contra la superficie y el rayo
reflejado es trazado hasta la intersección de la segunda superficie. Si la segunda superficie es
también reflejada, el proceso se repite. Como a cada pixel se le asigna un color, el mapa de
bits es creado y desplegado cada vez en el monitor o en el archivo de salida del disco
(usualmente en ambos) [PAT99].
El trazo de rayos no es más que un arreglo de definición de estructuras de objetos.
Estas definiciones pueden llamar a diferentes clases de objetos dentro de un contador.
Algunos objetos son construcciones de polígonos, mientras que otros se construyen con base
en esferas o superficies curvas. La definición de objetos podría identificar el tipo de objeto y
sus parámetros. El polígono tendría una lista de vértices; la esfera, el diámetro, etc.; se
pueden definir también sus propiedades (reflexión, color, suavidad, etc.).
Para cada rayo que es trazado se podría calcular el ángulo de intersección de los
objetos. Por cada objeto se realiza un cálculo diferente. Para determinar las intersecciones de
las superficies de polígonos y de esfera podrían usarse las ecuaciones de la recta y las
ecuaciones de la curva. Una vez identificada cada intersección, el color del pixel es
determinado. Este proceso es simple y lento [VILL97].

1.3 Método Radiosity

El término radiosity se refiere a una medida de energía radiante, en particular, la


energía que deja una superficie por unidad de tiempo. Con el tiempo, radiosity ha venido
también a significar un conjunto de técnicas computacionales para calcular por medio de las
computadoras la iluminación global de un ambiente.
El método radiosity emerge recientemente en el desarrollo de la sintetización de
imágenes. Este método representa el desarrollo de varias tendencias: el desarrollo de modelos
basados en propiedades físicas, el uso de métodos computacionales más rigurosos la continua
tensión entre la interactividad y el realismo computacional.
Radiosity puede ser entendido como un enfoque particular para resolver la ecuación
de renderizado bajo la suposición de la reflexión difusa Lambertain [FOLE96], los trabajos
subsecuentes han incluido extensiones del enfoque radiosity a la reflexión brillante o ideal
(espejo).

Autor: Yael Bobadilla Inclán 4


Radiosity, Un Modelo de Iluminación Global

Toda la energía emitida o reflejada por cada superficie es tomada en cuenta por la
reflexión o absorción en las otras superficies. La velocidad a la cual la energía deja una
superficie, llamada su radiosity, es la suma de las velocidades a las cuales la superficie emite
energía y la refleja o transmite hacia otras superficies. En consecuencia, los enfoques que
calculan por computadora estas “radiositys” de las superficies en un ambiente han sido
llamados método radiosity. Diferente de los algoritmos convencionales de renderizado, el
método radiosity primero determina todas las interacciones de luz en el ambiente de manera
visualmente independiente. Luego, una o más vistas son renderizadas, sólo con la
determinación aérea de la superficie visible e interpolación de sombras [ASHD94].
En el capítulo 4 se estudiará con mayor detalle este algoritmo, que es el objetivo
primordial de este trabajo.
Una vez explicados los algoritmos ray tracing y los radiosity, podemos decir que, los
algoritmos ray tracing combinan la determinación de superficies visibles y el sombreado
para representar sombras, reflexión y refracción; mientras que los métodos radiosity separan
totalmente la determinación de superficies visibles y el sombreado, modelando todas las
interacciones del ambiente con las fuentes luminosas, primero en una etapa independiente de
la vista, para después calcular una o mas imágenes para los puntos de observación deseados
usando algoritmos convencionales de superficies visibles y sombreado.
Los algoritmos de determinación de superficies visibles y de sombreado
(Iluminación) serán estudiados más adelante en los capítulos 2 y 3 respectivamente.

1.4 Realismo Visual

La creación de imágenes realistas comprende varias etapas, estas muchas veces se


consideran como parte de un camino o guía conceptual, en las cuales puede variar el orden de
su ejecución, dependiendo de los algoritmos que se empleen.
Las etapas de las que estamos hablando, son las mismas por las que hay que pasar
antes de poder aplicar algún método de iluminación global, ya sea el de ray tracing o el de
radiosity.
El camino desde la representación de los objetos hasta los algoritmos de Iluminación
Global es el siguiente:

Autor: Yael Bobadilla Inclán 5


Radiosity, Un Modelo de Iluminación Global

 La primera etapa genera modelos de los objetos, es decir los representa


matemáticamente o por medio de aristas, vértices y polígonos.
 Después se selecciona una especificación de visualización, es decir como primer
paso se utilizan las transformaciones geométricas para cambiar la posición, la
orientación y el tamaño de los objetos; una vez que se tiene la escena que se
quiere, entonces se aplican proyecciones para transformar la vista tridimensional
en una vista bidimensional.
 Luego se determinan las superficies que serán visibles al observador usando los
algoritmos que se presentaran en el capitulo 2.
 Y por ultimo, el color que se asigna a cada pixel de la proyección de una super-
ficie visible es una función de la luz reflejada y transmitida por los objetos y se
determina con los métodos de iluminación Global (Ray Tracing o Radiosity).

La imagen resultante se puede combinar con otras generadas previamente (por


ejemplo, para reutilizar un fondo complejo) usando técnicas de composición.
El proceso de creación de imágenes a partir de modelos con frecuencia se denomina
generación de imágenes (rendering).
El término generación de barrido (rasterización) también se usa para referirse
específicamente a aquellos pasos que comprenden la determinación de valores de pixeles a
partir de primitivas geométricas.

Autor: Yael Bobadilla Inclán 6


Radiosity, Un Modelo de Iluminación Global

Capítulo 2

Determinación de la superficie visible

El problema que se nos presenta es cómo poder representar correctamente en dos


dimensiones un conjunto cualesquiera de objetos en tres dimensiones (3D) dada una
especificación de la vista deseada, de modo que sólo debemos representar las líneas y
superficies visibles. Este es el proceso conocido como determinación de la superficie visible
(u oculta, en cuanto se puede buscar cualquiera de las dos).
Aunque la idea resulte sencilla, requiere un elevado número de operaciones y
consiguientemente un gran tiempo de procesamiento en una máquina convencional. Debido a
ello han surgido un gran número de técnicas, algoritmos y arquitecturas de propósito
especifico diseñados para atacar el problema. Dichas técnicas y algoritmos se pueden dividir
en dos grupos según el enfoque que se le dé:

Precisión a la imagen (image-precision): Determinar cual de los n objetos en la


imagen es el visible en cada pixel. Esto supone un esfuerzo computacional
proporcional a n ⋅ p , donde p representa el número de píxeles.
Precisión al objeto (object-precision): Comparar directamente los objetos eliminando las
partes no visibles. De este modo el esfuerzo computacional es proporcional a n2.
Aunque parece menor que en el caso anterior (habitualmente n es menor que p), los
algoritmos son más difíciles de implementar.

Autor: Yael Bobadilla Inclán 7


Radiosity, Un Modelo de Iluminación Global

Otra diferencia entre ambas aproximaciones reside en el hecho de que los algoritmos de
precisión a la imagen son ejecutados directamente a la resolución del dispositivo de salida
(pantalla, impresora, etc.), mientras que en los otros se realiza el cálculo de modo
independiente, pero es necesario un paso posterior de “traducción” a la resolución deseada.
Debemos añadir que esta división de los algoritmos no es excluyente, ya que existen
algoritmos que combinan cálculos de ambos grupos.
Antes de pasar directamente a tratar los algoritmos es necesario puntualizar
brevemente algunos conceptos sobre la visualización en 3D que serán empleados más
adelante.

Visualización en 3D

Disponemos de unos objetos definidos en un espacio 3D que deben ser visualizados


en un plano (el de la pantalla o el de un papel), para lo que es necesario llevar a cabo las
siguientes operaciones:
En el espacio tridimensional donde hemos definido nuestra escena elegimos el
volumen (view volume) que será visualizado. El contenido de este volumen se proyecta sobre
un plano de dicho espacio. Esta proyección 2D se denomina ventana (window) y es a su vez
transformada (mapped) a un rectángulo (viewport) definido en las coordenadas de la pantalla
para ser representado.
La proyección se lleva a cabo a través de unas rectas (proyectores) que emanan del
centro de proyección, pasan por cada punto de los objetos para intersecar el plano de
proyección donde esta se forma. Este tipo de proyecciones se denomina proyecciones
geométricas planas y se pueden dividir en dos clases: de perspectiva y paralelas (figura 2.1).
Se diferencian en la distancia del centro de proyección al plano de proyección: si dicha
distancia es finita se trata de una proyección de perspectiva, si es infinita tenemos una
proyección paralela. En esta última, los proyectores son paralelos entre sí y para definirla se
emplea su dirección. Para especificar una proyección de perspectiva se usa el centro de
proyección.

Autor: Yael Bobadilla Inclán 8


Radiosity, Un Modelo de Iluminación Global

Figura 2.1: Tipo de proyecciones

2.1 Técnicas para mejorar la eficiencia de los algoritmos

Debido al costo computacional de los algoritmos veremos algunas técnicas para


aumentar su eficiencia. Básicamente, se trata de que las operaciones más costosas sean
realizadas lo mejor y lo más infrecuentemente posible. Existen una serie de aspectos que
deberemos tener en cuenta para aumentar la eficiencia, algunos de los cuales describiremos a
continuación brevemente.

Coherencia

Podemos definir la coherencia como el grado en el cual las partes de un entorno


muestran similitudes locales. Esta propiedad se puede aprovechar para aumentar la eficiencia
de los algoritmos ya que permite ahorrar cálculos cuando las propiedades de un objeto varian
suavemente. Se han identificado distintas clases de coherencia:

Coherencia de objeto. Si un objeto está completamente separado de otro, no es necesario


comparar sus componentes (caras, aristas...) entre sí para comprobar si se solapan.

Coherencia de arista. La visibilidad o no de una arista cambia sólo si se cruza con un objeto
visible.

Autor: Yael Bobadilla Inclán 9


Radiosity, Un Modelo de Iluminación Global

Coherencia de arista implícita. No es necesario calcular todos los puntos de la recta que se
forma cuando dos planos se cruzan, solo son necesarios dos.

Coherencia de línea de barrido (scan-line). Los objetos definidos en el espacio deben ser
llevados a la pantalla en forma de píxeles (scan-conversion), esto se hace por medio de
líneas que barren la imagen (Scan-line). Pues bien, la coherencia reside en el hecho de
que la variación de una línea a otra es pequeña, lo cual se puede tener en cuenta para
simplificar las computaciones.

Coherencia de cara. Las propiedades de las caras de los objetos varían suavemente, lo que
permite hacer los cálculos de modo incremental sin tener que hacer esfuerzos
innecesarios.

De forma similar a esta última se definen otros tipos de coherencia como la de área y
la de profundidad.

Rectángulos extendidos y volúmenes circunscritos

Se pueden definir unos polígonos que rodean a las proyecciones, llamados rectángulos ex-
tendidos (extents). No es necesario comprobar que dos proyecciones no se solapan si no los
hacen sus extendidos, como en el ejemplo de la figura 2.2.

Figura 2.2: Ejemplo de rectángulos extendidos

Si los extendidos tienen contacto, se pueden dar dos casos, que las proyecciones
solapen o no. En ambos se deben realizar los cálculos, que resultan inútiles si los objetos no
se solapan.

Autor: Yael Bobadilla Inclán 10


Radiosity, Un Modelo de Iluminación Global

Si en vez de definir los extendidos en el plano de proyección se definen en el espacio


3D obtenemos los llamados volúmenes circunscritos (bounding volumes). Como veremos,
estos volúmenes auxiliares se emplean a la hora de comprobar si un proyector interseca un
objeto.

Eliminación de las caras posteriores (Back-face culling)

Asumamos que un objeto está compuesto por polígonos de modo que las normales de
los planos en el que están contenidos apuntan hacia el exterior del objeto. Aquellas caras del
objeto que están ocultas desde el punto de vista del observador pueden ser eliminadas para
los cálculos posteriores.
El modo de determinar si una cara es visible, es a través del producto escalar de la
normal del plano en el que está contenida y la dirección de proyección. Si dicho producto es
positivo o cero se trata de un plano oculto (o “de canto”). Usualmente las proyecciones son
ejecutadas de modo que la dirección de proyección sea (0, 0, -1), así, sólo debemos buscar las
superficies con la tercera componente negativa para eliminarías.
La eliminación de caras ocultas es una técnica de precisión al objeto y tiene un
tiempo de computación que crece linealmente con el número de objetos.

Autor: Yael Bobadilla Inclán 11


Radiosity, Un Modelo de Iluminación Global

2.2 Algoritmos para la determinación de líneas visibles

Presentaremos dos algoritmos de precisión al objeto, que producen como salida una
lista de los segmentos visibles.

Algoritmo de Roberts

Este algoritmo fue el primero en desarrollarse para solucionar el problema de las


líneas ocultas. Requiere que cada línea sea una arista de un poliedro convexo.
Primero se emplea la técnica de eliminación de caras posteriores (back-face culling)
para suprimir las aristas compartidas por dos de estas caras. Después, las aristas restantes son
comparadas con cada poliedro que podría ocultarlas parcial o totalmente. Es aquí donde se
produce el gran gasto computacional que puede ser evitado a través del uso de los rectángulos
extendidos que elimina trivialmente muchos poliedros.

Figura 2.3: Cubo de ejemplo para el algoritmo de Appel

Algoritmo de Appel

Este ya es un algoritmo más general pues sólo requiere que las líneas sean aristas de
polígonos y no de poliedros. Trabaja con aristas de polígonos visibles.
Appel define lo que llama invisibilidad cuantitativa de un punto en una línea como el
número de polígonos visibles que oscurecen al punto. También define una línea de contorno
(línea AB en la figura 2.3) como aquella compartida por una cara visible y otra oculta. Si una
línea se cruza con una línea de contorno cambia su invisibilidad cuantitativa. Cuando pasa
por detrás de un polígono se le suma -1, si después reaparece se le suma 1. Sólo son
dibujados los tramos con invisibilidad cuantitativa 0.

Autor: Yael Bobadilla Inclán 12


Radiosity, Un Modelo de Iluminación Global

Luego, aprovechando la coherencia de arista propaga este valor por las líneas que
emanan del vértice hasta que llega al punto final donde se vuelve a propagar el valor que
tenga allí. Pero es necesario hacer una corrección con los vértices pertenecientes a líneas de
contorno donde la propagación del valor no siempre es cierta.
En la figura 2.3 se calcula directamente que el vértice C tiene una invisibilidad cuan-
titativa de 0. Empleando la coherencia de arista podemos decir que todas las líneas que
emanan de él también tienen la misma invisibilidad cuantitativa. En cambio, para el vértice A
no ocurre lo mismo, se trata de un vértice perteneciente a una línea de contorno para el cual la
coherencia de arista no es aplicable pues una de las aristas que emanan de él no es visible.

2.3 Algoritmos para la determinación de superficies visibles

Algoritmo z—buffer
Originalmente implementado por Catmull, es uno de los más usados y fáciles de
implementar, se trata además de un algoritmo de precisión a la imagen. A la hora de
representar la salida se dispone de un buffer, llamado frame buffer (F), en el que se almacena
el color de cada píxel. Pues bien, cuando se ejecuta el algoritmo se dispone de otro buffer
llamado Z-buffer (Z), con igual número de entradas donde se almacena el valor de la coordenada Z
correspondiente al punto que se representa en cada píxel.
El algoritmo comienza inicializando F al color de fondo (background) y Z al valor de
la coordenada Z del plano de corte posterior del volumen de visualización canónico. Si
durante la transformación a píxeles de un objeto en un punto (x, y) este se halla más cerca del
observador que el objeto almacenado en Z, se cambia la información almacenada en los
buffers por la actual. Al final del proceso, los buffers contienen la información asociada a los
objetos más cercanos al observador. Se trata de comparar el conjunto de puntos de los objetos
que son candidatos a “colorear” un determinado píxel buscando aquel punto más cercano al
centro de proyección.
Este algoritmo se puede aplicar a cualquier tipo de objeto si se conoce (o se puede
determinar) su color y su coordenada Z. Precisamente para el caso de los polígonos, que se
definen por la ecuación del plano en el que se encuentran, se puede calcular Z para cada punto
(x, y) de un modo simplificado echando mano del concepto de coherencia en profundidad. Lo
que se haría normalmente es resolver la ecuación del plano para cada par (x, y).

Autor: Yael Bobadilla Inclán 13


Radiosity, Un Modelo de Iluminación Global

Se puede conseguir aumentar adicionalmente la eficacia realizando un ordenamiento


en el buffer según la coordenada Z de modo que se muestren primero los objetos más
cercanos al observador. Si la determinación del color consume tiempo de computación, esta
ordenación ahorra los cálculos para aquellos puntos de los objetos que no son visibles.
Una característica a destacar de este algoritmo es que el tiempo de cálculo permanece
invariante ante el número de polígonos. Esto es así porque el número de píxeles cubiertos por
un polígono disminuye mientras aumenta el número de estos, de modo que el número medio
de comparaciones permanece constante.

Algoritmos de listas de prioritarios

Estos algoritmos determinan un orden de visibilidad de forma que se asegura que ren-
derizando los objetos en ese orden el resultado será el correcto. Son híbridos en cuanto
combinan operaciones de precisión al objeto (comparaciones en profundidad y división de
objetos) y operaciones de precisión a la imagen (scan-conversion, sobrescribir los píxeles
dibujados por otros más cercanos).
Los distintos algoritmos de esta clase difieren entre sí en el modo de determinar el
tipo de ordenamiento, además de en la manera de establecer cuándo y qué objeto será
dividido primero.

• Algoritmo de ordenamiento en profundidad


Desarrollado por Newell, Newell y Sancha, consiste en colocar los
objetos en el frame buffer desde los puntos más alejados hacia los más cercanos al
observador. Requiere tres pasos:
− Ordenar los polígonos según su coordenada Z más lejana.
− Resolver cualquier ambigüedad causada por el solape de los polígonos en Z, lo
que implica su división.
− Transformar cada polígono en píxeles desde atrás hacia delante.

• Algoritmo de árboles de distribución espacial binaria (BSP)


Este algoritmo es muy recomendable para aquellas aplicaciones en las
que se requieren continuos cambios en la posición del centro de proyección, es decir,
aquellos campos en los que se precisa una gran multitud de puntos de vista de una

Autor: Yael Bobadilla Inclán 14


Radiosity, Un Modelo de Iluminación Global

misma escena. Al contrario de los demás algoritmos, necesita un preprocesado inicial


muy intensivo que hace posible que el cambio del punto de vista se efectúe
eficientemente.
Desarrollado inicialmente por Fuchs, Kedem y Naylor está basado en
el trabajo de Schumaker que sugirió que las escenas están compuestas de racimos o
grupos de objetos (clusters). Mediante la determinación de los llamados planos de
distribución, es posible ir separando iterativamente unos grupos de otros. Se puede
formar así un árbol binario cuyos nodos sean los planos y sus dos ramas hijas dividan
el espacio en delante y detrás del plano.
Pues bien, el algoritmo que describimos busca un orden correcto para
dibujar los polígonos construyendo un árbol binario, cuya raíz sea un polígono
cualquiera. El plano en el que está contenido dicho polígono divide el espacio en dos
partes creándose dos ramas en el nodo. En dichas ramas se colocan los polígonos que
caen detrás y delante del plano raíz según su normal. Si se da el caso de que un
polígono atraviese dicho plano, el primero se divide y sus partes se reparten entre
ambas ramas. Este proceso continúa hasta que se clasifican todos los polígonos.
El orden para dibujar un polígono cambia según el observador esté
situado delante o detrás de él. Si está delante, los primeros en representarse son los
polígonos de la parte posterior al polígono en cuestión, después el propio polígono y
por último los de la parte delantera. Si el punto de vista se sitúa detrás, el orden es el
inverso. La representación comienza con el nodo raíz y se sigue aplicando el algoritmo
con sus hijos.

Algoritmos de barrido de línea (Scan-l:ne)

Se trata de algoritmos de precisión a la imagen, el primero de los cuales fue


desarrollado por Wylie, Romxney, Evaus y Erdahl. Operan computando los “tramos” que se
definen entre los lados de un polígono. Dichos tramos son calculados de modo incremental
con una técnica que halla las intersecciones de una línea de barrido con las aristas del
polígono. De este modo, se determina qué píxeles caen dentro de un polígono y se “pintan”
del color correspondiente.
En primer lugar, se debe confeccionar una tabla con las aristas de todos los polígonos
proyectados sobre el plano de visualización, llamada tabla de aristas (TA). Esta tabla se
ordena en conjuntos según la menor coordenada y de la arista, y dentro de cada conjunto se

Autor: Yael Bobadilla Inclán 15


Radiosity, Un Modelo de Iluminación Global

ordena de modo ascendente según la coordenada x del menor vértice de la arista. De este
modo, cada entrada de la tabla contiene:

• La coordenada x del vértice con la coordenada y menor.

• La coordenada y del otro vértice de la arista.

• El incremento en x ( ∆x ) que se emplea para pasar de una línea de barrido a otra.

• El identificador del polígono al cual pertenece la arista.

También se construye una tabla de polígonos (TP), que contiene la siguiente


información de cada uno de ellos:

• Los coeficientes de la ecuación del plano en el que está contenido.

• Información sobre el color o el sombreado.

• Un indicador booleano inicializado a falso, el cual se empleará en el proceso de


barrido.

Por último se usa una tabla de aristas activas (TAA) —ordenada en x creciente— que
contiene a las aristas que son intersecadas por la línea de barrido actual.

Mostraremos el funcionamiento del algoritmo con la ayuda de la figura 2.4. Las


aristas se procesan de izquierda a derecha según se ve en el dibujo. Cuando la línea de

Autor: Yael Bobadilla Inclán 16


Radiosity, Un Modelo de Iluminación Global

Figura 2.4: Ejemplo de scan-line

barrido activa es α, en la TAA se encuentran AB y AC. Se comienza por la primera, el


indicador booleano del polígono pasa a verdadero, lo cual indica que es visible. De este
modo, se aplica la información de color y sombreado al tramo desde AB hasta la siguiente
arista activa AC (este es un ejemplo de coherencia de “tramo”). Al terminar se vuelve a
colocar a falso el indicador y se actualiza la TAA.

Cuando la línea activa es β las cosas se complican, ya que para x = t el indicador


booleano sería verdadero para los dos polígonos. Lo que se hace es determinar, con la
ecuación del plano, la coordenada Z para saber cual es el más cercano al observador en el

punto de intersección y = β y x = t . Este valor de x se encuentra en la TAA porque es


donde la línea de escaneo interseca con la arista DE. Después se sigue con el transcurrir
normal del algoritmo.

Según Romney, haciendo la suposición de que los polígonos en la escena no se


penetran unos a otros, podemos evitar cálculos de profundidad innecesarios empleando la
coherencia de profundidad. Si en la tabla de aristas activas en una determinada línea de
escaneo están las mismas aristas que en la línea anterior y además en el mismo orden, se
verifica que las relaciones de profundidad no han variado. De igual modo se pueden evitar los
cálculos cuando abandonamos un polígono oscurecido por otro.

Autor: Yael Bobadilla Inclán 17


Radiosity, Un Modelo de Iluminación Global

Surge entonces la pregunta de cómo tratar el color de fondo de la imagen


(background), para la que se han presentado varias alternativas:

• Inicializar el frame buffer al color deseado.

• Definirlo como un polígono.

• Modificar el algoritmo para que lo “pinte” cuando todos los indicadores booleanos
sean falsos.

Sobre la idea principal de los algoritmos de barrido de línea han surgido una multitud
de variaciones, pero este fue el algoritmo básico..

Algoritmos de subdivisión de área

Siguiendo la estrategia divide y vencerás, estos algoritmos examinan una


determinada parte de la imagen. Si no pueden decidir si es visible por completo la dividen en
áreas más pequeñas aplicando iterativainente esta idea. Explotan, por lo tanto, la coherencia
de área.

• Algoritmo de Warnock
Warnock, en cada ciclo, divide al área de interés en cuatro partes, a
continuación examina las relaciones que puede tener la proyección del polígono con
dicha área:

- La proyección puede rodear al área.

- La proyección y el área pueden intersecarse.

- La proyección puede estar contenida en el área.

- Por último, la proyección y el área pueden ser disjuntos.

Autor: Yael Bobadilla Inclán 18


Radiosity, Un Modelo de Iluminación Global

En principio, se trata de un algoritmo de precisión al objeto salvo la parte que trata al


fondo y recorta los polígonos contenidos en el área. Sin embargo, existen versiones que
eliminan estas técnicas de precisión a la imagen.

• Algoritmo de Weiler-Atherton
Se trata de un algoritmo posterior al de Warnock que emplea otra
estrategia distinta. Aquí el área se divide según las fronteras de los polígonos en vez de
recortarse en cuatro partes independientemente de su contenido. Por ello es necesario
un potente algoritmo de recorte de polígonos (clipping).
El primer paso, no obligatorio pero útil, es ordenar los polígonos según
la coordenada Z. El polígono más cercano se usa para clasificar al resto en dos grupos:
los polígonos (o fragmentos de tales) interiores y exteriores al primero. Aquellos
polígonos interiores pero más lejanos que el patrón son borrados de la lista, puesto que
no son visibles y no es necesario representarlos. Si existe alguna pieza de un polígono
por delante del patrón es porque el ordenamiento inicial no dio un orden de prioridad
correcto de modo que este se debe procesar iterativamente. Cuando esta división
termina,se representa el grupo de los interiores. Por último se continúa con el grupo de
los polígonos exteriores.

Algoritmos para octrees

Los octrees son un método de descomposición de un sólido en celdas idénticas. En


este caso se fragmenta el espacio donde se hallan los objetos y no los propios objetos. Como
ejemplo, mostramos en la figura 2.5 un cubo divido iterativamente en las tres dimensiones
(de ahí que se formen octantes). Se siguen subdividiendo aquellas partes que contienen
objetos que no son visibles por completo ni están ocultos por completo. Estas subdivisiones
se pueden representar en forma de árbol, de ahí el nombre de octree (octante + árbol).

Autor: Yael Bobadilla Inclán 19


Radiosity, Un Modelo de Iluminación Global

Figura 2.5: Cubo divido para formar un octree

Desde el punto donde se sitúa el observador V es posible encontrar una numeración


de los octantes o voxel que asegura que ninguno oscurecerá a otro especificado anteriormente
(en la figura de ejemplo esta numeración es 0,1, 2, 3, 4, 5, 6, 7). Además, debido a que
estamos tratando con cubos, en general serán visibles tres de sus caras que pueden ser
determinadas a partir del vector que une al observador V con el origen. Dicho vector se

denomina VPN del inglés view-plane normal. En la tabla 1.1 se muestra el ordenamiento de


los octantes y sus caras visibles determinadas por el signo de las coordenadas de VPN

donde R=derecha, L=izquierda, U=arriba, D=abajo, F=delante y B=detrás.

Como en algoritmos ya comentados, existen para este también numerosas


modificaciones y mejoras. Algunas, como la propuesta por Gargantini, no representa aquellos
octantes que van a quedar ocultos por otros y otras, como la de Meagher, emplea un
ordenamiento inverso, desde las partes más cercanas hacia las más lejanas de la escena.

Autor: Yael Bobadilla Inclán 20


Radiosity, Un Modelo de Iluminación Global

−−−→ Ordenamiento Caras visibles


VPN
X-
y-
z
-
7,6,5,3,4,2,1,0 B,D,L
- -
+ 6,7,4,2,5,3,0,1 B,D,R
- -
+ 5,4,7,1,6,0,3,2 B,U,L
-
+ + 4,5,6,0,7,1,2,3 B,U,R
- -
+ 3,2,1,7,0,6,5,4 F,D,L
-
+ + 2,3,0,6,1,7,4,5 F,D,R
-
+ + 1,0,3,5,2,4,7,6 F,U,L
+ + + 0,1,2,3,4,5,6,7 F,U,R

Tabla 2.1: Ordenamiento de los octantes y sus caras visibles

Algoritmos para superficies curvadas

Hablaremos a continuación de las superficies curvadas. Para su representación se


puede optar por una aproximación mediante polígonos, que deriva en una pérdida de calidad.
Por lo tanto se emplean otras representaciones, como la utilización de ecuaciones bicúbicas y
cuádricas.
Precisamente para estas últimas Weiss, Woon, Mabí, Levin y Sarraga desarrollaron
unos algoritmos para la determinación de la superficie visible en los cuales calculaban todas
las intersecciones de dos cuádricas. Ello conlleva resolver una ecuación de cuarto orden en x,
y, Z de forma numérica.
Catmull creó un algoritmo para bicúbicas basándose en la idea de Warnock. Divide
un área curva de un objeto en cuatro partes según los parámetros s y t que la definen hasta
que no ocupa más de un pixel. Un z-buffer determina qué fragmento es visible, se calcula
para él su color y se coloca en el frame buffer.
Una idea completamente diferente empleada en los algoritmos de Lane y Carpenter y
de Clark es la división adaptativa de un área hasta que sus fragmentos se puedan considerar
planos en un determinado régimen de tolerancia. Una vez llevada a cabo esta división estos
fragmentos son tratados como polígonos.

Autor: Yael Bobadilla Inclán 21


Radiosity, Un Modelo de Iluminación Global

Algoritmo de trazado de rayos (ray tracing)

Y por ultimo veamos el Algoritmo de trazado de rayos el cual se modifica un poco


cuando se aplica como modelo de iluminación global.
Los padres de este algoritmo son Appel, Goldstein y Nagel, aunque estos dos últimos
lo usaron primero para simular las trayectorias de partículas nucleares antes de pasar al
campo gráfico. La idea principal es elegir un centro de proyección y una ventana en el plano
de proyección, luego dicha ventana se divide por una rejilla cuyos elementos corresponden
directamente con los píxeles de la pantalla. Después se “lanza?’ un rayo desde el centro de
proyección —que podemos considerar como el ojo del observador— hacia la escena pasando
por el centro de un píxel. Acto seguido, se determina el color del objeto que interseca con el
rayo que está, a su vez, lo más próximo posible del píxel considerado.
Como se puede deducir de lo visto, resulta muy importante determinar la intersección
del rayo con el objeto. Para ello empleamos representaciones paramétricas. Cada punto

(x,y,z) a lo largo de la línea (rayo) que va desde P0 = ( x 0 , y 0 , z 0 ) hasta P1 = ( x1 , y1 , z1 ) está


definido por un valor de t tal que:

x = x 0 + t ⋅ ∆x ∆x = (x 1 - x 0 )
y = y 0 + t ⋅ ∆y con ∆y = (y1 - y 0 )
z = z 0 + t ⋅ ∆z ∆z = (z 1 - z 0 )

Si Po es el centro de proyección y P1 es el centro del píxel de la ventana, los valores


de t <0 son de puntos situados detrás del observador, aquellos t >1 son de puntos más allá del
plano de proyección mientras que el intervalo define la recta que une a los dos puntos
considerados.
Ahora necesitamos una representación adecuada del objeto para poder calcular la in-
tersección. Comenzaremos por ejemplo con una esfera de centro en (a, b, c) y de radio r:

( x − a ) 2 + ( y − b) 2 + ( z − c ) 2 = r 2

Sustituyendo la ecuación paramétrica del rayo en la ecuación de la esfera obtenemos:

Autor: Yael Bobadilla Inclán 22


Radiosity, Un Modelo de Iluminación Global

(∆x 2 + ∆y 2 + ∆z 2 )t 2 + 2( ∆x( x 0 − a ) + ∆y ( y 0 − b) + ∆z ( z 0 − c) ) + 
 ( x 0 − a ) 2 + ( y 0 − b) 2 + ( z 0 − c ) 2 − r 2 = 0

Si esta ecuación no tiene raíces reales es porque el rayo y la esfera no se intersecan.


Si la ecuación tiene dos soluciones reales se verifica que el punto de intersección más cercano
al píxel es el t menor. Notemos que es útil normalizar la distancia entre Po y P1 a uno pues
ello simplifica los cálculos.
Como veremos en el capítulo siguiente, es necesario calcular la normal de la
superficie en el punto de intersección para realizar los cálculos de sombreado del píxel. Para
este caso es fácil ya que se trata del vector que une el centro de la esfera con el punto de
intersección:

 ( x − a ) ( y − b) ( z − c ) 
 , , 
 r r r 

Consideremos ahora el caso de un polígono. En primer lugar, debemos comprobar si


el rayo interseca con el plano que contiene al polígono y luego ver si el punto de intersección
está dentro de los limites del mismo. La ecuación de un plano es:

Ax + By + Cz +D = O

Introduciendo nuevamente la ecuación paramétrica del rayo en la del objeto obtenemos:

Ax 0 + By 0 + Cz 0 + D
t=−
A∆x + B∆y + C∆z + D
Si el denominador es nulo es porque el rayo y el plano son paralelos y no tienen
ningún punto en común. Para realizar el segundo paso, comprobar si el punto de intersección
cae dentro del polígono, se puede aplicar alguno de los distintos algoritmos existentes para tal
fin.

Autor: Yael Bobadilla Inclán 23


Radiosity, Un Modelo de Iluminación Global

Capítulo 3

Iluminación y sombreado
En este capítulo trataremos de explicar como se sombrean las superficies de los
objetos basándonos en sus características, así como en las de las fuentes de luz existentes en
el entorno.

Mientras que los modelos de iluminación son empleados para asignar un color a cada
punto de la superficie de un objeto, los modelos de sombreado forman parte de un marco más
amplio donde tienen cabida los primeros como “funciones” que son llamadas cuando se
precisa. Los modelos de sombreado emplean los cálculos de la intensidad dados por los
modelos de iluminación para todos los píxeles de una escena.

Muchos de los modelos empleados no tienen ninguna base física, son modelos que,
simplemente, funcionan bien en la práctica. A continuación, empezaremos hablando de
algunas de estas técnicas sin base física muy fuerte, y que sin embargo, sirven para modelar
efectos muy diversos como iluminaciones, pequeños detalles de las superficies, zonas
ensombrecidas, transparencias y reflexiones entre objetos. Después, nos centraremos en
modelos con un desarrollo teórico más cuidado para describir fuentes de luz extendidas,
efectos producidos por las cámaras reales y modelos de iluminación más complejos, como el
de radiosity.

Autor: Yael Bobadilla Inclán 24


Radiosity, Un Modelo de Iluminación Global

3.1 Modelos de iluminación


Durante esta sección se describirán las técnicas de iluminación, y de como el modelo
se va cambiando conforme se va pasando por cada una de estas.
Luz ambiental
Se trata del modelo más sencillo posible. Se asume que cada objeto tiene una
intensidad luminosa intrínseca a él. Los objetos son “auto-luminosos” y no reflejan la luz. Si
queremos expresar este modelo por medio de una ecuación, esta será de la forma:

I = ki

donde 1 es la intensidad resultante y k1 es el coeficiente de intensidad intrínseca del objeto.


Como se puede observar, esta expresión no posee dependencias con el punto que está siendo
iluminado, por lo que es un modelo muy simple.
Podemos modelar la luz ambiental como una fuente difusa y no direccionada,
producto de múltiples reflexiones de la luz en todas las superficies del entorno. Además,
suponemos que la dicha luz impregua de igual modo a todas las superficies. Entonces el
modelo de iluminación será:
I = I ak a

donde Ia es la intensidad de la luz ambiental constante para todos los objetos y ka es un


coeficiente (entre O y 1) que indica la cantidad de luz reflejada por dicho objeto. No tiene
correspondencia con ninguna propiedad real del material por el cual está constituido el
objeto. Recibe el nombre de coeficiente de reflexión ambiental.

Reflexión difusa

Consideramos ahora un tipo de reflexión causada por una fuente de luz puntual cuyos
rayos emanan en todas direcciones de modo uniforme. Se trata de una buena aproximación
para aquellas fuentes cuyo tamaño sea pequeño comparado con el del resto de los objetos del
entorno.

Autor: Yael Bobadilla Inclán 25


Radiosity, Un Modelo de Iluminación Global

• Reflexión Lambertiana
Este tipo de reflexión la exhiben superficies opacas y mates como la de
la tiza. Estas superficies aparecen igualmente brillantes desde todos los puntos de vista
porque reflejan la luz con igual intensidad en todas direcciones. Para empezar con el
modelado, digamos que el brillo en un punto (figura 3.1) depende sólo del ángulo θ

entre la dirección L de la fuente de luz y la normal a la superficie en ese punto.

Examinemos ahora un haz de luz que incide sobre una superficie


cualquiera (como en la figura 3.2). Dicho haz cubre un área inversamente proporcional
al coseno de θ. De este modo e independientemente del material de la superficie, la
energía en forma de luz incidente sobre un diferencial de área (dA) será proporcional al
coseno de θ.
Además, estas superficies cumplen la llamada ley de Lambert (figura
3.2): La cantidad de luz reflejada por un dA hacia la dirección donde se encuentra un
observador es proporcional al coseno del ángulo entre esa dirección y la normal a la
superficie. Pero si tenemos en cuenta que la cantidad de área vista por el observador es
inversamente proporcional a ese factor, la ley de Lambert nos dice que ambas
contribuciones se cancelan. De este modo, la cantidad de luz (resultado de la reflexión
difusa) vista por un observador es independiente de la situación de este y proporcional
al coseno de θ, lo cual se refleja en la ecuación que modela a la iluminación difusa:

I = I p k d cosθ

Figura 3.1: Modelado de la reflexión

Autor: Yael Bobadilla Inclán 26


Radiosity, Un Modelo de Iluminación Global

Figura 3.2: Ley de Lambert

donde Ip es la intensidad de la fuente puntual de luz, kd es el llamado coeficiente de


reflexión difusa del material comprendido entre 0 y 1. El ángulo θ debe variar entre
00 y 900 para que la luz tenga un efecto directo en el punto que se sombrea. Si tanto
→ →
N como L están normalizados podemos expresar la ecuación anterior del siguiente
modo:
→ →
I = I p k p ( N ⋅ L)

• Atenuación de la fuente de luz


El modelo anterior no tiene en cuenta la distancia entre la fuente de luz
y los distintos puntos de los objetos. Trataremos de mejorar la solución anterior
introduciendo un factor de atenuación de la fuente de luz (fatt):

I = I a k a + f att I p k p cosθ

Existen diferentes elecciones para este factor. Una de ellas es que sea
la inversa del cuadrado de la distancia a la fuente de luz por el hecho de que la energía
cae con esa razón:
1
f att =
d L2

Autor: Yael Bobadilla Inclán 27


Radiosity, Un Modelo de Iluminación Global

Sin embargo, esta elección no funciona muy bien ya que tiene una
velocidad de cambio muy lenta para largas distancias y muy rápida para cortas. El
factor que se suele emplear siempre es:

 1 
f att = min ,1
 c1 + c 2 d L + c3 d L
2

donde los factores cj son característicos de cada fuente de luz. El 1 se coloca para
asegurar que el factor siempre atenúe.

• Superficies y luces de color


Se pueden tratar las superficies y luces de color escribiendo ecuaciones
separadas para cada componente del color. Por ejemplo, en el sistema RGB tendremos
tres coeficientes (OdR,,OdG,,OdB) para describir cada objeto con tres ecuaciones de
iluminación, una por cada componente. De esta manera estamos haciendo la suposición
incorrecta de que podemos describir completamente la interacción entre la luz y los
objetos con estos tres coeficientes, pero aunque sea incorrecta con ella se obtienen
buenos resultados. También se puede incluir una dependencia con la longitud de onda
de la fuente a través de aquellos términos de las ecuaciones que tengan un A como
subíndice. Por ejemplo:
→ →
I λ = I aλ k a Odλ + f att I pλ k d Odλ ( N ⋅ L)

Atenuación atmosférica

El modelado de este efecto se puede realizar mediante la implementación de una


“cola de profundidad” para que los objetos más distantes se rendericen con menos intensidad
que los más cercanos.
Se interpola entre el valor de la intensidad hallado por algún otro método y el almace-
nado en la cola.

Autor: Yael Bobadilla Inclán 28


Radiosity, Un Modelo de Iluminación Global

Reflexión especular

Se trata de un efecto muy conocido como es, por ejemplo, el del brillo de una
manzana. Se trata de la total o casi total reflexión de la luz incidente en un región
concentrada. Comentemos algunas cosas acerca de este efecto. En primer lugar es de un color
distinto al de la manzana y en segundo lugar si cambiamos nuestro punto de vista dicho brillo
también se mueve. Ambos efectos tienen una fácil explicación: el color del brillo será aquel
propio de la fuente de luz, mientras que el movimiento se explica por el hecho de que la
superficie refleja de modo distinto la luz en diferentes direcciones.

Figura 3.3: Diagrama de la reflexión especular

En cambio, en superficies muy pulimentadas, como el caso de un espejo (ver figura


3.3), este efecto sólo se ve cuando la dirección del observador (V ) y de la luz reflejada


coinciden (R ) , es decir, cuando α = 0. Es decir, los objetos que no son reflectores ideales

presentan reflexiones en un intervalo finito de ángulos alrededor del ángulo de reflexión


especular, sin embargo, las superficies muy brillantes tienen un rango de reflexión reducido.

 Modelo de iluminación de Phong


Se trata de un modelo para superficies reflectoras no perfectas que
supone un máximo en α=0 y una calda aproximada por cosn α cuando a crece. El
coeficiente n recibe el nombre de exponente de reflexión especular del material y varía
entre 1 (un punto brillante difuso) y varios cientos (un punto muy localizado). Por
ejemplo, para el caso de un espejo su valor sería infinito.
Si llamamos W(θ) a la fracción de luz incidente reflejada especularmente, la expresión
para la intensidad queda de la siguiente forma:

Autor: Yael Bobadilla Inclán 29


Radiosity, Un Modelo de Iluminación Global

 → → → →

I λ = I aλ k a Odλ + f att I pλ  k d Odλ ( N ⋅ L) + W (θ )( R⋅ V ) n 
 
Para superficies opacas W(θ) es constante para cualquier ángulo de incidencia por lo
que se suele cambiar por un factor llamado coeficiente de reflexión especular (Ks) que
se selecciona para producir los resultados deseados. También se puede introducir una
dependencia del brillo con el material del objeto a través del factor de color especular
del objeto (Os):

 → → → →

I λ = I aλ k a Odλ + f att I pλ  k d Odλ ( N ⋅ L) + k s Osλ ( R⋅ V ) n 
 

Fuentes de luz múltiples

Si en un entorno se encuentran varias fuentes simplemente se suman sus


contribuciones:

 → → → →

I λ = I aλ k a Odλ + ∑
1≤i ≤ m
f atti I pλi  k d Odλ ( N ⋅ Li ) + k s Osλ ( Ri ⋅ V ) n 
 

Puede darse el caso de que el valor de la intensidad de un pixel así calculado supere
lo representable, lo que se entenderla como un overflow. Se puede evitar con una buena
elección de los coeficientes y del factor de atenuación de la fuente (fatt).

3.2 Modelos de sombreado para polígonos

Sombreado constante (o plano)

Este modelo simple infiere el sombreado de un polígono completo del resultado de


un modelo de iluminación aplicado a uno solo de sus puntos. La generalización será válida si
se dan varias condiciones:
→ →
1. La fuente está en el infinito, lo que implica que N ⋅ L es constante en el polígono.
→ →
2. El observador está en el infinito, es decir, N ⋅V es constante en el polígono.

Autor: Yael Bobadilla Inclán 30


Radiosity, Un Modelo de Iluminación Global

3. El polígono no forma parte de una aproximación a una superficie curvada.

Aunque alguna de las dos primeras condiciones falle se puede seguir aplicando este
→ →
modelo con un valor constante de L⋅V , aunque, por supuesto, no se van a obtener los

mismos resultados.

Sombreado interpolado

Wylie, Romney, Evans y Erdahí fueron los primeros en aplicar esta técnica que
consiste en interpolar linealmente la información de sombreado de la tripleta de valores de
los vértices de un triángulo. Más tarde Gouraud generalizó el método para polígonos
arbitrarios.

Sombreado de redes de polígonos

A la hora de aplicar un método de sombreado a una red de polígonos que simulan una
superficie curva, pensaríamos hacerlo de modo individual, polígono a polígono, pero esto no
proporcionaría los resultados esperados. El empleo de una red más fina empeoraría la
situación porque exageraría los cambios de intensidad en las discontinuidades debido al
llamado efecto de banda de Mach que consiste en la inhibición lateral de los receptores del
ojo humano. Para evitarlo, se adquiere información de los polígonos adyacentes para simular
una superficie suavizada.
Las estaciones de trabajo 3D actuales llevan implementadas en su hardware y
firmware algunos de estos modelos.

Sombreado de Gouraud

También llamado sombreado de interpolación de color, extiende el concepto de


interpolación. Requiere que las normales de cada vértice de una red de polígonos sean
conocidas. Si no lo son, propone un método para su cálculo mediante el promediado de las
normales de todos los polígonos que comparten a un vértice determinado, como se puede
apreciar en la figura 3.4.

Autor: Yael Bobadilla Inclán 31


Radiosity, Un Modelo de Iluminación Global

Figura 3.4: Promedio de las normales de un vértice V

A continuación, se calculan las intensidades de los puntos correspondientes a dichos


vértices mediante la aplicación del modelo de iluminación deseado. Acto seguido se continúa
el cálculo del sombreado con las aristas, interpolando los valores ya conocidos de los
vértices. Para hallar el valor de la intensidad de los puntos internos de los polígonos se
emplean los algoritmos de barrido de línea ya estudiados.

Figura 3.5: Interpolación de la normal

Sombreado de Phong

También es conocido como sombreado de interpolación del vector normal, ya que



interpola N en vez de la intensidad como hace Gouraud (figura 3.5).

La interpolación ocurre en un tramo perteneciente a una línea de barrido entre las


normales del punto inicial y final del tramo. Estas, a su vez, son calculadas a partir de las
normales de los vértices. La interpolación de las normales de las aristas se puede realizar de
modo incremental de una línea de barrido a la siguiente.

Autor: Yael Bobadilla Inclán 32


Radiosity, Un Modelo de Iluminación Global

En este caso a cada píxel se le aplica el modelo de iluminación, obteniéndose mejores


resultados que con el modelo de Gouraud ya que se reduce el efecto de banda de Mach.
Dicha mejora puede ser incrementada si el modelo de iluminación empleado contiene un
término de reflectancia especular porque de esta forma se consiguen mejores brillos. Estas
ventajas tienen una contrapartida negativa y es el aumento del costo computacional que
supone la normalización de los vectores cada vez que se emplea el modelo de iluminación.

3.3 Detalles de la superficie

Polígonos de detalle

La primera aproximación para tratar los detalles de las superficies es implementarlos


como polígonos aparte (puertas, ventanas, etc.). Cada polígono detalle es coplanar con el
polígono base y se marcan para no ser comparados en los algoritmos de determinación de la
superficie visible.

Mapeado de texturas

Si los detalles son más finos y complicados que una puerta o una ventana es mejor
mapear una imagen, ya sea digitalizada o sintetizada sobre la superficie. Dicha imagen recibe
el nombre de texture map y sus componentes individuales texels.

El proceso tiene dos pasos. Primero, las cuatro esquinas de un pixel con coordenadas
(x, y) se mapean a la superficie del objeto en cuestión con coordenadas (s, t). Luego, estas
mismas son llevadas al sistema de la textura, llamado mapa de textura con coordenadas (u,
v). El valor del color que recibe el pixel se determina promediando el valor correspondiente a
los texels que caen dentro del rectángulo que se forma con las cuatro esquinas mapeadas.

Bump Mapping

Si la textura es una fotografía de una superficie áspera, en general no se obtendrá un


buen resultado debido a que la dirección de la luz de la fotografía y la de la luz que ilumina a
la superficie es distinta. Un modo de intentar paliar este efecto es modificar levemente la
normal de la superficie antes de que se le aplique el modelo de iluminación. Un map bump es
Autor: Yael Bobadilla Inclán 33
Radiosity, Un Modelo de Iluminación Global

un array de desplazamientos, cada uno de los cuales puede ser empleado para simular un
pequeño desplazamiento de un punto sobre una superficie.

3.4 Implementación de zonas de sombra

La manera de implementar las sombras es sencilla: aquellas zonas de la escena que


no son visibles desde el punto de vista de la fuente de luz esta bajo sombra. Por lo tanto, los
algoritmos de determinación de la superficie visible y los de implementación de sombras son
en esencia los mismos, únicamente se diferencian en el punto desde el cual se aplican (el
observador o la fuente de luz). Cuando existen varias fuentes, las superficies son clasificadas
respecto a cada una de ellas.
Si estamos tratando con fuentes puntuales de luz, la visibilidad es del tipo todo o
nada. Por ello, cuando un punto no se ve desde la fuente debe tenerse en cuenta en los
modelos de intensidad:

 → → → →
n
I λ = I aλ k a Odλ + ∑
1≤i ≤ m
S f I
i atti pλi 

k O
d dλ ( N ⋅ Li ) + k O
s sλ ( Ri ⋅V ) 

donde:
0 si la luz no llega a este punto
Si = 
1 si la luz llega a este punto
Indicar aquí que la luz ambiental llega a todos los puntos, como se ve en la ecuación
anterior. Diremos también que es posible hacer una aproximación proyectando los objetos
desde la fuente de luz en el plano del suelo.
A continuación, describimos algunos de los algoritmos más recurridos a la hora de
implementar las sombras.

Generación de sombras con líneas de barrido

Usando la fuente de luz como centro de proyección, se proyectan aquellos polígonos


que van a ensombrecer a aquellos que están siendo dibujados por la línea de barrido actual.
Tal proyección se realiza sobre los mismos polígonos que ensombrecen como se puede
apreciar en la figura 3.6.

Autor: Yael Bobadilla Inclán 34


Radiosity, Un Modelo de Iluminación Global

Figura 3.6: Generación de sombras con líneas de barrido

Este proceso requiere llevar a cabo n(n-1) proyecciones si n es el número de


polígonos. Por ello Bouknight y Kelly desarrollaron un método para mejorar la eficiencia de
esta técnica. Proyectaron todos los polígonos sobre una esfera que rodea a la fuente, de esta
manera se pueden eliminar todos aquellos pares de polígonos cuyos extendidos no se solapan,
así como un gran número de casos simples fácilmente identificables. A continuación, se
proyectan los polígonos que van a crear sombra y se obtiene una información que se aplica en
un barrido de línea paralelo al que se realiza para dibujar los polígonos visibles.

Algoritmo de sombreado de precisión al objeto de dos pasadas

Este algoritmo fue desarrollado por Atherton, Weiler y Greenberg. Recibe este
nombre debido a que se aplica el mismo algoritmo dos veces, una desde el punto donde se
halla el observador y otra desde la fuente de luz. De esta forma, se combinan los resultados
para determinar qué superficies visibles son iluminadas. Los cálculos para la determinación
de las sombras se realizan una sola vez, independientemente del número de puntos de vista
que se tomen de la escena.

En primer lugar, se aplica el algoritmo de Weiler-Atherton desde la fuente para


obtener una lista de las partes de los polígonos visibles desde ese punto, que se corresponden
con las superficies iluminadas. Luego, esta lista se introduce como polígonos detalle a la lista

Autor: Yael Bobadilla Inclán 35


Radiosity, Un Modelo de Iluminación Global

de superficies original, creándose así una base de datos independiente del observador. A
continuación se vuelve a aplicar el algoritmo de Weiler-Atherton desde el punto donde se
halle el observador. Para finalizar, aquellos polígonos visibles para el observador y que están
cubiertos con un polígono detalle se renderizan como iluminados mientras aquellos otros que
no lo están se tratan como sombras. Esta renderización se realiza mediante un algoritmo de
barrido.

Algoritmo de sombreado z-buffer de 2 pasadas

Fue Williams quien desarrolló esta técnica que aplica dos veces el algoritmo z-
buffer. En primer lugar lo hace desde la fuente de luz, para a continuación aplicarlo desde el
observador con una modificación. Cuando un pixel es visible se llevan sus coordenadas

( x 0 , y 0 , z 0 ) al sistema de la fuente con coordenadas ( x 0′ , y 0′ , z 0′ ) Las coordenadas x0′ , y 0′ de


.

este pixel sirven para buscar en el buffer de la fuente la coordenada z L correspondiente a

ellas y compararla con z 0′ Si z L está más cercano a la luz que z 0′ entonces hay algo que
.

bloquea la luz y el punto se sombrea.


De este modo podemos pensar en el z-buffer realizado desde la fuente como un mapa
de sombras. Como siempre ocurre con el z-buffer, los cálculos para la determinación de la
sombra se pueden desperdiciar si el pixel para el que se hacen se “cubre” más tarde con otro
objeto más cercano.

3.5 Reflexiones entre objetos

Blinn y Newell, tratando de modelar estos efectos, desarrollaron el llamado mapeado


de reflexiones. Se elige un centro de proyección desde el cual mapear la escena que se refleja
sobre una esfera que rodea a los objetos a renderizar. El entorno mapeado se trata como si
fuese una textura, en donde se eligen unas coordenadas polares para indexar los puntos que se
colocarán en los objetos a representar. Existe una variante en la cual se emplean cubos en vez
de esferas a la hora de proyectar la escena.
De todos modos se trata de una aproximación, pues sólo se emplea la dirección de la
reflexión en la esfera que rodea al objeto y no su posición exacta en esta.

Autor: Yael Bobadilla Inclán 36


Radiosity, Un Modelo de Iluminación Global

3.6 Modelos de iluminación basados en leyes físicas

Los modelos de iluminación que describiremos en esta sección, a diferencia de los


mencionados en el apartado 2.1, poseen un desarrollo teórico más cuidado, por lo que en
primer lugar definiremos explícitamente algunos términos que usaremos de aquí en adelante:

Flujo. Es la razón a la cual se emite la luz. Se mide en vatios (W).

Ángulo sólido. Es el ángulo en el vértice de un cono que se mide en términos del área
interceptada por este. Su unidad de medida es el estereorradián (sr) que es el ángulo
sólido del cono tal que intercepta un área de esfera igual al cuadrado de su radio.

Intensidad radiante. Es el flujo radiado por ángulo sólido (W/sr).

Brillo (radiance). Inteusidad por unidad de área proyectada en un plano perpendicular a la


dirección de radiación (W/srm2) .

Densidad de flujo. Es el flujo incidente por unidad de área (W/m2).

Figura 3.7: Relación entre la luz incidente y la luz reflejada

Autor: Yael Bobadilla Inclán 37


Radiosity, Un Modelo de Iluminación Global

Trataremos de hallar una relación entre la luz incidente y la reflejada. Para ello consi-
deremos la figura 3.7. Vemos que la densidad de flujo incidente es:

→ →
Ei = I i ( N ⋅ L)dω i

Definimos la reflectividad bidireccional como la razón de la intensidad refractada y


la densidad de flujo incidente:

Ir
ρ=
Ei

Despejando la intensidad reflejada y sustituyendo la expresión que tenemos para la


densidad obtenemos:

→ →
I r = ρI i ( N ⋅ L)dω i

Volviendo al concepto de reflectividad direccional, se suele considerar que está


compuesto por dos componentes, una de difusión y otra especular:

ρ = kd ρd + ks ρs

con k s + k d = 1 . Esta descomposición no es aplicable a todas las superficies.

De momento modelaremos el término ambiental como ρ a I a , donde ρ a es la


reflectimdad ambiental no direccional. De todo lo dicho el resultado de la iluminación
proveniente de n fuentes de luz es:

→ →
Ir = ρa Ia + ∑ I j ( N ⋅ L j )dω j (k d ρ d + k s ρ s )
1≤ j ≤ m

Con el objeto de mejorar el modo de modelar las superficies se desarrollaron varios


métodos de acuerdo a las leyes físicas existentes para describirías.

Autor: Yael Bobadilla Inclán 38


Radiosity, Un Modelo de Iluminación Global

3.7 Fuentes de luz extendidas

Hasta el momento siempre se han supuesto las fuentes de luz como puntuales por su
mayor sencillez a la hora de modelarlas. Sin embargo, estas fuentes no se encuentran
normalmente en las escenas que se quieren reproducir por lo que se han desarrollado modos
de imple-mentar fuentes de luz extendidas o distribuidas. Estas van a crear dos tipos de
fenómenos: la sombra y la penumbra, como se puede ver en la figura 3.8. La parte del
espacio parcialmente bloqueada de la luz es la penumbra. Estas fuentes se pueden modelar
como una sucesión de fuentes puntuales, pero esto es costoso computacionalmente.

Figura 3.8. Efectos de sombra y penumbra

Nishita y Nakmae desarrollaron una aproximación que extiende el concepto de volú-


menes sombra para modelar estas fuentes con distribuciones de intensidad lambertianas.
Calculan los volúmenes sombra de cada vértice de la fuente para asignar como zona de
sombra la intersección de todos ellos. Para determinar el color de un punto en penumbra se
calculan aquellas partes de la fuente visibles desde dicho punto.

Autor: Yael Bobadilla Inclán 39


Radiosity, Un Modelo de Iluminación Global

3.8 El modelo de cámara

Trataremos de introducir los efectos que producen las lentes (incluidos los ojos)
cuando captan una imagen:

 Profundidad de campo
Produce que los objetos parezcan más o menos focalizados según su
distancia a la lente. La distancia a la cual una lente focaliza perfectamente un objeto
se llama distancia focal F. Potmesil y Chakravarty desarrollaron un procesado para la
simulación de este efecto. Primero se renderiza normalmente la imagen pero
almacenando la coordenada z de cada punto. A continuación se muestrea una serie de
puntos cuyo entorno se “desenfoca” según el valor de z y de la apertura de lente
deseada. La imagen final se calcula como una media pesada de las contribuciones de
los píxeles desenfocados.
 Desenfoque por movimiento
Para simular este efecto es necesario resolver el problema de la
determinación de la superficie visible en el tiempo y en el espacio. Korein y Badíer
emplearon dos aproximaciones: un algoritmo analítico que empleaba funciones
continuas para modelar el movimiento de los objetos a lo largo del tiempo y un
sobremuestreado temporal mediante la renderización de imágenes separadas.
Potmesil y Chakravarty también mejoraron su modelo para incluir este efecto.

3.9 Algoritmos de iluminación global

La iluminación global de un punto está constituida por toda la luz que le llega de las
fuentes (iluminación local) más aquella que viene reflejada de otras superficies.
Se emplean dos clases distintas de algoritmos para modelar la iluminación
global. Por una parte algoritmos que, al mismo tiempo, realizan la determinación de
la superficie visible y calculan el sombreado, como es el caso del algoritmo de
trazado de rayos, que a su vez es dependiente del punto de vista de la escena. Por otra
parte, algoritmos como el de radiosity son independientes del observador y realizan
de forma separada los cálculos de sombreado y visibilidad.

Autor: Yael Bobadilla Inclán 40


Radiosity, Un Modelo de Iluminación Global

Ambos grupos tienen ventajas e inconvenientes. Los algoritmos dependientes son


adecuados para simular reflexiones especulares (que son muy dependientes del observador),
pero necesitan mucho cálculo a la hora de modelar la reflexión difusa. Con los otros ocurre lo
contrario.
Todos ellos tratan de resolver la que Kajiva llama la ecuación de renderizado,
que expresa la luz que es transferida de un punto a otro en términos de la intensidad
emitida del primero al segundo y también en términos de la luz emitida desde todos
los puntos que se refleja en el primero y llega al segundo:

(
I ( x, x ′) = g ( x, x ′) ∈ ( x, x ′) + ∫ ρ (( x, x ′, x ′′) I ( x ′, x ′′))dx ′′
s
)
Donde:

 x, x’, x” son puntos del espacio.

 I(x, x’) es la intensidad de la luz que pasa de x’ a x.

 g(x, x’) es el término geométrico que es 0 si los puntos están ocultos entre sí y vale
1/d2 cuando no existen obstáculos entre ellos (d es la distancia que los separa) .

. ∈(x, x’) es la intensidad que emite x’ y llega a x.

. S son las superficies sobre las que se integra.

 p(x, x’, x”) es la intensidad de la luz reflejada desde x” a x a través de la superficie en


x’ .

En la siguiente sección describiremos el algoritmo de trazado de rayos, dejando la


descripción de los algoritmos de radiosity para el capítulo 4, con el fin de tratarlos con mayor
profundidad.

3.10 Trazado de rayos recursivo

Vamos ampliar el algoritmo de ray tracing explicado para que también simule
sombras, reflexiones y refracciones mediante cualquiera de los modelos de iluminación de los
que hemos hablado.
Para calcular las sombras, se traza un rayo desde el punto que se está evaluando hasta
la fuente de luz puntual. Si dicho rayo no interseca con ningún objeto entonces dicho punto

Autor: Yael Bobadilla Inclán 41


Radiosity, Un Modelo de Iluminación Global

no estará en sombra.
Whitted y Kay desarrollaron un modelo que incluía los efectos de reflexión especular
y transparencia refractiva. Cuando un rayo lanzado desde el observador choca con un punto
el algoritmo lanza a su vez tres rayos: uno para determinar si el punto está ensombrecido, otro
en la dirección de reflexión y otro en la dirección de transmisión si tiene lugar la refracción.
Son los llamados rayos secundarios. A los dos últimos se les aplica recursivamente el
algoritmo hasta que no haya más intersecciones o se alcance algún máximo de profundidad.
Se forma así un árbol de rayos.
La ecuación de iluminación que emplea Whitted es:

 → → → →

I λ = I aλ k a Odλ + ∑S
1≤i ≤ m
i f atti I pλi  k d Odλ ( N ⋅ Li ) + k s ( N ⋅ H i ) n  + k s I rλ + k t I rλ
 

donde se añade la contribución del rayo reflejado ( k s I rλ ) y del rayo transmitido ( k t I rλ ) Para .

simular la atenuación con la distancia el valor asignado al pixel es el resultado de dividir I λ


por la distancia. Por último, no emplea una función todo o nada para Si, sino que usó una
función continua para que los objetos transparentes oscurezcan menos que los opacos las
zonas ensombrecidas.
Este algoritmo tiene también sus problemas como es el hecho de que los rayos que se
emplean para determinar si un objeto está en sombra (rayos sombra) no se refractan cuando
atraviesan un material. También se tiene dificultades con la precisión numérica a la hora de
calcular parámetros de los rayos secundarios, ya que pueden crearse falsas colisiones con el
mismo objeto del que parten.

3.11 Renderización

En este capitulo hemos examinado diferentes modos de llevar a cabo la


determinación de superficies visibles, la iluminación y el sombreado, además de modelar
diferentes efectos que proporcionan un mayor realismo a las escenas. Precisamente, la gran
cantidad de algoritmos existentes para realizar tales tareas produce una diversidad muy
grande de escenas empleando una misma descripción de partida. El uso de unas técnicas u

Autor: Yael Bobadilla Inclán 42


Radiosity, Un Modelo de Iluminación Global

otras dependerá de los objetivos del usuario.


Los pasos necesarios para la generación de la escena (su renderización) van a diferir
dependiendo de los algoritmos que usemos. Como ejemplo, describiremos el proceso de
renderización de un algoritmo radiosity. El proceso se representa en la figura 3.9.
En primer lugar, se recorre la base de datos original (descripción de la escena) En .

este paso, se suele aplicar alguna transformación sobre las coordenadas de entrada. En
nuestro caso no es así, pero se aprovecha para crear un árbol binario de distribución espacial
(BSP). A continuación, se aplica el algoritmo concreto de radiosidad para calcular la
intensidad de los vértices de los polígonos. Con ello, se obtiene una nueva base de datos, que
en este caso será independiente del observador. Posteriormente, se eliminan los polígonos que
caen totalmente fuera de la ventana de visualización y se efectúa la eliminación de caras
posteriores. Como último paso, se deben aplicar una serie de transformaciones para llevar las
coordenadas 3D (las empleadas en el algoritmo) a las coordenadas 2D del dispositivo de
salida. Estas tranformaciones ya las hemos descrito antes y se muestran en la figura 3.9.

Figura 3.9: Proceso de renderización basado en radiosidad.

Autor: Yael Bobadilla Inclán 43


Radiosity, Un Modelo de Iluminación Global

Capítulo 4

Algoritmos de radiosidad

En el este capítulo se hará una introducción a los métodos de radiosidad (radiosity)


planteando en primer lugar la ecuación de radiosidad, para después analizar el cálculo de uno
de sus términos más importantes: el factor de forma.

4.1 Métodos de radiosidad

A diferencia del trazado de rayos, que emplea un término de iluminación ambiental


no direccionado, existen otras aproximaciones que no lo usan. La iluminación ambiental se
trata mediante la utilización de modelos térmicos, proporcionando a la vez un tratamiento
más exacto de las reflexiones entre los objetos.
Los primeros modelos de radiosidad que fueron implementados son los de Goral,
Torrance, Greenberg, Battaile, Nishita y Nakamae. En ellos se asume la conservación de la
energía en un entorno cerrado. La luz que abandona una superficie (su radiosidad) se
descompone, por una parte, en la luz emitida por ella misma y por otra en la reflejada o
transmitida proveniente de otras superficies (la luz incidente).

Autor: Yael Bobadilla Inclán 44


Radiosity, Un Modelo de Iluminación Global

Se trata de un modelo independiente del observador, se determinan todas las


interacciones de la luz independientemente del punto de vista para, a continuación, renderizar
desde cualquier lugar la escena con la única tarea adicional de determinar las superficies
visibles y el sombreado interpolado.
Para comenzar con el modelo de iluminación radiosity definiremos la ecuación de
radiosidad. Pero antes, el primer paso a seguir es subdividir las superficies del ambiente en
elementos, esto es llamado comúnmente mallado.
Una meta importante cuando creamos un amallado es producir una
aproximación con la precisión querida tan barato como sea posible.

La ecuación de radiosidad

Seguiremos el planteamiento debido a su sencillez y claridad. Comenzaremos


diciendo que se considera a todas las superficies emisoras de luz, de modo que las fuentes se
tratan igual que los demás objetos. Determinar la cantidad de luz que abandona una superficie
requiere una completa especificación de las relaciones geométricas entre todas las superficies
y de la luz que abandonan todas ellas. Esta relación para una superficie i viene dada por:

Radiosidad i = Emisión i + Reflectividad i ∫ Radiosidad


Entorno
j ⋅ Factor de forma j-i

Bi = Ei + ρ i ∫ B j F j −i (4.1)

donde B1 y B, son las radiosidades de las áreas i y j medidas en W/m2, E1 es la razón a la cual
se emite la luz desde i, y ρi es la reflectividad y es adimensional. Fj-i, también adimensional,
es el factor de forma y especifica la fracción de energía que abandona j y llega a i teniendo
en cuenta sus formas y orientación relativa además de posibles obstáculos.
Para llevar a cabo los cálculos, el entorno se divide en n zonas discretas o patches de
área A, para los cuales se asume una radiosidad constante. La integral sobre el entorno se
transforma así en un sumatorio sobre los patches:

Bi Ai = E i Ai + ρ i ∑A B F
1≤ j ≤ n
j j j −i (4.2)

Autor: Yael Bobadilla Inclán 45


Radiosity, Un Modelo de Iluminación Global

En el algoritmo se observan dos etapas diferenciadas. La primera consiste en el


cálculo de los factores de forma que son puramente geométricos. El factor de forma es
proporcional al ángulo sólido subtendido por el emisor desde un punto del elemento que
recibe la luz asumiendo que todos los puntos del emisor son visibles desde el receptor. El
factor de forma entre dos áreas infinitesimales dAi y dAj, se puede expresar del siguiente
modo (figura 4.1):
cosθ i cosθ j
dFdi −dj = H ij dA j
πr 2

donde Hij es 1 o 0 dependiendo si dAj es visible desde dAi o no. Para calcular el factor de
forma desde el diferencial de área dAi al área finita Aj integramos:

cosθ i cosθ j
Fdi − j = ∫
Aj πr 2
H ij dA j

Figura 4.1: Diagrama para el cálculo de los factores de forma

Asumiendo que el punto central de la zona representa a toda esta, Fi-j puede ser
aproximada por Fdi-j calculada en el centro de la zona. Si no el valor correcto será:

1 cosθ i cosθ j
Fi − j =
Ai ∫ ∫
Ai Aj πr 2
H ij dA j dAi

Hemos de añadir que para entornos cerrados, donde toda la energía que abandona una
superficie llega a otra, los factores de forma suman la unidad:

∑F
1≤i ≤ n
i− j = ∑ F j −i = 1
1≤ j ≤ n

Autor: Yael Bobadilla Inclán 46


Radiosity, Un Modelo de Iluminación Global

Además, el principio de reprocidad establece que la cantidad de luz intercambiada


entre el emisor y el receptor permanece invariante si se cambian sus papeles:
Ai Fi − j = A j F j −i (2.3)

Se han desarrollado un gran número de métodos para el cálculo computacional de los

factores de forma. Nusselt demostró que calcular Fdi − j es equivalente a proyectar aquellas

partes de Aj que son visibles desde dAi sobre un hemisferio unidad centrado en dAi, proyectar
nuevamente esta área sobre el cfrculo unidad creado y dividirla por el área del circulo. Estas
operaciones se pueden observar con más claridad en la figura 4.2.
Cohen y Greenberg [CG85] modificaron este algoritmo para realizar las proyecciones
sobre medio cubo dividido en pixeles y centrado en dAj, como se ve en la figura 4.3. Cada
píxel en el hemicubo almacena información sobre la visibilidad de los objetos cuya
proyección caiga sobre el dicho píxel mediante el empleo de un algoritmo de buffer de ítems

Figura 4.2: Calculo del factor de forma con proyecciones sobre una media esfera

Autor: Yael Bobadilla Inclán 47


Radiosity, Un Modelo de Iluminación Global

Figura 4.3: Calculo del factor de forma con proyecciones sobre un medio cubo

para almacenar la superficie que tiene la intersección más cercana al píxel. A continuación, a

los píxeles del hemicubo se le asocian un factor de forma a priori, ∆F p :

cosθ i cosθ p
∆F p = ∆A j
πr 2
donde θ p (ver figura 4.4) es el ángulo que forman la normal de la celda p y el vector

Figura 2.4: Detalle del calculo del factor de forma con proyecciones sobre un medio cubo

existente entre dAi y dicha celda p, r es la longitud del vector y ∆A es el área de la celda.

Autor: Yael Bobadilla Inclán 48


Radiosity, Un Modelo de Iluminación Global

Considerando el sistema de coordenadas de la figura 4.4 tenemos:

r = x 2p + y 2p + 1
1
cosθ i = cosθ p =
r

donde xp y yp son las coordenadas de una celda de la cara superior. Así, la ecuación anterior se
transforma en:

1
∆F p = ∆A
π ( x + y 2p + 1) 2
2
p

Para una cara perpendicular al eje x tenemos:

r = x 2p + z 2p + 1
zp 1
cosθ i = , cosθ p =
r r

de donde se deduce:
zp
∆F p = ∆A
π ( x + z 2p + 1) 2
2
p

Debido a la simetría de la situación necesitamos calcular sólo un octante de la cara


superior y un cuarto de cada lateral. De este modo, el factor de forma total para un patch es

igual a la suma de los ∆F p de cada pixel del hemicubo que lo cubre. El problema de este

método reside en el hecho de que es fuente de errores como el aliasing.

El trazado de rayos ofrece una alternativa a los métodos de proyección para computar los
factores de forma. Se rompen los patches en pequeños elementos y se realiza el trazado de
rayos entre elementos para determinar la visibilidad mutua. A continuación, se aproxima el

Autor: Yael Bobadilla Inclán 49


Radiosity, Un Modelo de Iluminación Global

factor de forma elemento a elemento por el factor de forma diferencial de un punto a un


disco, lo cual permite realizar el cálculo con pocas muestras. La exactitud del método se
puede mejorar sobremuestreando.

El segundo paso en los algoritmos de radiosidad implica el cálculo de la radiosidad


propiamente dicha, lo cual requiere la resolución de un sistema lineal de ecuaciones. Con la
ecuación 4.3 podemos reescribir 4.2 como:

Bi = E i + ρ i ∑B F
1≤ j ≤ n
j i− j

que es lo mismo que:

Bi − ρ i ∑B F
1≤ j ≤ n
j i− j = Ei

Escribiéndolo de forma matricial obtenemos el sistema de ecuaciones:

1 − ρ1 F1−1 - ρ1 F1− 2  - ρ1 F1− n   B1   E1 


− ρ F
 2 2−1 1 - ρ 2 F2−2  - ρ 2 F2− n   B2   E 2 
= (4.4)
         
    
− ρ n Fn −1 - ρ n Fn −2  - ρ n Fn −n   Bn   E n 

La ecuación (4.4) se puede resolver con la iteración de Gauss-Seidel, generando una


radiosidad para cada parte. Después se generan los parches desde cualquier punto de
observación que se desee, usando un algoritmo convencional de superficies visibles; el
conjunto de radiosidades calculada para las bandas de longitud de onda de cada parche
corresponden a las intensidades del parche.

Una vez hecho esto, se debe aplicar un algoritmo de detección de superficies visibles
para renderizar cada zona. El conjunto de radiosidades calculadas para cada banda de
longitud de onda son las intensidades de cada zona.

Autor: Yael Bobadilla Inclán 50


Radiosity, Un Modelo de Iluminación Global

La resolución del sistema de ecuaciones planteado se ha realizado de múltiples


formas, desde la inversión directa de la matriz (Gauss), el método de Gauss-Seidel,
...También se emplearon métodos iterativos debido a que la matriz es diagonalmente
dominante. Pero, en resumen, podemos decir que las soluciones al algoritmo se pueden
mejorar, y a continuación se mostrara un método de Progresivo.

4.2 Refinamiento progresivo

Aunque el método de radiosidad visto hasta ahora generan presentaciones muy


realistas, los costos computacionales son cuantiosos. Por ello Cohen, Chen, Wallace y
Greenberg desarrollaron un algoritmo de refinamiento progresivo que reestructura el cálculo
para intentar reducir los costos, tanto de memoria como de tiempo de computación.
El método de radiosidad descrito en la sección anterior nos permite obtener una
imagen útil, aunque quizás inexacta, la cual puede refinarse sucesivamente para obtener una
mayor precisión.
Considerando la ecuación de radiosidad vemos que la contribución de radiosidad
entre dos zonas se calcula como:

B i debido a B j = ρ i B j Fi − j para toda j

Debido a la simetría:

B j debido a B i = ρ j Bi F j −i para toda j

que se puede expresar empleando la ecuación 2.3 como:

Ai
B j debido a B i = ρ j Bi Fi − j para toda j
Aj

Autor: Yael Bobadilla Inclán 51


Radiosity, Un Modelo de Iluminación Global

Esta expresión es la base para el cálculo de la radiosidad mediante el refinamiento


progresivo. Al emplear una sola zona i, podemos calcular todos los factores de forma
respecto a ella (mediante un z-buffer por hardware), para luego descartarlos tan pronto se
calculen la radiosidades emitidas por i. De este modo sólo se necesita un único medio cubo y
sus factores de forma de cada vez, para luego seleccionar otra zona y seguir la recurrencia.

Al principio se establece que Bi = E i para todas las zonas, luego se elige la


zona con la radiosidad más alta, que será la fuente de luz más brillante, y calculamos
la siguiente estimación de la radiosidad de las demás zonas. Este proceso se repite en
cada paso, de modo que las fuentes de luz se distribuyen en orden de mayor energía
radiante y después se seleccionan otras zonas según la cantidad de luz que reciben de
las fuentes. Es decir, si en cada paso se fuera dibujando la escena, la primera imagen
seria relativamente oscura y las siguientes se irían haciendo progresivamente más
brillantes. Un modo de aprovechar las primeras imágenes puede ser el de sumarle un
término de iluminación ambiental.
El seudo código para una sola iteración es el siguiente:

Seleccionar parche i;
Calcular Fi-j para cada parche j;
For (cada parche){
∆Radiosidad = ρ j ∆Bi Fi − j Ai A j ;
∆B j + = ∆Radiosidad ;
B j + = ∆Radiosidad ;

}
∆Bi = 0;

Autor: Yael Bobadilla Inclán 52


Radiosity, Un Modelo de Iluminación Global

Conclusiones

El objetivo primordial de este trabajo es describir el modelo de radiosidad desde un


enfoque computacional, contemplando algunos aspectos físicos y matemáticos de este, pero
siempre de una manera sencilla .
Como se menciono a lo largo de este trabajo, uno de los objetivos principales de las
graficas por computadora es la representación de imágenes con la mayor realidad posible.
Esto se lleva a cabo empleando diferentes técnicas a los largo de un proceso de renderizado.
La amplia gama de algoritmos de iluminación y sombreado origina una diversidad
correspondiente a las imágenes que se pueden producir para la misma escena usando la
misma especificación de vista.
Los algoritmos ray tracing que se explicaron brevemente combinan la determinación
de superficies visibles y el sombreado para representar sombras, reflexión y refracción;
mientras que los métodos Radiosity separan totalmente la determinación de superficies
visibles y el sombreado, es por eso que se dedico un capitulo a cada uno de esto temas.
Y por ultimo se describió un algoritmo de refinamiento mejorado, el cual intenta
mejorar la precisión en la imagen, además de reducir los costos, tanto de memoria como de
tiempo de computación.

Autor: Yael Bobadilla Inclán 53


Radiosity, Un Modelo de Iluminación Global

Glosario

A posteriori.- (del latín, “lo que viene después de”); alude a lo que es conocido por
medio de la experiencia.

A priori.- (del latín, “lo que viene antes de”), en filosofía hace referencia al
conocimiento adquirido sin contar con la experiencia, es decir, aquel que se adquiere
mediante el razonamiento deductivo.

Iluminación Global.- Luz que llega indirectamente del ambiente, por medio de la
reflexión y transmisión de la luz, a través de otras superficies.

Radiosity.- Se refiere a una medida de energía radiante, en particular, la energía que


deja una superficie por unidad de tiempo. Con el tiempo, radiosity ha venido también
a significar un conjunto de técnicas computacionales para calcular por computadora
la iluminación global.

Ray tracing.- Conjunto de algoritmos para determinar la visibilidad de las superficies


y la iluminación de un escenario, trazando rayos de luz imaginarios desde el ojo del
observador hacia los objetos de una escena.

Renderizar.- Proceso mediante el cual un objeto es representado proyectándolo sobre


una imagen plana, se determinan las superficies visibles y es calculado el color de
cada pixel.

Z-buffer.- Es uno de los algoritmos mas simples de determinación de superficie


visible para implementar en software y hardware.

Watt.- Unidad de potencia, se simboliza como W. Es el trabajo entre el tiempo, 1 J/s.

Autor: Yael Bobadilla Inclán 54


Radiosity, Un Modelo de Iluminación Global

Bibliografía

[ASHD94] Ashdown lan.


Radiosity a programmer’s perspective.
Editorial John Wiley & Sons.
Estados Unidos de Norteamérica.
1994.
[COHE93] Cohen Michael F. Wallace John R.
Radiosity and Realistic Imagen Synthesis.
Editorial Ap Profesional.
Estados Unidos de Norteamérica.
1993.
[FOLE96] Foley James, Feiner Steven, Hughes John, Phillips Richard, Van
Dam Andries.
Introducción a la graficación por computadora.
Editorial Addison Wesley.
Estados Unidos de Norteamérica.
1996.
[VILL97] Villa Bretón Consuelo Alicia.
Monografía, Animación por computadora.
Mérida, Yucatán, México.
1997.
[PAT99] Pat Avila Blanca Estela.
Monografía, El Metodo de iluminación Global “Radiosity” para
escenarios en tercera dimensión.
Mérida, Yucatán, México.
1999.

Autor: Yael Bobadilla Inclán 55

También podría gustarte