atarazanas.sci.uma.esatarazanas.sci.uma.es/docs/tesisuma/1627510x.pdf · 2004. 3. 29. · 1.2. el...
TRANSCRIPT
Universidad de MálagaDepartamento de Arquitectura de Computadores
Tesis Doctoral
Radiosidad en
Multiprocesadores
Gonzalo Cerruela García
iii
A mis padres y familiares, con todo mi amor.
iv
vii
INDICE
Introducción xi
Capítulo 1. Fundamentos Físico Matemáticos de la Radiosidad.
1.1. Definiciones. 2
1.1.1. Energía Radiante. 2
1.1.2. Flujo Radiante. 2
1.1.3. Exitancia radiante e irradiancia. 2
1.1.4. Ángulo sólido. 3
1.1.5. Intensidad radiante. 4
1.1.6. Radiancia. 4
1.1.7. Dependencia con la longitud de onda. 6
1.1.8. Función de reflectancia bidireccional (BRDF). 7
1.1.9. Función de visibilidad y de ray-casting. 11
1.2. El Problema de la Iluminación Global. 12
1.2.1. Ecuación de Representación (Rendering). 12
1.2.2. Flujo Radiante. 17
1.2.3. Operadores lineales de Transporte. 19
1.3. Radiosidad. 20
1.3.1. Transformación de la ecuación de radiosidad en
un sistema de ecuaciones. 20
1.4. Cálculo de los Factores de Forma. 24
1.4.1. Métodos analíticos. 25
1.4.2. Métodos de Proyección. 29
1.4.3. Método de ray-casting. 41
1.5. Solución numérica del sistema de ecuaciones de radiosidad. 50
1.5.1. Métodos directos. 50
1.5.2. Métodos iterativos. 50
1.5.3. Métodos aproximados. 56
1.6. Conclusiones. 56
Capítulo 2. Computación Paralela
2.1. Introducción. 59
2.2. Sistemas Paralelos: Organización y Arquitectura 60
2.2.1. Clasificación clásica. 60
2.2.2. Clasificación de acuerdo a la memoria. 62
2.3. Modelos de programación. 68
2.4. Computadores utilizados en nuestras aplicaciones. 69
2.4.1. Multiprocesador CRAY T3E. 70
2.4.2. Multiprocesador Origin 2000. 71
2.5. Medidas de rendimiento en multiprocesadores. 75
2.6. Conclusión. 77
Radiosidad en Multiprocesadores..
ix
Capítulo 3. Radiosidad Progresiva: Paralelización.
3.1. Introducción. 79
3.2. Método Progresivo. 80
3.2.1. Diseño del algoritmo de radiosidad progresiva. 81
3.2.2. Método de sobrerelajación. 85
3.3. Radiosidad progresiva en multiprocesadores. 86
3.3.1. Trabajos Previos. 87
3.3.2. Implementación en máquinas de memoria distribuida. 89
3.3.3. Implementación en máquinas de memoria compartida. 103
3.4. Conclusión. 109
Capítulo 4. Método Jerárquico de Solución de la Radiosidad.
4.1. Radiosidad Jerárquica. 111
4.1.1. Relación entre la Radiosidad jerárquica y
el Problema de los N cuerpos. 112
4.1.2. Radiosidad Jerárquica en dos niveles. 114
4.1.3. Limitaciones de la jerarquía de dos niveles. 116
4.1.4. Jerarquía Multinivel 119
4.1.5. Cálculo de visibilidad acelerado usando árboles BSP. 120
4.1.6. Algoritmo de radiosidad jerárquica. 122
4.2. Radiosidad Jerárquica en Multiprocesadores. 126
4.2.1. Trabajos previos. 126
4.2.2. Algoritmo paralelo. 127
4.2.3. Coherencia. 130
4.2.4. Localidad de Datos. 131
4.2.5. Balance de carga. 131
4.2.6. Evaluación. 132
4.2.7. Resultados Experimentales. 135
4.3. Conclusiones. 140
Conclusiones y Principales Aportaciones. 141
ANEXO I. 145
ANEXO II. 153
Bibliografía. 167
Introducción
xi
INTRODUCCION
El modelado y representación asistido por computador de interiores de edificios
requieren sofisticadas técnicas para la visualización de entornos reales. La flexibilidad y la
naturaleza interactiva de las aplicaciones de simulación por computador las convierten en
herramientas ideales para la experimentación con un mínimo coste.
Los sistemas de diseño asistidos por computador normalmente combinan el modelado de
la geometría de sólidos con aplicaciones para la visualización de los mismos. El modelado
de sólidos permite al diseñador construir una representación que define la forma y estructura
de los objetos o entorno que está siendo diseñado. Por otra parte, los parámetros de ilumi-
nación, color y texturas de las superficies de los objetos se usan en la fase de rendering, en
la que se realiza el sombreado y su visualización en la pantalla del computador del modelo
sólido. Una consideración muy importante en el modelado arquitectónico es una represent-
ación adecuada de la iluminación, ya que la imagen del modelo mostrada en la pantalla del
computador debe parecer convincente.
El proceso de representar imágenes fotorrealistas es conocido como síntesis de imágenes,
y la verosimilitud de estas imágenes dependerá fundamentalmente de la exactitud del modelo
Radiosidad en Multiprocesadores
xii
de iluminación que se utilice en su representación en la pantalla del computador.
Buscando un mayor realismo en la síntesis de imágenes, los modelos de iluminación han
evolucionado desde los simples sombreados planos o constantes y métodos de interpolación,
como el sombreado de Goraud [Gor71]; hasta los complejos modelos realistas en los que los
colores y sombras de las superficies dependen de los procesos físicos de intercambio de
energía en el entorno.
Los modelos de iluminación local, denominados también en ocasiones modelos de
reflexión, simulan la reflexión de la luz de una superficie, considerando las fuentes de luz y
las propiedades de la superficie de forma aislada al resto de superficies que forman el
entorno. El modelo de Phong [Pho75] es un simple ejemplo de un modelo de iluminación
local que incorpora reflexiones especulares, mientras que el modelo He [HTSG91] y el mod-
elo de Cook y Torrance [CT81] son físicamente más rigurosos, teniendo en cuenta la energía
reflejada por un amplio grupo de superficies.
Los modelos de iluminación global simulan la interacción de energía en el entorno, entre
todas las superficies y entre las fuentes de luz y las superficies. Un ejemplo de los modelos
de iluminación global son los método de ray-tracing, radiosidad, y métodos híbridos, así
como sus extensiones [GTGB84].
En general, mientras mayor sea la exactitud desde el punto de vista físico del modelo de
iluminación, mayor será el realismo de las imágenes que éste genera, y mas costosa será la
simulación del mismo. La elección del modelo de iluminación más adecuado depende de la
aplicación. El modelo de iluminación global es utilizado principalmente para el diseño arqui-
tectónico, donde el balance de energía, los detalles del color y la iluminación son de mucha
más importancia que la fidelidad en la dimensiones (escala) de las superficies.
Los método de ray-tracing y radiosidad están basados fundamentalmente en las leyes de
la óptica geométrica. La radiosidad incorpora además los principios de la termodinámica que
gobiernan el balance de energía en un entorno cerrado. En la práctica, en ambos se emplean
consideraciones para la simplificación, y dependen de algunos parámetros no físicos. Ambos
métodos son resueltos numéricamente, empleando técnicas de elementos finitos en el caso
de la radiosidad, mientras en el ray-tracing se utiliza el muestreo de todos los puntos que for-
man la imagen.
El ray-tracing reproduce principalmente el brillo especular y los efectos de transparen-
cias, mientras que la radiosidad tiene en cuenta la sutileza y la mezcla de los colores, así
Introducción
xiii
como los efectos de penumbra. Independientemente de que el consenso general es que las
imágenes generadas por el método de radiosidad dan una apariencia más realista, su mayor
ventaja se centra en el hecho de que es una solución que no depende del punto de vista es
decir, una vez que se determina la solución para el balance energía difusa, se pueden realizar
cambios en la posición del punto de vista sin que se necesiten nuevas computaciones para
calcular la iluminación. Esto lo convierte en el mejor modelo para las simulaciones en arqui-
tectura.
El método de radiosidad fue aplicado por primera vez en la síntesis de imágenes por
Goral [GTGB84] en 1984. Basado en este trabajo inicial, Cohen [CG85] introdujo el método
del hemicubo para calcular los factores de forma y Nishita [NN85] presentó un nuevo
método para el sombreado, que permitió simplificar las computaciones entre las superficies
a la hora de determinar la iluminación en entornos complejos. Cohen [Coh85] continuó las
investigaciones sobre el método original, incorporando una técnica para la subdivisión
adaptativa que mejora la precisión en los detalles del sombreado. Se realizaron también
extensiones del método de radiosidad para tener en cuenta las características del medio y las
reflexiones no difusas [RT87], [WCG87].
En 1988, Cohen [CCWG88] introdujo una reformulación del método, basada en el refi-
namiento progresivo, que reduce significativamente el tiempo necesario para mostrar las
imágenes iniciales en la pantalla del computador. Esta técnica permite obtener una imagen
intermedia basada en una solución aproximada, que continuamente se va mejorando hasta
que se alcanza la convergencia. En 1989 se introdujeron extensiones del método de la radi-
osidad progresiva [SP89], para tener en cuenta reflectores no difusos.
En 1990, Hanrahan [HSA90] presentó una reformulación jerárquica del método de radi-
osidad, que reduce su complejidad y establece nuevas herramientas para controlar la pre-
cisión en la solución numérica. Las reformulaciones jerárquicas fueron extendidas también
para incorporar reflectores no difusos [AH93]. Actualmente los método progresivos y
jerárquicos constituyen un fértil campo para la investigación.
El principal inconveniente de cualquier algoritmo de radiosidad sigue siendo su alto
coste computacional; por esta razón el principal objetivo de nuestro trabajo está orientado a
la reducción del coste computacional de estos algoritmos, utilizando para ello estrategias y
las arquitecturas de procesamiento paralelo.
Son varios los trabajos que aplican las técnica de procesamiento paralelo al caso partic-
Radiosidad en Multiprocesadores
xiv
ular de la radiosidad. Estos trabajos se pueden dividir de acuerdo con la arquitectura paralela
utilizada en tres grupos.
El primero formado por estaciones de trabajo especializadas en gráficos, conectadas por
una red de área local. El segundo lo forman estaciones de trabajo basadas en arquitecturas
multiprocesadoras de memoria compartida, y el tercero en arquitecturas masivamente parale-
las, en las cuales cada procesador tiene su propia memoria local y la comunicación se realiza
utilizando paso de mensajes
La presente memoria resume el esfuerzo realizado en el estudio de los principales
avances realizados hasta la actualidad y expone nuestras aportaciones para la obtención de
algoritmos más eficientes. Su organización es la siguiente:
En el capítulo 1 se detallan los conceptos básicos implicados en este trabajo, haciendo
énfasis en los aspectos físicos - matemáticos del método de radiosidad. Se presenta además
un estudio de las técnicas desarrolladas para el cálculo de los factores de forma, necesarias
en cualquier algoritmo de radiosidad. Por último, se ilustran diversas técnicas para la solu-
ción del sistema de ecuaciones asociado al problema de la radiosidad. Las principales aport-
aciones de este capítulo se han publicado en [MCB97b][BDCea98].
En el capitulo 2 se realiza un análisis de las diversas arquitecturas paralelas existentes, y
se detallan las principales características de las máquinas paralelas utilizadas en los experi-
mentos y de las medidas utilizadas para analizar el rendimiento de los algoritmos propuestos.
El capítulo 3 presenta el método de radiosidad progresiva, y los nuevos algoritmos
paralelos que hemos desarrollado para él, así como los resultados experimentales obtenidos
en diferentes arquitecturas multiprocesadoras. Algunos resultados de este capítulo han sido
publicados en [CGB97a][CGB97b][BCea97][MCB97a].
En el capítulo 4 se presenta el método jerárquico para la solución de la ecuación de radi-
osidad, y nuestra solución a su paralelización para máquinas de memoria distribuida, con
diferentes distribuciones de datos. Se termina presentando los resultados obtenidos, algunos
de los cuales se publicaron en [BCea98][BCTZ98].
Finalmente se hace una síntesis de las principales aportaciones de esta tesis, así como un
resumen de las líneas de investigación que se han iniciado a partir de ella.
Dado que el objetivo fundamental de este trabajo se ha centrado en la solución del prob-
lema de la iluminación global utilizando el modelo de radiosidad y en la aplicación de las
técnicas de procesamiento paralelo para obtener algoritmos más eficientes; se incorpora un
Introducción
xv
anexo en la memoria, donde se detallan todas las fases necesarias para realizar un programa
para la representación (rendering) de entornos virtuales utilizando el modelo de radiosidad.
Además se incorpora un segundo anexo donde se detalla la implementación de los princi-
pales algoritmos para el cálculo de los factores de forma.
Radiosidad en Multiprocesadores
xvi
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
1
CAPÍTULO 1.
FUNDAMENTOS FÍSICOS Y MATEMÁTICOS DE LA RADIOSIDAD.
En este capítulo se realizará una descripción formal de los aspectos relacionados con el
transporte de la luz, los cuales son de interés cuando se resuelve el problema de la ilumi-
nación global. Detallaremos diferentes conceptos y unidades utilizadas en iluminación. Para
las notaciones y símbolos usaremos la simbología y unidades que comúnmente se utilizan en
la literatura, así como los empleados en el campo de la radiometría y la fotometría.
Radiosidad en Multiprocesadores
2
1.1. Definiciones
La luz es una radiación electromagnética que se encuentra dentro de la longitud de onda
visible por el ojo humano. En general la energía luminosa es función de la posición, la lon-
gitud de onda, la fase, la polarización y el tiempo.
1.1.1. Energía Radiante.
La unidad básica de energía luminosa utilizada en iluminación global es la energía radi-
ante Q, medida en Julios. Por ejemplo, si tomamos el modelo de partículas [AK90], cada
partícula puede transportar un numero determinado de julios de energía proporcionales a su
frecuencia.
1.1.2. Flujo Radiante.
La energía que incide o abandona una superficie por unidad de tiempo es llamada flujo
radiante Φ, y se expresa en watios:
(1.1)
El flujo radiante es la unidad de medida más utilizada en los algoritmos de iluminación
global. Puesto que sólo estamos interesados en analizar el problema una vez que se haya lle-
gado a una situación de equilibrio en el transporte de la energía luminosa, normalmente no
se consideran distribuciones dependientes del tiempo.
1.1.3. Exitancia radiante e irradiancia.
Otras unidades útiles de medida son el flujo por unidad de área ( ) que incide, o aban-
dona, una superficie. Respectivamente, son llamados irradiancia ( ) y exitancia radiante
( ). La exitancia radiante es llamada radiosidad en el contexto de la iluminación global, y
puede representarse por B (según Cohen [Coh85]), M (según Ashdown [Ash94]), o R (según
Φ dQdt------- .=
dA
E
R
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
3
Glasnner [Gla95]) y se expresa en . De esta forma se puede definir que
(1.2)
1.1.4. Ángulo sólido
Las direcciones en un espacio vectorial euclidiano se puede representar como puntos o
como vectores. Sin embargo, en el contexto de iluminación global las direcciones se repre-
sentan comúnmente definiendo una esfera que rodea un punto de una superficie; en la prác-
tica solo tiene sentido considerar las direcciones correspondientes a una misma cara de la
superficie, y por tanto se utiliza sólo un hemisferio sobre dicho punto. Este hemisferio sobre
un punto x se denota como .
Cada dirección se puede definir por dos ángulos y , utilizando el sistema de
coordenadas esféricas. Este sistema de coordenadas es relativo al vector normal (siendo
x un punto de la superficie), y a un eje a, seleccionado de forma aleatoria y desde donde
es medido.
Se define además un diferencial de ángulo sólido alrededor de una dirección como
, expresado como . La figura Figura 1.1 (a) muestra su representación
Figura 1.1 Ángulo sólido. (a) Expresado en coordenadas esféricas. (b) Expresado en función de un diferencial de área de superficie.
El diferencial de ángulo sólido se puede expresar en función de un diferencial de área de
superficie , visible en toda la dirección del diferencial de ángulo sólido como se muestra
en la Figura 1.1 (b), tal que:
Wm2------
E M R B dΦdA------- .= = = =
Ωx
θ ϕ
nx
ϕ
Θ
dωΘ sen θ( )dθdϕ
y
superficie
dirección xy
ángulo sólido dωxy x
a
θ
ϕ
ángulo sólido dωΘ senθdθdϕ=
nx
dirección Θ dAyrxyángulo sólido dωΘ
x
y
θy
dirección Θ
ny
(b)(a)
dAy
Radiosidad en Multiprocesadores
4
(1.3)
1.1.5. Intensidad radiante.
El flujo se puede medir también por unidad de ángulo sólido. Esto es muy útil cuando
queremos describir la cantidad de flujo que llega o sale de un punto de una superficie. Esta
cantidad se puede medir con el término de intensidad radiante que se expresa en (wats/
stereoradian), y se define como:
(1.4)
1.1.6. Radiancia.
Podemos combinar las mediciones de flujo por unidad de área y por unidad de ángulo
sólido en una única magnitud. La potencia que incide o abandona un diferencial de superficie
en una cierta dirección, por unidad de ángulo sólido , por unidad de área proyectada
perpendicular a la dirección del flujo, es llamada radiancia, y es representada por .
Por tanto:
(1.5)
siendo θ el ángulo entre la normal a la superficie y la dirección que se está con-
siderando.
La radiancia se expresa en , y de forma intuitiva puede ser descrita como la
intensidad percibida por un observador o detectores (por ejemplo cámaras); para los que la
percepción de la intensidad luminosa depende del tamaño de las superficies o de la apertura
del ángulo sólido. Por ejemplo, consideremos dos superficies de áreas , respec-
tivamente, cada una de las cuales emite 1000 watios. A ojos de un observador la segunda
superficie parece más brillante, dado que tiene una mayor cantidad de energía por unidad de
dωΘ dωxy
θydAycos
rxy2-----------------------= =
Wsr-----
I dΦdω------- =
dA dω
dA⊥ L
L dEdω------- d2Φ
dωdA⊥------------------ d2ΦdωdA θcos--------------------------- = = =
dA dω
Wsr m2⋅----------------
10m2y 1m2
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
5
área. Esta misma consideración se puede hacer para variaciones del ángulo sólido.
Dado que la radiancia en un punto x está definida en una cierta dirección se debe tener
cuidado con las notaciones utilizadas, para distinguir claramente entre la radiancia incidente
y la emitida. Por ello utilizaremos las siguientes notaciones:
: radiancia que abandona un punto en la dirección .
: radiancia que incide en un punto en la dirección .
: radiancia que abandona un punto hacia el punto y.
: radiancia que incide en un punto desde el punto .
La radiancia es simétrica, y por tanto se cumple que , suponiendo
la ausencia de pérdidas por la participación del medio de transporte. Esta afirmación se puede
demostrar considerando por ejemplo dos diferenciales de área de dos superficies y calcu-
lando el transporte de energía entre ellas. En la Figura 1.2 se muestra gráficamente la
geometría de este problema.
Figura 1.2 Transporte de energía entre dos diferenciales de superficie
Según la ecuación (1.1), el flujo total que abandona el diferencial de superficie y
llega a otro diferencial de superficie se puede escribir como:
(1.6)
donde es la dirección desde x hacia y, y el ángulo sólido desde el cual es visto
desde x.
La potencia que incide en el área procedente del área se puede expresar como:
(1.7)
Si consideramos que no hay pérdida de energía entre los diferenciales de superficie y que
no existen fuentes de luz externas que aumenten la energía que llega a , el principio de
conservación de la energía nos dice que toda la energía que abandona la superficie en
Θ
L x Θ→( ) x Θ
L x Θ←( ) x Θ
L x y→( ) x
L x y←( ) x y
L x y→( ) L y x←( )=
rxy
nynx
θx
θy
dAx
dAy
x
y
dAx
dAy
d2Φ L x y→( ) θx( )dωxy
dAx cos=
xy dωxy dAy
dAy dAx
d2Φ L y x←( ) θy( )dωyx
dAy cos=
dAy
dAx
Radiosidad en Multiprocesadores
6
dirección a debe llegar a la superficie , es decir:
(1.8)
Sustituyendo la expresión del ángulo solido se obtiene:
(1.9)
donde es la distancia entre x e y. De aquí es inmediato que:
(1.10)
La expresión (1.10) significa que la radiancia no se atenúa con la distancia, y permanece
constante durante toda su trayectoria. Dado que la mayoría de los receptores de luz, (como
el ojo humano, o las cámara) son sensibles a los cambios de radiancia, esta invarianza explica
por qué el color percibido o el brillo de un objeto no cambia con la distancia. Es importante
remarcar, sin embargo, que todas estas afirmaciones dejan de tener validez cuando el medio
que participa en el transporte puede absorber o emitir energía.
La conclusión más importante de esta propiedad es que basta conocer la distribución de
radiancia en todos los puntos de una superficie para conocer su distribución de radiancia en
toda la escena tridimensional.
1.1.7. Dependencia con la longitud de onda.
Los términos definidos anteriormente dependen no solo de la posición y la dirección, sino
también de la longitud de onda de la energía luminosa considerada. Dado que, los valores de
radiancia son especificados normalmente para todos los valores posibles de la longitud de
onda, los términos definidos anteriormente se considerarán como funciones integrales sobre
el espectro completo de la luz visible. En las próximas secciones esta dependencia será con-
siderada de forma implícita.
dAx dAy
L x y→( ) θx( )dωxy
dAxcos L y x←( ) θy( )dωyx
dAy cos=
L x y→( ) θx( )θy( )dAycos
rxy2----------------------------dAxcos L y x←( ) θy( )
θx( )dAxcos
rxy2----------------------------dAy cos=
rxy
L x y→( ) L y x←( ) =
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
7
1.1.8. Función de reflectancia bidireccional (BRDF).
Los materiales interactúan con la luz de diversas formas, y diferentes materiales tienen
diferente apariencia para las mismas condiciones de iluminación. Uno de los aspectos más
importantes a tener en cuenta es la especularidad, así por ejemplo, algunos materiales pare-
cen espejos mientras otros parecen superficies difusas.
Las propiedades de reflectividad de una superficie son descritas por una función de
reflectancia, que modela el comportamiento de la interacción de la luz reflejada en dicha
superficie.
La función de reflectancia bidireccional (BRDF) es la expresión más general de la reflec-
tividad de un material. De forma simplificada podemos decir que la BRDF es la variación de
la radiancia reflejada respecto a la irradiancia incidente.
En forma más rigurosa, se define la BRDF (denotada por ) como el
cociente entre el diferencial de radiancia reflejado en una dirección y la irradiancia inci-
dente a través de un ángulo sólido en la dirección .
Usando la representación geométrica de la Figura 1.3
(1.11)
Figura 1.3 Representación Geométrica de la BRDF
La BRDF puede tomar cualquier valor positivo, y varía con la longitud de onda. Además
tiene algunas propiedades interesantes, como:
1) El valor de la BRDF no varía si intercambiamos las direcciones de incidencia y de
fr x Θi Θr→,( )
Θr
Θi
Θr dL x Θr→( )
θrθi
Θinx
x
dE x Θi←( )
fr x Θi Θr→,( )dL x Θr→( )dE x Θi←( )-----------------------------
dL x Θr→( )L x Θi←( ) θi( )dωΘi
cos--------------------------------------------------------- = =
Radiosidad en Multiprocesadores
8
salida. Esta propiedad se denomina reciprocidad de Helmholtz, y significa que el
camino que sigue la luz puede ser intercambiado, es decir que:
(1.12)
En adelante se usará una doble flecha en la notación de la BRDF
( ) para indicar la posibilidad de intercambiar libremente ambas
direcciones.
2) En general, la BRFD es anisótropa, de forma que si la superficie es rotada sobre el
vector normal a la misma, el valor de fr cambiará. A pesar de ello existen muchas
superficies que son isótropas, en las cuales el valor de fr no depende de la orientación.
3) El valor de la BRDF para una dirección incidente específica es independiente de la
posible presencia de irradiancia para otros ángulos de incidencia. Por ello la BRFD se
puede definir como una función lineal respecto a todas las direcciones incidentes.
Para conocer el total de radiancia reflejada en la dirección para una determinada
distribución de irradiancia sobre el hemisferio de incidencia ( ) alrededor de un
punto x de la superficie tendremos que integrar la ecuación (1.11) sobre el hemisferio:
(1.13)
donde es el coseno del ángulo formado por el vector normal al punto
x ( ) y el ángulo de incidencia . Nótese que el ángulo de incidencia varía en
el hemisferio . Esta es la ecuación conocida como ecuación de reflectancia.
Dependiendo de la naturaleza del material, éste puede presentar un aspecto de superficie
difusa, especular, brillante, transparente, o una combinación de las anteriores, como muestra
la Figura 1.4. A continuación describiremos los tipos de BRDF más usados habitualmente:
fr x Θi Θr→,( ) fr x Θr Θi→,( ) =
fr x Θi Θr↔,( )
θr
Ωx
L x Θr→( ) fr x Θ Θr↔,( )dE x Θ←( ) Ωx
∫=
ωΘfr x Θ Θr↔,( )L x Θ←( ) nx Θ,( ) cosdΩx
∫=
nx Θ,( )cos
nx Θ
Ωx
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
9
Figura 1.4 Componentes de la BRDF.
a) Superficies difusas: Algunos materiales reflejan la luz de una forma uniforme sobre
toda el hemisferio de salida. En ellos, dada una distribución de irradiancia, la energía
reflejada es independiente de la dirección de la energía incidente.
b) Superficies especulares: Un material es considerado como reflector especular per-
fecto si sólo refleja luz en una dirección específica tal que, siguiendo la ley de Snell,
el ángulo incidente sea igual al ángulo reflejado respecto a la normal a la superficie.
Una superficie perfectamente especular es un modelo matemático ideal, en el que la
BRDF es cero para todas las direcciones de salida menos una, en la que toma valor
infinito.
c) Superficies brillantes: Muchas superficies no son reflectores difusos ideales, ni
reflectores especulares ideales, sino que actúan como una combinación de ambos. Su
BRFD es difícil de modelar con formulas analíticas.
d) Superficies transparentes: Hablando estrictamente, la BRDF es definida sobre
todas las direcciones de la esfera ( estereoradianes) alrededor de un punto de la
superficie. Esto es de suma importancia cuando consideramos superficies transpa-
rentes, ya que éstas pueden reflejar luz sobre toda la esfera. El tipo de BRDF trans-
parente puede también tener un comportamiento difuso, especular o brillante depen-
diendo de las características de translucidez del material.
Modelos empíricos de la BRDF.
En los algoritmos de iluminación global es habitual usar modelos empíricos para calcular
la BRDF. Sin embargo, es necesario observar algunas precauciones a la hora de utilizar esos
BRDF superficies difusas superficies especulares superficies brillantes
= + +
4π
Radiosidad en Multiprocesadores
10
modelos empíricos para poder lograr una buena representación de la BRDF.
El principio de conservación de la energía impone que la cantidad total de potencia refle-
jada sobre todas las direcciones debe ser menor o igual que la potencia total que incide sobre
la superficie. Para cualquier distribución de radiancia incidente L sobre el hemisferio , el
total de potencia incidente por unidad de área de superficie es el total de irradiancia sobre
dicho hemisferio:
(1.14)
El total de potencia reflejada M para todas las direcciones del hemisferio , se puede
escribir como la suma de las contribuciones en todas las direcciones de incidencia:
(1.15)
De esta forma la BRDF satisface el principio de conservación de la energía en un punto
de una superficie si para todas las posibles distribuciones incidentes la radiancia cumple que
:
(1.16)
Esta condición debe ser verdadera para cualquier función de radiancia incidente ( ) físi-
camente válida. Podemos simplificar la ecuación (1.16) para que la condición que debe cum-
plir la BRDF sea fácilmente verificable de forma estrictamente geométrica. Para ello
introducimos la distribución de radiancia incidente
donde es la función delta de Dirac. De esta forma obtendremos la condición:
(1.17)
La ecuación (1.17) es una condición necesaria para la conservación de la energía ya que
expresa la desigualdad para una distribución dada de la radiancia incidente. Por otra parte es
Ωx
E ωΘL x Θ←( ) nx Θ,( ) cosdΩx
∫=
Ψ Ωx
θ
M ωΘ ωΨfr x Θ Ψ↔,( )L x Θ←( ) nx Ψ,( ) nx Θ,( ) coscosdΩx
∫dΩx
∫=
M E , o lo que es lo mismo≤
ωΘ ωΨfr x Θ Ψ↔,( )L x Θ←( ) nx Ψ,( ) nx Θ,( )coscosdΩx
∫dΩx
∫
ωΘL x Θ←( ) nx Θ,( )cosdΩx
∫-------------------------------------------------------------------------------------------------------------------------------------------------- 1 ≤
Li
L x Θ←( ) Liδ Θ Ψ↔( )=
δ
ωΨfr x Θ Ψ↔,( ) nx Ψ,( ) 1 , Θ Ωx∈∀≤cosdΩx
∫
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
11
también una condición suficiente, puesto que la distribución de radiancia incidente desde dos
direcciones diferentes no influye en el valor de la BRDF, siendo el principio de conservación
de la energía válido para cualquier combinación de valores de la radiancia incidente.
Asímismo cualquier modelo empírico para la BRDF debe cumplir el principio de reci-
procidad de Helmholtz. Esto es de suma importancia para muchos algoritmos, y en especial
para aquellos que calculan la distribución de energía luminosa por caminos que comienzan
por las fuentes de luz y al mismo tiempo por caminos que comienzan por la posición del
obsevador.
Un análisis más detallado sobre los modelos físicos para la BRDF se puede encontrar en
el artículo de Robert Lewis et.al. [Lewi93], en el que se discuten diferentes modelos para la
BRDF como los de Cook-Torrance, Minnaert y Neumann-Neumann.
1.1.9. Función de visibilidad y de ray-casting.
Un concepto muy importante utilizado en los algoritmos de iluminación global es la
determinación de visibilidad, ya que nos permite determinar que superficies pueden inter-
cambiar energía entre sí. Dado dos puntos arbitrarios x e y en al espacio tridimensional, la
función de visibilidad toma valor 1 dependiendo si los puntos son mutuamente vis-
ibles entre sí, o sea, entre ellos no se interpone ningún otro objeto o puntos de otra superficie;
y toma valor 0 en caso contrario.
Dado un punto x y una dirección , normalmente interesa encontrar el punto de la super-
ficie más cercana a x siguiendo una dirección (Figura 1.5), para una determinada
geometría de la escena tridimensional. Este punto más cercano puede ser considerado como
una función de x y . Denominada función de ray-casting, esta función es denotada como
y se define formalmente con la ecuación (1.18).
donde (1.18)
Figura 1.5 Función de ray-casting.
V x y,( )
Θ
Θ
Θ
r x Θ,( )
r x Θ,( ) x tmin Θ⋅+= tmin min t 0 : x t Θ⋅+( ) A∈( )> =
superficie A
x
Θ
r x Θ,( )
Radiosidad en Multiprocesadores
12
1.2. El Problema de la Iluminación Global.
1.2.1. Ecuación de Representación (Rendering).
El problema de la iluminación global es, básicamente, un problema de transporte. La
energía emitida por las fuentes de luz es transportada por medio de reflexiones y refracciones
en el entorno tridimensional. En nuestro análisis no consideraremos la dependencia con el
tiempo, pues sólo nos interesa la distribución en equilibrio de la energía en el entorno.
El ojo humano es sensible a los valores de radiancia; por tanto, para obtener imágenes
fotorrealistas, nuestro objetivo se centra en calcular los valores de la radiancia sobre todas
las áreas de interés. La forma genérica de estas áreas de interés puede variar sustancialmente
dependiendo del nivel de exactitud deseado. Así, en los algoritmos de ray-tracing se definen
estas áreas como las superficies vistas a través de un pixel, mientras en los algoritmos de radi-
osidad se suelen definir como trozos (patches) de superficies, con un hemisferio de reflexión
como componente direccional. En la Figura 1.6 se representan estos dos grupos de superfi-
cies, que son los más utilizados en los algoritmos de cálculo de la iluminación global.
Figura 1.6 Áreas de muestreo. (a) ray-tracing, (b) radiosidad.
Punto de Vista
PixelÁngulo Sólido
Puntos de la Superficie
Pantalla Virtual
Ángulos Sólidos
Puntos de la Superficie
Patches de la Superficie
Direcciones y grupos de puntos de la superficie correspondientes a un pixel
(a)
(b)
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
13
La ecuación utilizada para describir el problema de la iluminación global es denominada
ecuación de representación (rendering), y fue desarrollada por Kajiya [Kaj 86]. Esta
ecuación se basa en la ecuación de reflectancia (1.13), pero añade como función de iniciación
un término de emisión propia para los puntos de la superficie, que dota al entorno de energía
inicial. Las superficies que autoemiten son las fuentes de luz de la escena tridimensional.
La radiancia que abandona un punto x en una dirección se puede escribir como:
(1.19)
donde es la energía autoemitida por el punto x si este pertenece a la superficie de
una fuente de luz.
La ecuación (1.19) nos dice que la radiancia emitida por un punto x en una dirección
será igual a la radiancia autoemitida en ese punto y en esa dirección, más la radiancia inci-
dente desde el hemisferio de iluminación y reflejada en x hacia la dirección . La Figura
1.7 hace una representación gráfica de los componentes de esta ecuación.
Figura 1.7 Transporte de la radiancia según la ecuación (1.19).
La ecuación de representación (rendering) suma las contribuciones de todas las direc-
ciones incidentes sobre el hemisferio de iluminación. Sin embargo, en algunos casos es más
conveniente integrar sobre todas las áreas de las superficies visibles de la escena, transfor-
mando el diferencial de ángulo sólido en un diferencial de área de superficie ,
donde z son los puntos visibles más cercanos a x. En la Figura 1.8 se muestra una represent-
ación gráfica de esta transformación.
Θr
L x Θr→( ) Le x Θr→( ) ωΘ L x Θ←( )fr x Θ Θr↔,( )( )d nx Θ,( ) cosΩx
∫+=
Le x Θr→( )
Θr
Θr
L x Θ←( )L x Θr→( )
Le x Θr→( )
nx
L x Θ←( )L x Θ←( )
Dominio de Integración
dωΘ dAz
Radiosidad en Multiprocesadores
14
Figura 1.8 Transformación del hemisferio en una superficie se integración.
Sustituyendo entonces en la ecuación (1.19), ésta se reescribe
como:
(1.20)
donde
(1.21)
siendo la distancia entre los puntos x y z. es, pues, una función geométrica, que
expresa la capacidad de dos puntos en dos superficies (distintas) de intercambiar energía; con
este fin se incluye la función de visibilidad .
Todas las ecuaciones que describen el transporte de radiancia son ecuaciones integrales
recursivas [Gla95], con un dominio de integración fijo. Estas ecuaciones son llamadas ecua-
ciones de Fredholm de segundo orden, para las cuales generalmente no existe una solución
analítica, por lo que deben ser resueltas numéricamente.
En las ecuaciones (1.19) y (1.20) aparecen dos términos diferentes, la radiancia de salida
y la radiancia incidente. Dado que la radiancia permanece constante durante su trayectoria se
puede transformar la radiancia incidente en radiancia de salida, y viceversa. De esta forma
es posible escribir la ecuación de representación con solo un término.
Es posible obtener también para la ecuación de radiancia dos formulaciones, matemáti-
camente equivalentes, aunque presentan importantes diferencias en los algoritmos utilizados
dωΘ
z
Θ–
x
dAz
nz
Θ
nxrxz
dωΘnz Θ–,( )dAzcos
rxz2-------------------------------------- =
L x y→( ) Le x y→( ) AzL x z←( )fr x z y↔,( )G x z,( ) dAx
∫+=
G x z,( )nx Θ,( ) nz Θ–,( )V x z,( )coscos
rxz2-------------------------------------------------------------------------=
rxz G x z,( )
V x z,( )
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
15
para su solución. A continuación describiremos estas dos formulaciones, y sus formas de
integración.
1 ) Radiancia de salida. Integración sobre el hemisferio.
Podemos reemplazar la radiancia incidente en la ecuación (1.19) utilizando la propiedad
de invariabilidad de la radiancia sobre todo su camino, e introducir una ecuación de ray-cast-
ing en dicha ecuación, como se indica en la Figura 1.9.
Figura 1.9 Transporte de la radiancia de salida. Integrando sobre el hemisferio.
(1.22)
donde es un punto en la dirección a partir de x.
2 ) Radiancia de salida. Integración sobre las superficies.
Se puede expresar la ecuación (1.22) integrando sobre todos los puntos de las superficies.
En la Figura 1.10 se muestra gráficamente esta posibilidad.
Figura 1.10 Transporte de radiancia de salida. Integración sobre las superficies.
x
L y1 Θ–→( )
y1
y2
y3
L y2 Θ–→( )
L y3 Θ–→( )
Le x Θr→( )
L x Θr→( )
Dominio de integración
L x Θr→( ) Le x Θr→( ) ωΘL y Θ–→( )fr x Θ Θr↔,( )d nx Θ,( ) 2cosΩx
∫+=
y r x Θ,( )= Θ
x
L z x→( )
z
z
z
Le x y→( )
L x y→( )
Dominio de integración
L z x→( )
L z x→( )
Radiosidad en Multiprocesadores
16
La ecuación resultante es:
(1.23)
donde A representa el conjunto de todas las superficies de la escena tridimensional.
3 ) Radiancia incidente. Integración sobre el hemisferio.
También se puede transformar la ecuación (1.19) en una función que sólo dependa de la
radiancia incidente, para lo cual debemos escribir la radiancia autoemitida por la superficie
como radiancia incidente. Es fácil imaginar la radiancia incidente sobre una superficie, pero
no la radiancia incidente proveniente de una fuente de luz. La Figura 1.11 a) muestra como
la radiancia emitida por la fuente de luz es igual a la radiancia incidente sobre las demás
superficies (Figura 1.11 b)).
Figura 1.11 a) Radiancia emitida por la fuente de luz. b) Radiancia incidente sobre las demás super-ficies.
Figura 1.12 Representación de la radiancia incidente. Integración sobre el hemisferio.
L x y→( ) Le x y→( ) AzL z x→( )fr x z y↔,( )d G x z,( )A∫+=
Fuente de Luz Fuente de Luz
L x Θ→( )L x Θ←( )
a) b)
r x Θi,( )
L r x Θi,( ) Θ←( ) L r x Θi,( ) Θ←( )
Le x Θi→( )
L x Θi→( )
Dominio de integraciónL r x Θi,( ) Θ←( )
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
17
La ecuación transformada de esta forma y representada en la Figura 1.12 es:
(1.24)
donde , es un punto en la dirección .
4 ) Radiancia incidente. Integración sobre las superficies.
Aplicando las transformaciones de coordenadas para convertir el ángulo sólido sobre los
puntos de las superficies emisoras, podemos obtener una ecuación que integra la radiancia
incidente sobre todos los puntos de las superficies, que se muestra gráficamente en la Figura
1.13.
Figura 1.13 Transporte de radiancia incidente. Integración sobre las superficies.
La ecuación resultante es:
(1.25)
1.2.2. Flujo Radiante.
La solución ideal del problema de la iluminación global es poder encontrar todos los
valores de la función de radiancia para todas las superficies en todas las direcciones relativas
a todos sus puntos. Esto es imposible de lograr en la práctica, por lo que muchos algoritmos
calculan el promedio de radiancia sobre un grupo específico de puntos y direcciones. Una
posible forma de calcular esto es calcular el flujo radiante sobre dicho grupo. Así, los algorit-
mos de ray-tracing utilizan esta técnica para calcular el flujo de un determinado grupo a
L x Θi←( ) Le x Θi←( ) ωΘL y Θ←( )fr y Θi Θ↔,( ) ny Θ,( )cosdΩy
∫+=
y r x Θi,( )= Θi
y
L y z←( )
z
z
L x y←( )
Dominio de integración
L y z←( )
L y z←( )
xz
Le x y←( )
L x y←( ) Le x y←( ) AzL y z←( )fr y z x↔,( )G y z,( )dA∫+=
Radiosidad en Multiprocesadores
18
través de un pixel de la pantalla. Por su parte, es usual en los algoritmos de radiosidad calcu-
lar, sobre todo el hemisferio, el flujo que abandona la superficie de todo un elemento o patch.
Si escribimos el conjunto de todos las superficies de la escena A y de todas las direcciones
de un hemisferio de salida arbitrario como el producto cartesiano , el problema de
la iluminación global puede definirse como el cálculo del flujo radiante para un cierto con-
junto continuo definido sobre .
Podemos expresar el flujo radiante para todos los puntos de las superficies en términos
de la radiancia, integrando la distribución de radiancia sobre todos los puntos visibles de la
superficie y sobre las direcciones para las cuales dichos puntos son visibles, . De esta
forma, representa el grupo de puntos y direcciones de interés, y el
flujo radiante se puede expresar como:
(1.26)
Introduciendo la función de visibilidad , tal que:
(1.27)
Podemos eliminar la dependencia del dominio de integración con el grupo de puntos
seleccionado, y obtener una expresión más general:
(1.28)
El promedio de radiancia asociado al grupo de puntos seleccionado se puede calcular con
la ecuación (1.29):
(1.29)
En ocasiones, dependiendo de la geometría del conjunto S, el denominador de esta
expresión puede calcularse analíticamente. En particular, este es el caso de los algoritmos de
radiosidad.
Ω A Ω×
A Ω×
As Ωs×
S As Ωs×= A Ω×⊂
Φ s( ) Ax ωΘL x Θ→( ) nx Θ,( )cosdΩs
∫dAs
∫=
g g x Θ,( )=
g x Θ,( ) 1 si (x,Θ ) S∈ y V x r x Θ,( ),( ) 1 =,0 si (x,Θ ) S∉ o V x r x Θ,( ),( ) 0 =,
=
Φ s( ) Ax ωΘL x Θ→( )g x Θ,( ) nx Θ,( ) cosdΩ∫d
A∫=
Lpromedio
Ax ωΘL x Θ→( ) nx Θ,( )cosdΩs
∫dAs
∫
Ax ωΘ nx Θ,( )cosdΩs
∫dAs
∫--------------------------------------------------------------------------------- =
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
19
1.2.3. Operadores lineales de Transporte.
En las secciones anteriores se han descrito las ecuaciones de transporte para la radiancia
incidente y de salida, y las expresiones para el flujo, integradas sobre el hemisferio o sobre
todas las posibles superficies de la escena.
Las ecuaciones integrales recursivas que describen el transporte pueden escribirse de
forma más concisa utilizando operadores lineales. La ecuación de reflectancia puede consid-
erarse como un operador lineal que transforma una cierta distribución de radiancia incidente
sobre todos los puntos y direcciones de las superficies en otra distribución, que nos da la radi-
ancia reflejada después de la reflexión. Esta nueva distribución es, de nuevo, una función de
radiancia definida sobre todo el entorno. Llamando L a la radiancia definida en el entorno
y T al operador lineal de reflexión. es una nueva función definida sobre ,
que puede ser evaluada en como:
(1.30)
De esta forma la ecuación de reflexión se escribe:
(1.31)
Mediante un cambio de variable es posible transformar el dominio de integración de la
ecuación (1.30) en el conjunto A de todas las superficies. Haciendo esto, el operador T se
define como:
(1.32)
y la ecuación de reflexión será:
(1.33)
A Ω× T L⋅ A Ω×
x Θ,( )
T L x Θr→( )⋅ wΘL r x Θ,( ) Θ–→( )fr x Θ Θr↔,( ) nx Θ,( )cosdΩx
∫=
L x Θr→( ) Le x Θr→( ) T L x Θr→( )⋅+=
T L x y→( )⋅ AzL z x→( )fr x y↔( )G x z,( ) dA∫=
L x y→( ) Le x y→( ) TL x y→( ) +=
Radiosidad en Multiprocesadores
20
1.3. Radiosidad.
La radiosidad es un algoritmo de iluminación global, en el que se realizan las siguientes
hipótesis sobre el entorno tridimensional y las superficies que lo forman[Gor85].
1 ) Todas las fuentes de luz son consideradas emisores difusos, y todas las superficies
reflectores difusos. Estas dos consideraciones implican que los valores de radiancia
de salida son independientes de las direcciones de salida, ya que la BRDF es constante
para cada uno de los puntos de la superficie. Los datos a calcular son, por tanto, los
valores de radiancia integrados sobre todo el hemisferio.
2 ) La integración es transformada en un problema de elementos finitos. El entorno
entero es subdividido en patches (elementos de superficies), y se supone que todos los
puntos que pertenecen a un mismo patch tienen la misma BRDF. De esta forma, el
conjunto de todas las superficies de una escena puede escribirse como la unión de
todos sus patches disjuntos, es decir:
1.3.1. Transformación de la ecuación de radiosidad en un sistema deecuaciones.
La ecuación de radiosidad se deriva de la ecuación general de transporte de radiancia
(ecuación (1.31)), donde es una función definida en . Necesitamos por
tanto obtener un sistema de ecuaciones lineales que facilite la computación; para ello es nec-
esario proyectar sobre una base ortonormal del espacio [CW93]:
(1.34)
En las siguientes subsecciones se describen en detalle tanto las funciones base como la
deducción de la ecuación de radiosidad.
A Aii
∪
/ i j,( ) , Ai Aj∩∀ φ si i j≠= =
L x Θ→( ) A Ω×
A Ω×
L x Θ→( ) Le x Θ→( ) AzL z x→( )fr x( )G x z,( )dA∫+=
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
21
Funciones base
Las funciones base, denotadas por , son un conjunto de funciones usadas para
aproximar y de la siguiente forma:
(1.35)
donde n es el número total de funciones de base utilizadas.
Aunque se pueden construir muchas bases distintas, las funciones de base más usadas son
polinomios de bajo orden. Una solución utilizada frecuentemente es considerar constante la
radiosidad sobre todo el patch. Un ejemplo son las bases constantes, que se definen como:
(1.36)
Donde la superficie de los patches está limitada por el área de los patches, para la que se
calcula un solo valor de radiosidad.
Es de destacar que las funciones de base no dependen de la dirección , ya que estas
funciones tienen simetría esférica (tienen el mismo valor independientemente de la direc-
ción), y la siguiente propiedad de ortogonalidad:
(1.37)
Ecuación de radiosidad
Si descomponemos la ecuación (1.34) utilizando cada una de las funciones de base
Ni x Θ,( )
L x Θ→( ) Le x Θ→( )
L x Θ→( ) LjNj x Θ,( ) 3j 1=
n
∑≈
Le x Θ→( ) LejNj x Θ,( ) j 1=
n
∑≈
Ni x Θ,( )0 si x Ai∉
1 si x Ai∈
=
Θ
Ax ωΘNi x Θ,( )Nj x Θ,( ) Θ nx,( )cosdΩΘ
∫dA∫
πAi si i j≠
0 si i j=
=
Radiosidad en Multiprocesadores
22
, se obtiene:
Sustituyendo por las aproximaciones de la ecuación (1.35), la
igualdad anterior queda:
Considerando las funciones base constante, esta expresión se puede simplificar si nota-
mos que todas son cero, excepto sobre sus respectivos patches de superficies. Aplicando la
condición (1.36) la igualdad se simplifica a:
Ni x Θ,( )
Ax ωΘL x Θ→( )Ni x Θ,( ) Θ nx,( )cosdΩx
∫dA∫
Ax ωΘLe x Θ→( )Ni x Θ,( ) Θ nx,( )cosdΩx
∫dA∫=
+ Ax ωΘ AzL z x→( )fr x( )G x z,( )dA∫
Ni x Θ,( ) Θ nx,( ) , i .∀cosdΩx
∫dA∫
L x Θ→( ) y Le x Θ→( )
Ax ωΘ LjNj x Θ,( )j 1=
n
∑
Ni x Θ,( ) Θ nx,( )cosdΩx
∫dA∫
Ax ωΘ LejNj x Θ,( )j 1=
n
∑
Ni x Θ,( ) Θ nx,( )cosdΩx
∫dA∫=
+ Ax ωΘ Az LjNj z zx,( )j 1=
n
∑
fr x( )G x z,( )dA∫
Ni x Θ,( ) Θ nx,( ) , i ∀cosdΩx
∫dA∫
Ax ωΘ LiNi x Θ,( )( )Ni x Θ,( ) Θ nx,( )cosdΩx
∫dAi∫
Ax ωΘLeiNi x Θ,( )Ni x Θ,( ) Θ nx,( ) cosdΩx
∫dA∫=
+ Ax ωΘ AzLjNj z zx,( )fr x( )G x z,( )dAj∫ Ni x Θ,( ) Θ nx,( ) , i .∀cosd
Ωx
∫dAi
∫j 1=
n
∑
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
23
Aplicando la propiedad de ortogonalidad en la ecuación (1.34), nos quedará:
(1.38)
donde es igual a la BRDF (de tipo difuso) para el patch i, denotada por , y obtenida
integrando la BRDF sobre todo el hemisferio, tal que:
es la radiosidad autoemitida por el patch i, y que puede ser calculada con la siguiente
ecuación:
(1.39)
Dividiendo la ecuación (1.38) por , obtenemos que:
(1.40)
Definiendo , llamado factor de forma entre la superficie de los patches i y j, como:
(1.41)
la expresión (1.40) se escribirá:
(1.42)
El cálculo de los factores de forma es el núcleo de cualquier algoritmo de radiosidad. El
factor de forma, especifica la fracción de energía transferida del patch i al patch j; y es una
constante adimensional, que depende solamente de la geometría de la escena [CW93].
La ecuación (1.42) es la ecuación de transporte de radiancia discretizada. Usando los
operadores lineales, podemos introducir una notación abreviada, en la que:
AiπLi πAiLei πfriLj Ax AzG x z,( ) , i ∀dAj
∫dAi
∫j 1=
n
∑+=
fri ρi
ρi ωΘfri x( ) Θ nx,( )cosdΩx
∫ πfri = =
Lei
Lei
Ax ωΘLe x Θ→( )Ni x Θ,( ) Θ nx,( )cosdΩx
∫dA∫
Aiπ-------------------------------------------------------------------------------------------------------- =
πAi
Li Lei ρi Lj
Ax AzG x z,( )dAj
∫dAi
∫ Aiπ
-------------------------------------------- j 1=
n
∑+=
Fij
Fij
Ax AzG x z,( )dAj
∫dAi
∫ Aiπ
--------------------------------------------=
Li Lei ρi LjFij 3j 1=
n
∑+=
Radiosidad en Multiprocesadores
24
(1.43)
donde es el operador lineal de transporte que trabaja sobre una distribución completa de
coeficientes .
De esta forma todo el problema de la radiosidad puede ser escrito como un sistema lineal
de ecuaciones escribiendo la ecuación (1.43) para cada una de las i funciones de base, tal que:
(1.44)
Para mantener la coherencia con la terminologia empleada con más frecuencia en la bib-
liografía sobre el método de radiosidad, realizaremos un cambio en la nomenclatura. La radi-
ancia inicial (energía luminosa inicial de la escena) será denotada por E, y toma valores
distintos de cero sólo para las superficies que actúan como fuente de luz. La radiancia refle-
jada por cada patch (radiosidad) será denotada por R. Con esta notación podemos reescri-
bir la ecuación (1.44) como:
(1.45)
Este sistema de ecuaciones necesita ser resuelto numéricamente; en secciones posteri-
ores analizaremos las técnicas más utilizadas.
1.4. Cálculo de los Factores de Forma.
Una vez realizada la formulación matemática del problema de la iluminación global y del
método de radiosidad para la solución del mismo, nos centraremos en el estudio de diversos
métodos para calcular los factores de forma.
Li Lei ρi LjFijj 1=
n
∑+ Lei TdLi += =
Td
Li
1 ρ1F12– … ρ1F1n–ρ2F21– 1 … ρ2F2n–
… … … …ρ1nFn1– ρnFn2– … 1
L1
L2
…Ln
Le1
Le2
…Len
=
Li
L
1 ρ1F12– … ρ1F1n–
ρ2F21– 1 … ρ2F2n–
… … … …ρ1nFn1– ρnFn2– … 1
R1
R2
…Rn
E1
E2
…En
=
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
25
Los métodos desarrollados para calcular los factores de forma se pueden agrupar en tres
grupos: los métodos analíticos, los métodos de proyección y los métodos de ray-casting. En
esta sección describiremos su fundamento matemático y haremos un análisis comparativo de
ellos.
1.4.1. Métodos analíticos.
Sustituyendo la ecuación (1.21) en la expresión del factor de forma (1.41), y conside-
rando que la radiosidad es constante sobre todo el patch y en todas direcciones, podemos
obtener la siguiente expresión simplificada para dos patches i,j cualesquiera dentro de la
escena tridimensional:
(1.46)
La ecuación del factor de forma cambia si consideramos patches de área finita o de área
diferencial. Además, para dos patches i,j existe una relación de reciprocidad que tiene en
cuenta si la transferencia es de i a j ó de j a i. En la Tabla 1.1 se resumen las distintas expre-
siones que puede tomar el factor de forma, y las relaciones de reciprocidad asociadas a las
mismas.
Integral de contorno.
La integral (1.46) puede expresarse en una forma más conveniente. Sparrow [Spa63a]
Patches Ecuación del Factor de forma Relación de reciprocidad
diferencial adiferencial
diferencial a finito
finito afinito
Tabla 1.1 Factores de forma y relaciones de reciprocidad.
FAi Aj,1Ai-----
θi( ) θj( )coscos
πr2-------------------------------------Aj
∫Ai
∫ V i j,( )dAjdAi .=
FdAj dAi,θi( ) θj( )coscos
πr2-------------------------------------dAi =FdAi dAj, dAi FdAj dAi, dAj .=
FdAi Aj,θi( ) θj( )coscos
πr2-------------------------------------Aj
∫ V i j,( )dAj=dAiFdAi Aj, AjFAj dAi, .=
FAi Aj,1Ai-----
θi( ) θj( )coscos
πr2-------------------------------------Aj
∫Ai
∫ V i j,( )dAjdAi=AiFAi Aj, AjFAj Ai,=
Radiosidad en Multiprocesadores
26
observó que, aplicando el teorema de Stokes, se podía transformar la doble integral de área
en una doble integral de contorno, bajo la restricción de que los patches que intervienen en
el factor de forma sean totalmente visibles.
Supongamos un infinitesimal de área localizado en , tal que
es el vector normal a ese punto y queremos calcular el factor de forma respecto a un patch de
área finita . Si representa cualquier punto en el contorno de , y r es la
distancia desde a este punto, Sparrow demostró que este factor de forma se podía escri-
bir como:
Para dos elementos finitos y con sus respectivos contornos y el resultado
es bastante más simple:
(1.47)
donde r es la distancia entre los puntos de cada contorno.
La ecuación (1.47) es la base de los cálculos de factores de forma hecho por Goral
[Gor85], y fue también utilizada por Nishita y Nakamae [NN85].
Si consideramos la transferencia de energía desde un diferencial de área a un polígono de
área finita, la ecuación (1.47) adopta una forma más simple. Supongamos un polígono de n
lados, con n vértices, . Llamemos al triángulo formado por
, con normal (calculada como el producto escalar de dos de los
lados del triángulo). La figura Figura 1.14 muestra esta geometría.
dAi xi yi zi, ,( ) li mi ni, ,( )
Aj xj yj zj, ,( ) Cj Aj
dAi
FdAi Aj, lizj zi–( )dyj yj yi–( )dzj–
2πr2-----------------------------------------------------------Cz
∫°=
+ mixj xi–( )dzj zj zi–( )dxj–
2πr2-----------------------------------------------------------Cz
∫°
+ niyj yzi–( )dxj xj xi–( )dyj–
2πr2-------------------------------------------------------------- .Cz
∫°
Ai Aj Ci Cj
FA A, j
12πAi------------ r( )dxidxj r( )dyidyj r( )dzidzjln+ln+ln
Cj
∫°Ci
∫° =
Vi V i 1+( ) … Vn, , , Ti
dAi Vi V i 1+( )mod n( ), , Si
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
27
Figura 1.14 Geometría para calcular el factor de forma entre un diferencial de área y un polígono.
Definimos entonces como el ángulo entre y el plano , y como el ángulo más
cercano a del triángulo . El factor de forma viene entonces dado por la siguiente
expresión:
(1.48)
En el caso que los patches no sean totalmente visibles, por existir un tercer patch inter-
medio que los oculta parcialmente, el anterior desarrollo deja de ser válido. Sin embargo, una
solución es dividir sucesivas veces la superficie inicial, hasta que cada uno de los patches
resultantes sea totalmente visible, o invisible, desde el diferencial de superficie. La Figura
1.15 muestra como se calcularía este caso.
Figura 1.15 Solución para patches parcial o totalmente ocultos.
Si
α idAi
βi
V i 1+( )
Vi
α i Si dAi βi
dAi Ti
FdAi Aj,1
2π------ βi α i .cosi 1=
n
∑=
dAi
FdAi Aj, FdAi Aj1, FdAi Aj2,+=
Aj2
Aj1
Radiosidad en Multiprocesadores
28
Analogía de Nusselt.
La analogía de Nusselt [Nus28] supone una semiesfera de radio unitario cuya base se
encuentra centrada en , tal como se muestra en la Figura 1.16. Trazando líneas desde
hasta se puede proyectar el contorno de sobre la superficie de la semiesfera. Tra-
zando paralelas a la normal n desde la proyección a la base de la semiesfera podemos hallar
la proyección de j sobre dicha base. Si llamamos Ap al área de dicha proyección, el factor de
forma se expresa como:
(1.49)
Figura 1.16 Geometría para la analogía de Nusselt.
Para calcular el área Ap, supongamos que el patch es un diferencial, lo cual es válido
si consideramos que el patch i es mucho más pequeño que el patch j. El ángulo sólido suste-
ntado por visto desde será:
El ángulo sólido es igual al área de la proyección de sobre la semiesfera unitaria. La
proyección de esta área sobre la base de la semiesfera da:
(1.50)
Se puede obtener el área finita Ap integrando la ecuación (1.50) sobre el área finita , tal
que:
dAi dAi
Aj Aj
FdAi Aj–Apπ------- =
i Ap
j
radio 1=
n
dAi
dAj
i
dAj dAi
dωθjdAjcos
r2---------------------- =
dAj
dAp θidωcosθi θjdAjcoscos
r2------------------------------------ = =
Aj
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
29
A diferencia de la integral de contorno, la analogía de Nusselt no necesita que el área
finita sea un polígono.
En el pasado, los ingenieros en iluminación [OB64], realizaban estas proyecciones y
medían los valores del factor de forma para objetos de la vida real como ventanas, edifica-
ciones, etc. Más recientemente Bian [Bia 92] mostraba como proyectar polígonos de n lados
sobre la superficie de una semiesfera y calcular analíticamente su factor de forma.
Sin embargo como se puede ver, las soluciones analíticas requieren complicados algorit-
mos de ocultamiento de superficies para determinar el factor de forma en entornos comple-
jos, por lo que rápidamente se impusieron los algoritmos de integración numérica, los cuales
se detallan a continuación.
1.4.2. Métodos de Proyección.
Como hemos visto en la analogía de Nusselt, el factor de forma entre un área diferencial
y un patch finito tienen mucho en común con el ángulo sólido. La idea básica de los métodos
de proyección es construir una biblioteca de ángulo sólidos , y precalcular los factores de
forma asociados con cada ángulo sólido k. De esta forma, dado que para cualquier
patch j podemos aproximar su ángulo sólido respecto a , y como los ángulos sólidos
no se solapan, podemos unir elementos de la biblioteca, y sumar los factores de forma corre-
spondientes a dichos elementos, de forma que:
Dado que el ángulo sólido sustentado por el patch j respecto al i es el mismo para cual-
quier superficie de proyección, independientemente de la forma de dicha superficie, tal como
se muestra en la Figura 1.17, los diversos métodos de proyección seleccionan superficies de
proyección para las cuales se conozcan algoritmos de proyección eficientes.
Apθi( ) θj( )coscos
πr2-------------------------------------Aj
∫ dAj =
Aj
Γk
FdAi Γ k–
Γ j dAi
ΓB Γ1 Γ2 … Γn FdAi B, FdAi Γ1– FdAi Γ2– … FdAi Γn– + + +=⇒∪ ∪ ∪=
Radiosidad en Multiprocesadores
30
Figura 1.17 Ángulo sólido de la superficie j para diferentes superficies de proyección (A,B,C).
Para construir la biblioteca de factores de forma, usualmente llamada factores de forma
delta; la superficie de proyección es inicialmente situada sobre una superficie diferencial
imaginaria , y subdividida en n elementos disjuntos, tras lo cual se calcula el factor de
forma para cada uno de estos elementos.
Una vez creada esta biblioteca, para calcular el factor de forma de un determinado patch
se proyecta sobre la superficie, se determinan los elementos cubiertos por la proyección, y se
suman los factores de forma delta correspondientes.
En las siguientes secciones se estudian los métodos de proyección más representativos:
el método del hemicubo, y el método del tetraedro cúbico.
Método del hemicubo.
El método del hemicubo fue el primer método de proyección usado para generar gráficos
por computador fotorrealistas. Desarrollado por Cohen y Greenbenrg [Coh85], rodea al
patch diferencial con la mitad de un cubo, colocando la cara de mayor dimensiones sobre el
patch diferencial, y las cuatro medias caras restantes a su alrededor. La Figura 1.18 muestra
esta disposición
dAi
j
B
C
D
A
dAi
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
31
Figura 1.18 Geometría de proyección para el método del hemicubo.
El método del hemicubo es un ejemplo clásico de una técnica de integración numérica
llamada cuadratura numérica. En ella la función (llamada kernel de la integral), que
evalúa la función en los n elementos de la superficie de proyección, es integrada
sobre un intervalo de tal forma que:
(1.51)
donde determina el intervalo en el cual se evalúan dichos puntos. Sustituyendo la
ecuación (1.50) en la ecuación (1.49), y aproximando el diferencial de área por ,
podemos obtener la siguiente expresión general para calcular los factores de forma delta:
(1.52)
donde ahora se refiere a los elementos del hemicubo y es una fracción finita del área
de la cara del hemicubo. Una vez calculado estos factores de forma delta, son almacenados
en una tabla para su posterior utilización [SP94].
Cálculo de los factores de forma delta.
El cálculo de los factores de forma delta para el hemicubo es fácil. Consideremos por
ejemplo un elemento situado en la cara superior del hemicubo, tal como se muestra en la Fig-
ura 1.19. Tomando la altura del hemicubo igual a uno, para facilitar los cálculos, tenemos
f x( )
x0 ... xn, ,( )
a b[ , ]
f x( ) xda
b
∫ wjf xj( ) j 0=
n 1–
∑=
wi
dAj Aj∆
FdAi Aj,∆θi θjcoscos
πr2--------------------------- Aj ∆=
Aj Aj∆
Radiosidad en Multiprocesadores
32
que:
Figura 1.19 Geometría para el cálculo de los factores de forma delta para la cara superior.
Partiendo de la ecuación (1.52):
(1.53)
donde es el área del elemento de la cara superior del hemicubo.
Si consideramos un elemento situado en las caras laterales del hemicubo, como se mues-
tra en la Figura 1.20, tenemos que por lo que:
y:
(1.54)
Figura 1.20 Geometría para el cálculo de los factores de forma de las caras laterales.
r u2 v2 1+ +=
θicos θjcos 1r--- .= =
dAiv
uθi
rθj
n
U
V
1A∆
Fsuperior∆θi θjcoscos
πr2--------------------------- Asuperior∆Asuperior∆
π u2 v2 1+ +( )2-------------------------------------= =
Asuperior∆
v 1±=
r u2 n2 1+ +=
θicos nr--- , θjcos 1
r--- ,= =
Fcara∆θi θjcoscos
πr2--------------------------- Acara∆n Acara∆
π u2 n2 1+ +( )2------------------------------------- .= =
dAi
u1–
rθi
θjA∆
n
U
V
1
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
33
Análogamente, el factor de forma delta para las caras en las que viene dado por
(1.54), simplemente cambiando u por v.
El número de factores de forma delta a almacenar puede reducirse considerablemente
aprovechando simetrías. Usando que la cara superior del hemicubo tiene simetría en ocho
octantes, y las caras laterales en dos, sólo es necesario almacenar factores de forma delta
para un hemicubo de resolución
Cálculo del factor de forma.
Una vez calculados los factores de forma delta, para determinar el factor de forma de dos
patches arbitrarios debemos poner el hemicubo sobre uno de ellos y calcular la proyección
del otro sobre las caras del hemicubo.
Supongamos por ejemplo que queremos calcular el factor de forma desde el patch
a un patch arbitrario en el entorno. Para ello, colocaremos el hemicubo sobre el patch i,
y llamaremos a las coordenadas del punto central de la base del hemicubo. Con
el fin de realizar la proyección, se determina para cada una de las caras del hemicubo un
campo de visión y un sistema de coordenadas, como se muestra (respectivamente) en la Fig-
ura 1.21 (a y b). Para la proyección de un patch arbitrario j es necesario transformar sus
coordenadas tomando como origen el punto (Ox,Oy,Oz), utilizando la matriz de transfor-
mación M dada por:
u 1±=
3n2
8--------
nxn
Fij
i j
Ox Oy Oz, ,( )
M
ux uy uz tx
vx vy vz ty
nx ny nz tz
0 0 0 1
=
tx Oxux– Oxuy– Oxuz–=tx Oxvx– Oxvy– Oxvz–=tx Oxvx– Oxvy– Oxvz–=
Radiosidad en Multiprocesadores
34
Figura 1.21 (a) Volumen de visión (b) Sistema de Coordenadas para el hemicubo.
En entornos complejos se utiliza la técnica del z-buffer para eliminar superficies ocultas,
y técnicas de recorte de polígono para establecer qué porciones de los polígonos están dentro
del volumen de visión establecido por cada cara del hemicubo. Una vez que se tiene la
proyección sobre las caras del hemicubo, el factor de forma se puede expresar como la suma
de los factores de forma delta de los elementos que cubre dicha proyección. Se puede encon-
trar una descripción más detalla sobre las técnica de z-buffer y recorte de polígonos aplicados
al cálculo de los factores de forma, en [GK93], [Hai91], [RBH90], [Max95].
El algoritmo del hemicubo ha sido el método más empleado para calcular el factor de
forma en radiosidad ([EJLA91], [Gat91], [RBH91], [Nec97], [MT93]). Sin embargo, los
métodos de ray-casting (que se describirán en la sección 1.4.3.) son mucho más eficientes,
por lo que hoy en día el método del hemicubo ha caído en desuso.
Método del tetraedro cúbico.
Frente a la semiesfera de Nusselt, el hemicubo de Cohen proporciona una geometría más
simple para proyectar los polígonos y calcular los factores de forma. Sin embargo, la cara
superior y las caras laterales tienen diferentes geometrías, y requieren por tanto distintas
ecuaciones para calcular los factores de forma, por lo que es necesario proyectar cada
polígono por separado sobre las cinco caras. Una solución a este problema es utilizar otra fig-
ura geométrica más simple sobre la que realizar la proyección.
Beran-Koehm y Pavicic [BKP91][BKP92] observaron que el hemicubo no es más que
un cubo biseccionado por el plano sobre el que descansa. Si se rota el cubo y su sistema de
coordenadas sobre este plano (de forma que el plano corte tres de los vértices del cubo) se
Cara del hemicubo
Punto de vista(Ox,Oy,Oz)
n
v
u
(a) (b)
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
35
obtiene otro objeto geométrico, denominado tetraedro cúbico. La Figura 1.22 se muestra
como se obtiene el tetraedro a partir del hemicubo.
Figura 1.22 Geometría para el método del tetraedro cúbico.
Como sólo nos interesa el ángulo sólido sustentado por cada elemento de las caras, el
tamaño del cubo es indiferente. En consecuencia, es conveniente usar un cubo que tenga tres
unidades de arista. Esto coloca los vértices (v0,v1,v2) de la base del tetraedro cúbico en 1,
1, -2, 1, -2, 1 y -2, 1, 1, respectivamente, mientras su vértice superior está exactamente
en 1,1,1, una unidad por encima del centro del tetraedro cúbico.
Usando esta figura tendremos tres caras triangulares idénticas sobre las que proyectar el
resto de los patches. La homogeneidad de la figura de proyección permite una disminución
sustancial en el tiempo de cálculo de los factores de forma.
Por supuesto, el cambio de esta figura implica un cambio en los factores de forma delta.
Partiendo de la ecuación (1.52), y siguiendo el desarrollo presentado por Beran-Kohen y
Pavicic [BKP92], el término es igual a:
(1.55)
donde S es el vector desde el origen hasta el centro del elemento de la cara, y r es su longitud,
tal como se muestra en la Figura 1.23. Expresado en términos del espacio de coordenadas del
tetraedro cúbico, la normal al polígono es el vector , por lo que
θicos
θicosS ni•
S-------------S ni•
r------------- = =
ni13---
13---
13---, ,
Radiosidad en Multiprocesadores
36
Figura 1.23 Geometría para el cálculo del factor de forma de un pixel.
Para los elementos que pertenecen a la cara del tetraedro perpendicular al eje v, el término
se expresa como:
(1.56)
donde el elemento se describe por el vector . Como además, la cara cae sobre
el plano , entonces:
(1.57)
El mismo resultado es extensible a las otras dos caras. Así, para cualquier elemento
del tetraedro, tenemos:
(1.58)
donde e van desde 1 a -2
Aunque la ecuación (1.58) describe los factores de forma delta para los elementos del tet-
raedro cúbico, no considera los elementos triangulares en la base de cada cara. Beran-Koehn
y Pavicevic [BKP92] plantearon dos soluciones posibles para este caso. La primera, si la res-
olución es lo suficientemente alta, es simplemente ignorar esos elementos (pues su con-
tribución al factor de forma total es despreciable). La segunda, si la resolución no es lo
suficientemente alta, consiste en incluirlos, pero suponiendo que sus áreas son la mitad que
la de los demás elementos.
θicosSu Sv Sn+ +
r 3---------------------------- .=
dAi
Ajnj
Snir
θi
θj
θjcos
θjcosS– nj•
S----------------S– nj•
r---------------- = =
nj 0 1 0,–,( )
v 1=
θjcosSvr-----
1r---= =
Ej
FdAi Aj–∆Su Sv Sn+ +
πr4---------------------------- Aj∆ x y 1+ +
π x2 y2 1+ +( )2
3-------------------------------------------- Aj∆= =
x y
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
37
Gracias a la simetría del tetraedro cúbico, sólo es necesario almacenar los factores de
forma delta de una sola cara. En consecuencia para una resolución de elementos por
cara completa del cubo, se necesita almacenar tan solo valores de coma flotante. Adicio-
nalmente el tetraedro cúbico tiene tan solo elementos. Si consideramos que el hemicubo
tiene elementos, y que en él es preciso almacenar valores, resulta evidente la
economía conseguida en los cálculos y requerimientos de memoria.
Sin embargo, el tetraedro cúbico tiene también algunas desventajas frente al hemicubo.
En particular, Beran-Koehn y Pavicic [BKP92] demostraron que un tetraedro cúbico debe
tener una resolución de elementos para ser equivalente a un hemicubo de res-
olución elementos.
Condiciones de aplicabilidad de los algoritmos del hemicubo y tetraedro cúbico.
En la aplicación de los métodos del hemicubo y del tetraedro cúbico se realizan una serie
de consideraciones, que de ser violadas reducen la precisión del algoritmo. Si suponemos un
hemicubo centrado sobre un patch se deben verificar las siguientes condiciones para la uti-
lización correcta del método del hemicubo:
1) Condición de Proximidad: La distancia entre el patch y cualquiera de los restantes
patches que forman el entorno debe ser mayor que el tamaño de .
2) Condición de Visibilidad: La visibilidad de no debe variar a lo largo de toda la
superficie de .
3) Condición de Aliasing: El muestreo periódico de los elementos de las caras del
hemicubo debe ser suficiente para obtener una buena calidad en la proyección de .
A continuación discutiremos como influye la violación de cada una de estas consid-
eraciones en la precisión de los cálculos.
1 ) Condición de Proximidad: Supóngase dos patches como los que se muestran en la
Figura 1.24. Si calculamos los factores de forma suponiendo que el hemicubo se coloca
en los centros de cada patch y los comparamos con los resultados de la solución analítica,
n n×n2
4-----3n2
2--------3n2 3n2
8--------
2n 2× n
n n×
i
i
j i
i
j
j
Radiosidad en Multiprocesadores
38
obtendremos los resultados de la Tabla 1.2
Figura 1.24 Condición de proximidad.
Podemos observar que los valores son prácticamente iguales para ambos métodos,
pero los valores difieren considerablemente. Esto es debido a que en el método del
hemicubo sólo se tiene en cuenta un punto situado en el centro del patch.
En efecto, la distancia de cualquier punto de a un punto fijo de es prácticamente
constante, mientras la distancia entre un punto fijo de y cualquier punto de puede
variar ampliamente. En consecuencia el ángulo sólido sustentado por hacia cualquier
punto de es constante, pero el ángulo sólido sustentado por hacia cualquier punto de
varía.
Ya se ha comprobado anteriormente la estrecha relación existente entre ángulo sólido y
factor de forma, por lo que esta variación del ángulo sólido provocará, inevitablemente, vari-
aciones en los valores de los factores de forma.
2 ) Condición de visibilidad: En el método del hemicubo sólo se utiliza la información
de visibilidad desde el punto central del patch, asumiendo como hipótesis simplificadora
que esta información es válida para el resto del patch. Pero si un patch ocluye otros dos
de forma tal que la línea que une los centros de los mismos sigue siendo visible, el
método del hemicubo considera que estos patches son totalmente visibles entre sí,
cuando en realidad solo lo son parcialmente (Figura 1.25). Análogamente se puede dar
el caso que los patches se consideren totalmente ocultos, cuando en realidad sólo lo están
Factor de Forma Método Analítico Método del Hemicubo
Fj,i 0.247 0.234Fi,j 0.0494 0.0074
Tabla 1.2 Error por proximidad.
5
1
1
pj
pi
Fj i,
Fi j,
pj pi
pj pi
pi
pj pj
pi
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
39
parcialmente.
Figura 1.25 Violación de la condición de visibilidad.
La Figura 1.26 muestra el efecto que produce la violación de la condición de visibilidad
sobre la iluminación de la escena. En (a) se puede apreciar cómo, si consideramos un solo
patch para representar el polígono inferior, el hemicubo centrado en este patch se considera
totalmente visible respecto a la fuente (patch superior), esto hace que el patch inferior
aparezca totalmente iluminado (gris) cuando en realidad no es así, dado que el patch inter-
medio oculta parcialmente al patch inferior. La Figura 1.26 (b) muestra como sera la ilumi-
nación sobre el patch inferior si la condición de visibilidad no se viola.
Figura 1.26 Efecto de la violación de la condición de visibilidad en la iluminación.
3 ) Condición de aliasing: El fenómeno de aliasing se produce debido a la interacción
del muestreo periódico y la resolución finita del método del hemicubo. La Figura 1.27
muestra cómo es posible sobreestimar o subestimar el valor de los factores de forma,
debido a la resolución periódica y limitada. Una consecuencia de este fenómeno es que
un patch grande y distante respecto a una fuente de luz puede no ser tenido en cuenta en
absoluto cuando utilizamos el método del hemicubo.
superficie 1
superficie 3
oculta
superficie 2
(a) (b)
Radiosidad en Multiprocesadores
40
Figura 1.27 Violación de la condición de aliasing.
La Figura 1.28 muestra con un sencillo ejemplo sencillo el patrón de sombra que se forma
debido del muestreo periódico. El patch actúa como una fuente de luz sobre la cual se
ubica el hemicubo. En la Figura 1.29 (a) se muestra un ejemplo donde se manifiesta este
efecto de aliasing.
Figura 1.28 Violación de la condición de aliasing por el muestreo uniforme.
El error producido por la resolución finita del hemicubo se puede minimizar aumentando
la resolución del mismo, aunque siempre teniendo en cuenta que duplicar la resolución
implica aumentar al cuadrado la complejidad del algoritmo. La Figura 1.29 (b, c) muestra
como disminuye el aliasing al aumentar la resolución del hemicubo.
Por otra parte, el error producido por el muestreo uniforme se puede eliminar rotando de
forma aleatoria el hemicubo sobre su eje.
Proyección de la superficie
Elementos
SOBRESTIMADO SUBESTIMADO
cubiertos
por la proyección
i
i
Cara del hemicubo
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
41
Figura 1.29 Efecto de aliasing en la iluminación de la escena.
1.4.3. Algoritmo de ray-casting para el cálculo de los factores de forma.
Los algoritmos de ray-casting también se han utilizado para calcular el factor de forma
[Mal88], [MBG86], [Pel97]. En estos trabajos se calcula el factor de forma entre una super-
ficie y una o más superficies trazando rayos de forma aleatoria sobre la semiesfera
ubicada sobre la superficie i.
Estos algoritmos que se basan en el método de Montecarlo para calcular los factores de
forma son llamados comúnmente en la literatura métodos de ray-casting estocástico. Si bien
permiten representar superficies curvas de mejor forma y reducen el coste computacional, la
propia naturaleza aleatoria del método no garantiza una buena precisión en los cálculos.
Wallace [WEH89][WEH94] propuso un método llamado ray-casting determinístico, que
en vez de suponer el polígono emisor como una fuente de área finita y determinar el factor
de forma visto desde cada vértice de los polígonos receptores del entorno; subdivide la fuente
de manera que su tamaño sea mucho más pequeño que la distancia al vértice. Posteriormente
se calcula el factor de forma delta para cada uno, expresando factor de forma vértice - super-
ficie como la suma de todos ellos.
Aunque se puede utilizar el método de la integración de contorno para calcular cada uno
de estos factores de forma delta, es muy costoso computacionalmente, y además existe el
problema de la eliminación de superficies ocultas. Wallace propuso como solución a este
problema aproximar cada uno de los pequeños polígonos de la fuente por un disco orientado
arbitrariamente.
(a) (b) (c)
i j
Radiosidad en Multiprocesadores
42
De este trabajo (y del análisis realizado por Siegel y Howell [SH92]), el factor de forma
analítico de un diferencial de área paralelo a un disco finito de radio y a una dis-
tancia de este (Figura 1.30 a,b) sería:
(1.59)
Figura 1.30 Cálculo del factor de forma entre un disco arbitrario a un diferencial de área.
Si consideramos la geometría de la Figura 1.30 (a) donde , y utilizando la
propiedad de reciprocidad correspondiente para el factor de forma (Tabla 1.1) tendremos:
(1.60)
donde es el área de un elemento diferencial que rodea el vértice, y es el área aprox-
imada del polígono fuente .
Podemos generalizar este resultado incluyendo los cosenos de los ángulos entre las
superficies normales y la dirección entre y Figura 1.30 (b). Esto es sólo una aproxi-
mación, pero nos resultara muy útil para expresar el factor de forma como:
Si dividimos el polígono fuente lo bastante fino (en k subdivisiones), podemos modelar
cada como un diferencial de área, y trazar una sola recta desde el vértice del receptor .
Si la recta corta cualquiera de los polígonos, entonces esa porción de la fuente está oculta.
Asumiendo un polígono fuente plano que ha sido subdividido, Figura 1.31, su factor de
forma desde el vértice es:
dAj Ai a
r
FdAj Ai,a2
r2 a2+( )--------------------- =
dAj
Aiθi
θjr
a a Ai
r
dAj
(a) (b)
θi θj 0= =
FAi dAj,dAj
πr2 Ai+( )------------------------ =
dAj j Ai
i
dAj Ai
FAi dAj,dAj θj θicoscos
πr2 Ai+( )------------------------------------=
Ak dAj
j
FAi Aj,dAjn-------- VISk
θjk θikcoscos
πrk2 Ai
n-----+
-------------------------------- k 1=
n
∑=
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
43
donde: es el número de polígonos subdivididos y es la función de visibilidad, que
vale uno si el k- esimo polígono fuente es visible para el vértice; y cero en caso contrario.
Figura 1.31 Cálculo de los factores de forma por el método de Ray - Casting.
Usando la relación de reciprocidad tenemos que:
(1.61)
Es importante hacer notar que la ecuación (1.61) asume que el polígono de origen se
puede modelar como un disco circular. Esta aproximación es válida para triángulos
equiláteros y para polígonos cuadrados, pero no modela con precisión polígonos alargados.
El ray-casting determinístico, es computacionalmente más costoso que el ray casting
estocástico, pero garantiza una mayor precisión en los cálculos [Kwo92]. Las diversas imple-
mentaciones de algoritmos de radiosidad que hemos desarrollado, y que se exponen en esta
misma memoria, utilizan únicamente el método de ray-casting determinístico para la deter-
minación de los factores de forma. En consecuencia, y para simplificar la terminología, cual-
quier mención hecha en el resto de la memoria al método de ray-casting para el cálculo de
los factores de forma se referirá al método determinístico.
Distribución de los puntos de muestreo en el polígono fuente.
La precisión del método de ray-casting esta íntimamente ligado al número de rectas que
se trazan desde el vértice a la fuente. El problema básico será, por lo tanto, elegir la cantidad
y posición de puntos en la fuente. Una aproximación es usar los vértices del elemento que
n VISk
dAj
vértice j
Ak
FAj Ai,Ai
dAj--------FAi Aj,
Ain-----= VISk
θjk θikcoscos
πrk2 Ai
n-----+
-------------------------------- 24k 1=
n
∑=
Radiosidad en Multiprocesadores
44
definen el patch fuente. Sin embargo, dependiendo de la distancia desde el origen hasta el
receptor, la resolución obtenida puede o no ser adecuada. Por otra parte, el espaciado uni-
forme de los vértices de los elementos pueden causar problemas de aliasing. Wallace
[WEH89] demostró que cualquier fenómeno de aliasing será particularmente ostensible en
los límites de sombra, dándoles apariencia de escalera.
Una segunda aproximación es calcular la radiosidad de los vértices, y luego promediarlos
con la de sus vecinos más cercanos. Sin embargo, la mejor aproximación consiste en elegir
un conjunto de puntos aleatorios del polígono de fuente. Cuantas más rectas se tracen desde
el receptor, mejor será el resultado obtenido, de forma que las direcciones aleatorias de los
rayos minimizarán los efectos de aliasing.
En nuestra implementación se ha utilizado una técnica simple desarrollada por Turk para
la elección de puntos aleatorios en triángulos y polígonos convexos. Para determinar el
número de rayos a disparar, Wallace [WEH89] realizó una subdivisión adaptativa del
polígono fuente, de manera que cada área subdividida tenga, aproximadamente, el mismo
factor de forma visto desde el vértice del receptor. De esta forma se obtienen excelentes
resultados disparando entre 4 o 16 rayos por cada vértice del receptor.
La función de visibilidad (VIS). Intersecciones polígono - rayo.
Un factor de gran importancia en la eficiencia de los algoritmos de ray-casting es la rapi-
dez con que se detecte la presencia de oclusiones. Badouel [Bad90] desarrolló un algoritmo
para resolver de forma eficiente el problema de la intersección con polígonos.
Sea S un vértice de patch receptor, y E un punto (arbitrario) en el polígono de origen. El
primer paso del algoritmo es definir una recta, cuyo origen es S, y cuya dirección viene dada
por el vector (tal como se muestra en la Figura 1.32)
Figura 1.32 Intercepción Rayo -Polígono.
r E S–=
S
n
r
E
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
45
Expresado de forma paramétrica la ecuación de la recta es:
(1.62)
donde describe un punto en la dirección de , y valores , describen puntos a
lo largo del rayo entre y . Se desea determinar si la recta corta un polígono arbitrario
entre S y E. Como los vértices de este polígono definen un plano, es posible averiguar es si
el rayo corta a este plano mediante la ecuación:
(1.63)
donde es la normal al polígono, es el vector desde el origen del espacio de nuestro
mundo virtual al vértice receptor , y es la distancia desde el origen del mundo virtual
hasta el punto más cercano del plano. Se verifica que:
donde es el vector desde el origen del mundo virtual hasta cualquier punto del plano; por
conveniencia, usaremos el primer vértice del polígono.
El denominador de la ecuación (1.63) se evaluará primero, para evitar un error de
división por cero; si fuera igual a cero, el rayo es paralelo al polígono, y por lo tanto no lo
corta.
A continuación se evaluará la ecuación (1.63) para hallar . Si , el plano está antes
del vértice receptor . Si , el plano está por detrás del punto fuente . En otro caso, el
rayo corta al polígono entre y .
En este último caso, es necesario determinar si el polígono intermedio corta realmente, o
no, a la recta . Supongamos que el polígono es un triángulo de vértices p0, p1, p2, y que
representa el punto de corte rayo - polígono. Si definimos como el vector que va desde
hasta , como el vector desde hasta y el vector desde hasta (Fig-
ura 1.33), el vector suma será:
(1.64)
p t( ) S tr .+=
p t( ) r 0 t 1≤ ≤
S E
t d n S•–n r•-------------------- =
n r
S d
d n p •=
p
t t 0<
S t 1> E
S E
p t( )
Q Q
p0 Q v1 p0 p1 v2 p0 p2
Q αv1 βv2 +=
Radiosidad en Multiprocesadores
46
Figura 1.33 Determinación del punto de intercepción dentro del polígono.
donde y son constantes. El punto de intersección estará dentro del polígono si, y sola-
mente si, . Expresando la ecuación (1.64) en los componentes de los
ejes del mundo virtual, tenemos:
(1.65)
Hemos de resolver la ecuación para obtener los valores de y . Para ello proyectare-
mos el triángulo y los vectores de la figura sobre el plano , o , de forma que
sólo necesitaremos dos de las tres ecuaciones anteriores. Para realizar esta proyección debe-
mos asegurarnos de que el polígono no es perpendicular al plano, de otra manera la proyec-
ción será sólo una línea recta. Por ello, necesitamos encontrar el eje dominante de la normal
del polígono (por ejemplo, la componente que tenga la mayor magnitud) y elegir un plano
perpendicular a éste; dada la normal del polígono , elegiremos un eje de
la forma:
Entonces proyectando sobre el plano perpendicular a este eje, y definiendo los ejes de
este plano como y , tendremos:
p1
p2
p0
v1
v2
αv1
βv2Q
α β Q
α 0 β 0 α β 1≤+,≥,≥
xQ x0– α x1 x0–( ) β x2 x0–( )+=
yQ y0– α y1 y0–( ) β y2 y0–( )+=zQ z0– α z1 z0–( ) β z2 z0–( )+=
α β
x y– x z– y z–
n nx ny nz, ,( )= q
qx si nx = max nx ny nz, ,( )
y si ny = max nx ny nz, ,( )
z si nz = max nx ny nz, ,( )
.=
s t
s0 Qs p0s , t0– Qt p0t–= =s1 p2s p0s , t1– p1t p0t –= =s2 p2s p0s , t2– p2t p0t .–= =
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
47
Substituyéndolo estas expresiones en la ecuación (1.65), tenemos:
O, expresado en forma matricial
Usando la regla de Cramer, la solución de esta ecuación es:
La resolución de esta ecuación, nos permite determinar si la recta corta al polígono trian-
gular. Este resultado puede ser extendido a cualquier polígono convexo si lo dividimos en
triángulos.
Regla de las cinco veces.
Tanto para la aproximación simplificada de la solución analítica para polígonos planos
convexos como para el método de ray-casting hemos considerado el patch emisor como una
fuente puntual, sin haber especificado bajo qué condiciones esta aproximación es cierta.
Si un polígono pequeño (pero finito) se coloca paralelamente a un gran emisor, pero a
una distancia infinitesimal, interceptará sólo una pequeña porción del flujo emitido. Sin
embargo, modelar el emisor como una fuente puntual nos llevaría a la conclusión de que se
intercepta casi todo el flujo de luz emitido, lo cual es erróneo. Es necesario, pues, determinar
cuándo es posible justificar esta aproximación.
s0 αs1 βs2+=t0 α t1 βt2+=
s1 s2
t1 t2
αβ
s0
t0 =
α
dets0 s2
t0 t2
dets1 s2
t1 t2
-------------------------s0t1 s2t0–s1t2 s2t1–------------------------= =
β
dets1 s0
t1 t0
dets1 s2
t1 t2
-------------------------s1t0 s0t1–s1t2 s2t1–------------------------ .= =
Radiosidad en Multiprocesadores
48
Murdoch [Mur81] demostró que, en una predicción de la iluminación usando la ley del
cuadrado inverso, un rectángulo luminoso lambertiano considerado como un punto luminoso
da, en el peor de los casos, un error en la predicción menor que % siempre que la distancia
desde el punto iluminado al rectángulo sea de al menos, cinco veces su anchura. En otras pal-
abras, el rectángulo luminoso debería sustentar un ángulo menor que 0,2 radianes (11,5 gra-
dos, aproximadamente) vistos desde el punto iluminado tal como se ilustra en la Figura 1.34.
Figura 1.34 Geometría para la regla de las cinco veces.
Esta regla de las cinco veces ha sido confirmada por algunos otros estudios detallados de
los errores en el cálculo del factor de forma, como son las realizados Saraiji y Mistrick
[SM92a], Emery et. al. [EJLA91], Baum [BRW89], Max y Troutman [TM93], y Sbert
[Sbe93].
Es conveniente destacar que, si la regla de las cinco veces es violada por dos patches cual-
quiera, siempre es posible subdividir el patch emisor hasta que la regla sea satisfecha para
cada nuevo subpatch. Como en algunas disposiciones geométricas no se satisface nunca la
regla, es necesario el uso de una norma heurística que evite posteriores subdivisiones cuando
los patches fuesen demasiado pequeños para resultar significativos.
Ventajas del algoritmo de ray-casting.
El método de ray-casting ofrece numerosas ventajas respecto al método del hemicubo y
tetraedro cúbico para el cálculo del factor de forma.En este apartado analizaremos algunas
de estas ventajas.
La primera es la eficiencia en el muestreo del entorno tridimensional. El método de ray-
casting realiza el muestreo desde la fuente a cada uno de los vértices que forman el entorno
tridimensional, lo que nos permite modelar figuras más complejas. También se elimina el
efecto de aliasing que se produce en el hemicubo por el muestreo uniforme.
1±
1
5>
11 5º,<
Emisor
Superficie Receptora
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
49
El método de ray-casting considera todas las fuentes, independientemente de su tamaño;
por el contrario, en el método del hemicubo existe la posibilidad de que fuentes pequeñas y
lejanas no sean tenidas en cuenta. Esta característica permite el uso de fuentes puntuales
(spot light) en la descripción de la escena, lo cual resulta especialmente interesante, pues
estas fuentes luminosas son unas de las mas utilizadas en los programas de CAD para la gen-
eración de entornos tridimensionales.
Otra ventaja del método de ray-casting está relacionada con el sombreado, a la hora de la
renderización. La última etapa de todo algoritmo de renderizado de imágenes, usando el
algoritmo de radiosidad, es realizar el sombreado de Goraud para todos los patches visibles
en la escena. Este algoritmo requiere conocer la radiosidad en los vértices de los patches; sin
embargo, el método del hemicubo calcula el factor de forma sólo en el centro de los patches,
por lo que es necesario calcular la radiosidad en los vértices mediante interpolación lineal de
la radiosidad en los centros de los patches. En cambio, el método de ray-casting calcula la
radiosidad directamente en los vértices de los patches, evitando la necesidad de interpolar.
Otra ventaja es que, utilizando el método de ray-casting, las superficies que forman la
escena se pueden describir como mallas de patches y elementos, lo cual no es posible usando
el método del hemicubo. Así por ejemplo, Wallace [WEH91] utilizó un spline cuadrático
para modelar superficies complejas curvas. Esta superficie se representaba como una malla
de 1176 elementos para realizar los cálculos de radiosidad y renderizado; pero con la ventaja
de que, para el cálculo de la función de visibilidad, se utilizaba la ecuación implícita de la
spline cuadrática.
Finalmente, en el método de ray-casting los factores de forma se calculan bajo demanda,
a diferencia del método del hemicubo, que necesita tener almacenado un grupo de factores
de forma para cada patch del entorno.
Sin embargo, el método de ray- casting tiene algunas desventajas. Por ejemplo, el método
del hemicubo procesa cada elemento del entorno una sóla vez para cada patch. Dado m
patches y n elementos, se puede plantear que de forma general la complejidad del algoritmo
es de . Por el contrario, como en el método de ray-casting se procesa cada patch del
entorno una vez para cada vértice, y este procesamiento incluye comprobar oclusiones con
cada elemento del entorno, la complejidad computacional es de . En general, las
ventajas del método de ray-casting compensan ampliamente las desventajas del mismo.
O mxn( )
O m2xn( )
Radiosidad en Multiprocesadores
50
1.5. Solución numérica del sistema de ecuacionesde radiosidad.
En secciones anteriores se llegó a un sistema de ecuaciones (1.45) de la forma
, donde representa la emisión inicial de los patches. La matriz A se construye
a partir de las funciones de base y de los factores de forma, y R es el vector que representa la
radiosidad sobre los patches. Existen diversos métodos para resolver numéricamente este
sistema de ecuaciones; en este apartado describiremos los métodos más empleados.
1.5.1. Métodos directos
El sistema de ecuaciones, para una matriz A cuadrada no singular, se puede escribir como
. Esta forma de calcular el vector de las incógnitas R no es práctico, puesto que
el tamaño de la matriz A genera problemas de almacenamiento y tiempos de procesamiento.
Así, si duplicamos el número de patches en los que se subdivide la escena, el tamaño de la
matriz A se cuadruplica. Si, además, tenemos en cuenta que las técnicas Gausianas para la
inversión tienen una complejidad computacional de orden , siendo n el tamaño de la
matriz, el aumento del tamaño de A haría prohibitiva esta inversión.
1.5.2. Métodos iterativos
Para evitar invertir de forma explícita la matriz, se aplican un grupo de técnicas iterativas
que, partiendo de unas determinadas condiciones iniciales para el vector R, van refinando la
solución hasta alcanzar la solución final, bajo un determinado margen de error.
Estas formas iterativas de resolver el problema de la radiosidad son llamadas común-
mente métodos de relajación. Existen numerosos métodos en la literatura para resolver iter-
ativamente sistemas de ecuaciones; pero en el caso particular de la radiosidad los más
utilizados son la iteración de Jacobi y la iteración de Gaus- Seidel.
A continuación realizaremos un análisis de estos métodos, suponiendo que A es una
A R⋅ R0= R0
R A 1– R0=
O n3( )
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
51
matriz n x n elementos (cada elemento de la matriz A está asociado a un patch del entorno),
y R y son vectores columna de n elementos. Se puede generar entonces una serie de solu-
ciones aproximadas de R e intentar converger hacia la solución real, asumiendo que la solu-
ción siempre existe. Si escribimos la solución aproximada después del paso g como ,
podemos definir entonces el error en la g-ésima aproximación por:
el residuo en la g-ésima aproximación se define como:
podemos decir que:
Los métodos de relajación utilizan el residuo para refinar la solución y generar su
sucesora . De forma general la idea es que para un determinado valor del vector
residuo correspondiente al elemento i, debemos aplicar transformaciones al correspondiente
tal que tienda a cero. Esto puede provocar que el valor de r para otro elemento
cambie, y quizás hasta se incremente, aunque siempre se espera que la tendencia general sea
que los valores del vector r disminuyan para todos los elementos.
Un análisis mas detallado sobre la estabilidad y convergencia puede encontrarse en la
bibliografía especializada sobre métodos numéricos, como por ejemplo Press [PVTF92] y
Ralston [RR78].
Iteración de Jacobi.
El método de Jacobi parte de una matriz A (n x n) y la descompone en una matriz diagonal
“D”, una matriz estrictamente diagonal inferior “-l ”, y una matriz estrictamente diagonal
superior “-U” con lo que nos queda:
R0
R g( )
e g( ) R R g( ) –≡
r g( ) R0 AR g( ) –≡
r g( ) Ae g( ) =
R g( )
R g 1+( ) rig( )
Rig( ) ri
g( )
Radiosidad en Multiprocesadores
52
El sistema de ecuaciones se puede escribir como:
y se puede transformar en:
el método de Jacobi plantea que:
o expresado de otra forma:
(1.66)
Interpretación física del método de Jacobi.
Cuando utilizamos el método de Jacobi para el cálculo de la ecuación de radiosidad dis-
cretizada, podemos interpretar que cada ejecución de la ecuación (1.64) es un paso en la solu-
ción y se necesitan n pasos para completar una iteración del método. En cada paso
actualizamos la emisión estimada de cada patch procesando una fila de la ecuación de radi-
A
a11 a12 … a1n
a21 a22 … a2n
… … … …an1 an2 … ann
D l– U–= =
a11 0 … 00 a22 … 0
… … … …0 0 … ann
0 0 … 0a– 21 0 … 0… … … …a– n1 a– n2 … 0
–
0 a– 12 … a– 1n
0 0 … a– 2n
… … … …0 0 … 0
–=
AR D l– U–( )R R0= =
DR l UR R0+ +( )=
R l U+( )D-----------------R
R0D------+=
R g( ) l U+( )D-----------------R g 1–( ) R0
D------+=
Rig
aijRjg 1–( )–( ) R0i+
j 1 j i≠,=
n
∑aii
---------------------------------------------------------------- =
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
53
osidad. Así, para el método de Jacobi obtenemos:
que, expresado de forma matricial, seria:
Este proceso puede tener la siguiente interpretación física: si sumamos la contribución de
flujo de todos los demás elementos del entorno a la emisión del elemento actual, como cada
elemento tiene una radiosidad y un área , la porción de flujo emitida por y reci-
bida por será:
Con lo que el incremento en la radiosidad del elemento i será:
Conociendo que: , obtenemos que:
Por tanto, es como si el patch adquiriera (gather) la emisión de todos los elementos
del entorno para determinar su emisión. El término es la emisión inicial de , y sólo será
distinto de cero si éste es una fuente de luz. En la Figura 1.35 se hace una representación de
esta interpretación física.
Figura 1.35 Interpretación física del método de Jaccobi (gathering energy).
Esta aproximación tiene el problema que puede ser muy lenta. Considerando un entorno
Rig( ) R0i ρi FijRj
g 1–( ) , ij 1=
n
∑+ 1 … n ., ,= =
.
Rig( )
.
.
.R0i
.
.
. . . .
Fi1R1g 1–( ) … … FinRn
g 1–( )
. . . .
. . . .
=
j Rj Aj j
iΦij RjAjFji =
Ri∆ρiΦji
Ai------------
ρiRjAjFjiAi
---------------------- = =
AiFij AjFji=
Ri∆ ρiRjFij =
i j
R0i i
Aj
Aj
Aj
AjAj
Ai
Radiosidad en Multiprocesadores
54
de 50.000 elementos, por ejemplo, tendremos que hacer una iteración completa antes de
obtener una imagen inicial, lo que significa ejecutar la ecuación (1.64) 50.000 veces, calcu-
lando y almacenando en cada una el factor de forma , para cada uno de los elementos.
Iteración de Gauss - Seidel
Frente al método de Jacobi, el método iterativo de Gauss - Seidel adopta una simple, pero
efectiva, aproximación que acelera considerablemente la convergencia. En la ecuación
(1.64) vimos que el método de Jacobi calcula el valor de la radiosidad de cada elemento ,
secuencialmente usando los valores de los otros elementos proporcionados por .
Dado que los elementos (donde j<i) ya se han calculado, y son presumiblemente aprox-
imaciones más cercanas a los valores finales de la solución que sus contrapartidas ,
¿ por qué no usar esos valores cuando vayamos a calcular .
Esto es exactamente lo que hace el método de Gauss - Seidel. Su ecuación iterativa es:
o, expresado de otra forma:
En otras palabras en el método de Jaccobi se espera hasta el final de cada iteración para
actualizar los valores de radiosidad de la imagen, mientras en el método de Gauss-Seidel esta
actualización se produce inmediatamente al final de cada paso de la iteración.
Iteración de Southwell.
Como en el método de Gaus - Seidel, la iteración de Southwell utiliza el último valor cal-
culado para actualizar inmediatamente el patch correspondiente. Sin embargo, el método de
Gauss-Seidel siempre actualiza los valores siguiendo un orden fijo, independientemente del
valor de los residuos.
La iteración de Sauthwell, por el contrario, no procesa los elementos siguiendo un orden
Fij
Rig
R g 1–( )
Rjg
Rjg 1–( )
Rig
R g( ) UD l–( )----------------R g 1–( ) R0
D l–( )---------------- , g 0>( )+=
Rig( )
aijRjg( )– aijRj
g 1–( )– R0i+j i=
n
∑+j 1=
i 1–
∑aii
-------------------------------------------------------------------------------------- , i 1 … n, ,= =
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
55
fijo, sino que, por el contrario, establece un criterio de relajar siempre el elemento con mayor
residuo, hasta alcanzar la convergencia. Esto significa que un mismo elemento puede ser
ajustado repetidamente sin necesidad de actualizar antes los demás.
Dado que la relajación se realiza siempre en el elemento de mayor residuo, es
imprescindible actualizar el vector de los residuos después de cada ajuste. Sin embargo, esta
actualización no implica una penalización excesiva. Si el cambio en el vector R de las incóg-
nitas se escribe como: , dado que sólo se actualiza cada vez un ele-
mento del vector incógnita, será cero excepto para la componente i, que será .
Podemos entonces actualizar el vector k restando esta cantidad debida al elemento i a
cada elemento k, tal que:
El hecho de buscar el elemento con mayor residuo y relajarlo significa, en términos de la
radiosidad, encontrar el patch con mayor radiosidad sin distribuir y enviarla a todo el
entorno. En otras palabras, se busca el patch con mayor radiosidad que aun no se haya tenido
en cuenta, y se relaja dicho patch enviando su energía a todo el entorno. Este proceso es lla-
mado comúnmente en la literatura disparo de energía (shooting), para distinguirlo del pro-
ceso de captura energía (Gather) que ocurre en las iteraciones de Jacobi y Gauss-Seidel
Desventajas de los algoritmos de matriz completa.
Todos los algoritmos iterativos descritos hasta aquí, para la solución del sistema de ecua-
ciones de la radiosidad, tienen como característica común que no pueden dar una solución
parcial del sistema de ecuaciones hasta no calcular los n pasos necesarios para completar una
iteración. Estos algoritmos son denominados comúnmente en la literatura algoritmos de
matriz completa o de radiosidad completa [Coh91]. Estos métodos de matriz completa
tienen una complejidad computacional de para cada iteración, lo que implica que, si
duplicamos el número de elementos del entorno, se cuadruplica el tiempo necesario de CPU
para resolver la ecuación de radiosidad. Otra desventaja es que requiere almacenar en memo-
ria factores de forma, haciendo que el coste de memoria también dependa del cuadrado
del número de elementos del entorno.
Estos problemas hacen que los algoritmos de radiosidad completa, utilizados inicial-
R g 1+( ) R g( ) R g( )∆+=
R g( )∆ri
g( )
ki i,--------
rkg 1+( ) rk
g( ) kk i,ki i,--------rk
g( )–=
O n2( )
n2
2-----
Radiosidad en Multiprocesadores
56
mente por Goral [GTGB84] y por Cohen [CG85], hayan quedado en desuso rápidamente.
Para tratar de disminuir el alto coste computacional, Cohen [CGIB86] propuso una sube-
structuración del espacio tridimensional en patches y elementos (subdivisiones dentro de un
patch), de forma tal que la complejidad computacional se puede reducir a un orden ,
donde m representa el número de patches y n representa el número de elementos, con m<<n.
Aun así estos métodos siguen siendo poco eficientes.
1.5.3. Métodos aproximados.
En los últimos años la investigación sobre métodos de radiosidad han estado dirigidas
principalmente a buscar nuevas técnicas para eliminar los problemas que presentan los méto-
dos de matriz completa. Como resultado de estas investigaciones han aparecido dos nuevos
métodos [CW93] [HSA91], a los que hemos denominados métodos aproximativos. El prim-
ero, comúnmente denominado método de radiosidad progresiva, es una variante de la
iteración de Southwell y permite disminuir el coste computacional y dar una imagen útil en
cada iteración de la solución del algoritmo. El segundo aprovecha los avances alcanzados en
la solución del problema de los n cuerpos en la física, y es comúnmente denominado método
de radiosidad jerárquica. Este método se basa en realizar una subdivisión adaptativa de la
escena tridimensional que garantice que las zonas de la imagen más subdividas sean sólo
aquellas que realmente lo necesiten, diminuyendo de esta forma el número de elementos de
la matriz a tener en cuenta para la solución.
Estos métodos alternativos serán tratados con mayor detalle en los capítulos 3 y 4 de esta
memoria, donde además proponemos nuestras soluciones paralelas para estos algoritmos.
1.6. Conclusiones.
En este capítulo se han definido los principales términos relacionados con radiometría y
la fotometría, y se ha planteado la solución analítica al problema de la iluminación global y
el modelo analítico de radiosidad.
Se ha visto cómo la solución de radiosidad se puede dividir en dos fases: cálculo de los
coeficientes, denominados factores de forma, y resolución del sistema de ecuaciones result-
O mxn( )
Capítulo 1: Fundamentos Físicos y Matemáticos de la Radiosidad
57
ante de la discretización de esta ecuación.
En el capítulo se ha realizado también un estudio de los principales métodos de cálculo
de los factores de forma, así como un análisis comparativo de los mismos, en base a la pre-
cisión obtenida en los cálculos, la complejidad computacional asociada y el consumo de
memoria.
En este capítulo se han descrito también los métodos clásicos para resolver el sistema de
ecuaciones de radiosidad, pero se ha visto como sus requerimientos de almacenamiento los
hacen poco adecuado para su uso práctico. En consecuencia se hace necesario aplicar méto-
dos aproximados, que reduzcan los tiempos de procesamiento y requerimientos de memoria;
estos métodos son el método progresivo y el método jerárquico, los cuales son tratados con
más detalle en los capítulos 3 y 4, respectivamente.
Radiosidad en Multiprocesadores
58
Capítulo 2: Computación Paralela
59
CAPÍTULO 2.
COMPUTACIÓN PARALELA.
2.1. Introducción
En la actualidad existe una demanda creciente de computadores de altas prestaciones
(elevado rendimiento) en muchas áreas de aplicaciones científicas y técnicas. El logro de un
elevado rendimiento no depende sólo del uso de dispositivos hardware más rápidos y fiables,
sino que se apoya también en la obtención de mejoras importantes en la arquitectura de com-
putadores y en las técnicas de procesamiento.
Las arquitecturas avanzadas de computadores (arquitecturas paralelas) se centran alred-
edor del concepto de procesamiento paralelo. El desarrollo y aplicación de estos sistemas
Radiosidad en Multiprocesadores
60
paralelos requiere un amplio conocimiento de las estructuras hardware y software subya-
centes y de las estrechas interacciones que existen entre los algoritmos de computación
paralela y la asignación óptima de los recursos de la máquina. Los computadores de proces-
amiento paralelo proporcionan unos medios, de adecuada relación coste-efectividad, para
lograr elevados rendimientos en un sistema, mediante la realización concurrente de activ-
idades.
Definiremos el paralelismo o computación paralela como el procesamiento de la infor-
mación que favorece la explotación de los recursos concurrentemente, en el proceso de com-
putación. Los computadores paralelos son las máquinas capacitadas para efectuar
computación paralela. La combinación de un determinado algoritmo paralelo y el computa-
dor sobre el que se ejecuta se conoce como sistema paralelo.
Son muchos los campos en los que se aplican los sistemas paralelos, ha continuación
resumimos los más significativos:
Modelación predictiva y simulaciones: Previsión meteorológica numérica, ocean-
ografía y astrofísica, análisis predictivo del clima, administración de la industria pesquera,
explotación de recursos oceánicos, dinámica costera y mareas, socioeconomía, etc.
Diseño y automatización de proyectos de ingeniería: Análisis de elementos finitos,
aerodinámica computacional, inteligencia artificial y automatización, aplicaciones CAD,
etc.
Explotación de recursos energéticos: Explotación sísmica, modelación de yacimientos,
energía de fusión de plasma, etc.
Investigación médica, militar y básica: Tomografía asistida por computador, ingeni-
ería genética, investigación de armamentos, defensa, etc.
2.2. Sistemas Paralelos: Organización y Arquitec-tura
2.2.1. Clasificación clásica.
Los computadores paralelos se pueden dividir en tres configuraciones arquitectónicas:
- Computadores de segmentación encauzada: Efectúan computaciones solapadas
Capítulo 2: Computación Paralela
61
para explotar el paralelismo temporal.
- Computadores matriciales: Emplean múltiples unidades aritmético-lógicas sin-
cronizadas para lograr paralelismo espacial.
- Sistemas multiprocesadores: alcanzan paralelismo asíncrono gracias a un con-
junto de procesadores interactivos que disponen de recursos compartidos (memorias,
discos, etc).
Computadores de segmentación encauzada.
La ejecución de una instrucción en un computador digital implica, en general, cuatro
pasos principales:
1.Búsqueda de la instrucción (BI) desde la memoria principal.
2.Decodificación de la instrucción (DI), para identificar la operación a efectuar.
3.Búsqueda del operando (BO), si es preciso.
4.Ejecución (EJ) de la operación aritmético-lógica decodificada.
En un computador no encauzado, estos cuatro pasos deben finalizar antes de que se pro-
cese la instrucción siguiente. En un computador encauzado las instrucciones sucesivas se eje-
cutan en modo solapado. Debido al solapamiento de estas instrucciones, la segmentación
encauzada está muy bien ajustada para efectuar repetidamente las mismas operaciones a
través del cauce.
Computadores matriciales.
Un procesador matricial es un computador paralelo síncrono con múltiples unidades arit-
mético-lógicas, llamadas elementos de proceso (EP), que pueden operar en paralelo de la
forma paso-bloqueo. Los EP están sincronizados para efectuar todos la misma función al
mismo tiempo.
Cada elemento de proceso consta de una ALU con registros y una memoria local. La
estructura de interconexión entre EP, establecida para un cálculo específico, está controlada
por programa desde la unidad de control. Las instrucciones vectoriales se transmiten a los EP
para su ejecución distribuida sobre diferentes operandos tomados directamente de las memo-
rias locales. La unidad de control es quien realiza la búsqueda de la instrucción. Debemos
Radiosidad en Multiprocesadores
62
tener en cuenta que los EP son dispositivos pasivos sin capacidad de decodificación de
instrucciones.
Sistemas multiprocesadores.
Este sistema consta de dos o más procesadores de capacidades aproximadamente com-
parables. Todos los procesadores comparten acceso a grupos comunes de módulos de memo-
ria, canales de E/S y dispositivos periféricos. Y lo que es más importante, el sistema entero
debe estar controlado por un único sistema operativo integrado, que facilite las interacciones
entre los procesadores y sus programas a diferentes niveles.
Además de las memorias y dispositivos de E/S compartidos, cada procesador dispone de
su propia memoria local y de dispositivos privados. Las comunicaciones entre procesadores
pueden realizarse a través de las memorias compartidas o mediante una red de interrupción.
2.2.2. Clasificación de acuerdo a la memoria.
Los sistemas multiprocesadores se pueden clasificar según como esté estructurada la
memoria, de ahí que existan dos grandes grupos: los multiprocesadores de memoria com-
partida y los multiprocesadores de memoria distribuida.
Memoria compartida.
La principal característica de los computadores de memoria compartida es que la comu-
nicación se realiza de forma implícita, como resultado de las operaciones de acceso a memo-
ria convencionales. Esta clase de computadores paralelos tiene una larga historia, teniendo
al menos dos antecesoras en la década de los 60 y teniendo actualmente un importante papel
en la industria de los computadores.
En la programación de estas máquinas los procesos son configurados, de manera que una
porción de las direcciones se encuentra en un espacio compartido por otros procesos. La
cooperación y sincronización entre los procesos es realizada leyendo y escribiendo sobre
variables compartidas y sobre punteros al espacio de direcciones compartidas.
El hardware para la comunicación es una extensión de los sistemas de memoria encon-
Capítulo 2: Computación Paralela
63
trados en otros computadores. Normalmente todos los computadores llevan un procesador y
un grupo de controladores de entrada salida, para acceder a un grupo de módulos de memoria
a través de un hardware de interconexión como se muestra en la Figura 2.1. La capacidad de
memoria se incrementa simplemente añadiendo módulos de memoria y la capacidad de
entrada salida se incrementa aumentando la cantidad de controladores de entrada salida. Por
último la capacidad de procesamiento se incrementa actualizando el tipo de procesador o
aumentando el número de unidades de procesamiento.
Figura 2.1 Arquitectura básica de un multiprocesador de memoria compartida.
Las máquinas de memoria compartida han tenido una gran proceso evolutivo. Las prim-
eras máquinas eran configuraciones para servidores de altas prestaciones. Desde el punto de
vista tecnológico en las primeras máquinas la velocidad de acceso de las memorias era más
lenta que la velocidad del procesador, de esta forma era necesario intercambiar datos entre
diferentes bancos de memoria para obtener un ancho de banda adecuado. Desde el punto de
vista de la aplicación estos sistemas fueron diseñados para soportar un gran número de tra-
bajos, de esta forma necesitaban un gran número de canales de entrada-salida. Como se
muestra en la Figura 2.2 (a) estaban organizados con una red de tipo cross-bar que conectaba
el procesador y muchos canales de entrada-salida a varios bancos de memoria.
La primera forma de expandir estos sistemas fue aumentar el número de procesadores,
pero la forma de acceder a una localización de memoria desde el puerto de un procesador en
la red de interconexión no cambió. El tamaño y el coste de los procesadores limitaba estos
sistemas a un número de procesadores pequeños; además el coste de escalar la red de cross-
bar también fue un factor limitante. La red cross-bar fue sustituida por una conexión multi-
estado, mostrada en la Figura 2.2 (b); este cambio significó un aumento en la latencia y una
disminución en el ancho de banda por puerto, si todos eran utilizados a la par.
El uso del diseño de los computadores de memoria compartida se extendió con el desar-
Memoria Memoria Memoria Memoria
Proc Proc
ControladorEntrada/Salida
ControladorEntrada/Salida
Dispositivosde entrada/salida
Interconexión
Radiosidad en Multiprocesadores
64
rollo de los procesadores de 32 bits de la década de los 80, estos sistemas tienen el procesa-
dor, la cache, la unidad de punto flotante, y la memoria en una sola placa [Bel95]. La mayoría
de las máquinas de rango medio incluyendo las minicomputadoras, los servidores y las est-
aciones de trabajo están organizados alrededor de un bus de memoria centralizado, como el
que se muestra en la Figura 2.2 (c). Este bus permite que cada procesador acceda a todas las
direcciones de memoria en el sistema, todos los procesadores tienen el mismo coste de
acceso a una determinada dirección de memoria. Esta configuración es comúnmente llamada
también multiprocesador simétrico (SMP).
Figura 2.2 Esquemas de interconexión en los multiprocesadores de memoria compartida.
Los factores que limitan el número de procesadores que puede soportar la organización
basada en un bus común son diferentes a los de una organización basada en una red de inter-
conexión, en la cual agregar procesadores es muy costoso, sin embargo el ancho de banda
aumenta con el número de puertos. Por el contrario el coste de agregar procesadores a una
organización en bus común es muy pequeño, pero el ancho de banda es fijo, siendo dividido
entre todos los procesadores y limitando la escalabilidad de la máquina. Afortunadamente,
las caches reducen la demanda de ancho de banda de cada procesador, puesto que muchas
referencias son resueltas en la cache y no en la memoria. Sin embargo, tener datos replicados
en la cache introduce un problema adicional por tener que mantener la consistencia en la
misma.
La forma más sencilla de escalar una máquina de memoria compartida es manteniendo
el acceso uniforme a memoria, Figura 2.1. Cada acceso a memoria es traducido en un men-
saje a la red de interconexión o en mensaje sobre el bus para el caso del diseño SMP. La pri-
mera desventaja de este sistema es la latencia de la red de interconexión para cada acceso a
memoria.
M
M
M
ME/S E/SC
PCP
M M M M M M M M
CP
CP
E/S E/S CP
CP
E/S E/S
(a) Red cross-bar (b) Red de interconexión multiestado (c) Bus de interconexión
Capítulo 2: Computación Paralela
65
Un diseño alternativo es conectar totalmente los procesadores cada uno a su memoria
local como se muestra en la Figura 2.3. En este diseño el acceso a memoria no es uniforme
(NUMA), el controlador local de la memoria determina cuando ejecutar un acceso a la
memoria local o cuando transmitir un mensaje a un controlador de memoria remoto. Los
accesos a datos privados como el código y la pila se realizan localmente. La demanda de
ancho de banda de la red se reduce en este tipo de arquitectura.
Figura 2.3 Estructura de acceso no uniforme a memoria (NUMA)
Actualmente el diseño tipo NUMA esta prevaleciendo, un ejemplo de este estilo de dis-
eño es aplicado en el Cray T3E. La SGI Origin es otra máquina con una estructura similar,
pero que permite que un dato de cualquiera de las memorias sea replicado en cualquiera de
las caches, suministrando un hardware que mantiene la consistencia de las caches.
Memoria distribuida.
La segunda clase importante de máquinas multiprocesadoras son las arquitecturas de
memoria distribuida (o de paso de mensaje), empleando bloques funcionales que constituyen
computadores (incluyen procesadores, memorias, sistemas de entrada-salida y permite la
comunicación entre procesadores). El diagrama general para una máquina de paso de men-
saje es esencialmente el mismo que para el diseño de una máquina de memoria compartida
tipo NUMA Figura 2.3. La diferencia es que la comunicación está integrada en el sistema de
entrada salida y no en el sistema de la memoria. Este tipo de diseño tiene también mucho en
común con las redes de estaciones de trabajo (clusters), excepto que la red es mucho más efi-
ciente que las redes de área local.
Generalmente en el paso de mensaje hay una gran distancia entre el modelo de progra-
mación y las operaciones de comunicación en el nivel físico del hardware, dado que las
comunicaciones se ejecutan utilizando el sistema operativo o llamadas a bibliotecas. Las
M CP
M CP
M CP
Red de interconexión escalable
...
Radiosidad en Multiprocesadores
66
operaciones más utilizadas en el modelo de paso de mensaje son variantes de enviar y reci-
bir. De una forma simple enviar significa crear un buffer de datos locales que será transmit-
ido y recibido por otro proceso (normalmente remoto). Recibir está relacionado a un proceso
de envío y crea un buffer de datos locales en el cual serán almacenados los datos transmiti-
dos. En la mayoría de los sistemas de paso de mensaje se utiliza un identificador unido al
mensaje para indicar cual será el procesador destino del mensaje.
En el pasado, las máquinas de paso de mensaje tenían rutinas de envío y recepción para
la comunicación a nivel de usuario con algunas restricciones. Un nodo podía ser conectado
sólo a un grupo restringido de vecinos, siguiendo para ello un patrón regular con uniones
punto a punto [Sei85]. Las primeras máquinas eran hipercubos donde cada nodo puede ser
conectado a otros n nodos utilizando un bit para formar direcciones binarias hasta un total de
nodos. También se estructuraron en mallas donde los nodos se conectaban a sus vecinos
en dos o tres dimensiones. La topología de la red utilizada en estas máquinas era de suma
importancia, puesto que solo los vecinos podían ser utilizados para las operaciones de envío
y recepción. Estas topologías de las redes de interconexión dominaron los modelos de pro-
gramación (anillos, mallas o hipercubos [Fox88]).
Para hacer estas máquinas más útiles y generales, se diseñaron sistemas que permitían la
comunicación entre dos procesadores arbitrarios cualesquiera. Para ello, se diseñó un hard-
ware que permitiera estas funciones de encaminamiento, así cada nodo estaba formado por
el procesador, la memoria y una red que permitía la comunicación, llamada “router”o
encaminador. Sin embargo, en estos sistemas el tiempo de envío de un mensaje es propor-
cional al número de saltos que éste realiza dentro de la red de interconexión, por lo que sigue
siendo importante hacer énfasis en la topología utilizada. Este énfasis se reduce con la intro-
ducción de redes de propósito general[BCM94, BR89, Dun88, HR93, LADea92, PR94,
ECGS92]. En la mayoría de los sistemas actuales de paso de mensaje el tiempo adicional
introducido por el encaminador es prácticamente despreciable, no importando cuanto viaje
el mensaje por la red de comunicación [Gro92, HR93, HHSI93, PR94]. Esto simplifica
bastante el modelo de programación, normalmente los procesadores son analizados como
una secuencia lineal con un coste de comunicación uniforme.
2n
Capítulo 2: Computación Paralela
67
Tendencias actuales
Actualmente la evolución tanto en el software y en hardware no permite establecer una
frontera clara entre los campos del paso de mensaje y de la memoria compartida.
Consideremos las operaciones de comunicación disponibles a nivel de usuario:
1 • Las operaciones tradicionales de paso de mensaje (envío y recepción) están disponi-
bles en la mayoría de las máquinas de memoria compartida utilizando buffer de
almacenamiento compartidos. El envío implica escribir un dato o un puntero a un
dato; recibir implica leer un dato de la memoria común.
2 • En una máquina de paso de mensaje se puede construir un espacio global de direc-
ciones a nivel de páginas. Un grupo de procesos pueden tener direcciones comparti-
das, pero para cada proceso solo la página que es local es accesible. Cuando se
accede a una página remota, ocurre un fallo de página y el sistema operativo
establece un mensaje que permite transferir la página al espacio local de direcciones.
En el nivel de la organización de la máquina también existe una gran convergencia. Las
arquitecturas modernas de paso de mensaje son similares al diagrama general del diseño
NUMA mostrado en la Figura 2.3. En el caso de la memoria compartida la red de intercon-
exión está integrada con el controlador de la cache o de la memoria, de esta forma cuando el
dispositivo detecta un fallo de cache, envía un mensaje para acceder a la memoria en un nodo
remoto. En las máquinas de paso de mensaje la interfase de la red de interconexión es un dis-
positivo de entrada-salida.
Actualmente han surgido nuevas redes de interconexión basadas en las redes de área
local que incluyen ethernet rápidas, ATM, canales de fibra óptica y muchos otros diseños
[Bod95] [Gil96], permitiendo conexiones más escalables y que ayudan también a la conver-
gencia de ambas arquitecturas.
En resumen, el paso de mensaje y el uso de direcciones de memoria compartida repre-
sentan dos modelos de programación bien definidos. Sin embargo, las estructuras de las
máquinas que soportan estos modelos, convergen a una estructura representada por un grupo
elementos de procesamiento totales, conectados por una red de comunicación. La intercon-
exión de la red de comunicación en el sistema de memoria reduce la latencia de la red y
mejora el ancho de banda.
Radiosidad en Multiprocesadores
68
2.3. Modelos de programación
Tradicionalmente, los computadores también se clasifican, según el paralelismo exis-
tente en los flujos de instrucciones y datos, en cuatro grupos fundamentales: SPSD, MPSD,
SPMD y MPMD. El modelo de programación se rige también según estas cuatro clasifica-
ciones.
El primer modelo SPSD (Simple Procesos sobre Simples Datos) se aplica a aquellos
computadores que operan secuencialmente tanto sobre instrucciones como datos, y por tanto
no ofrecen paralelismo alguno. El modelo MPSD (Múltiples Procesos sobre Simples Datos)
se aplica a aquellos computadores que ejecutan simultáneamente varias instrucciones sobre
un mismo conjunto de datos. Algunos autores afirman que no existen auténticos computado-
res MPSD, aunque la mayoría de las arquitecturas segmentadas responden esencialmente a
este esquema.
El modelo SPMD (Simple Proceso sobre Múltiples Datos) se aplica a máquinas que
poseen una sola unidad de control con diferentes unidades de procesamiento, en las que se
ejecuta simultáneamente una misma instrucción. Estas máquinas se caracterizan por tener un
número muy elevado de EP y redes de interconexión rápidas. Las arquitecturas matriciales
responden a este esquema.
El último modelo MPMD (Múltiples Procesos sobre Múltiples Datos), se aplica princi-
palmente a aquellas máquinas en las que cada elemento de procesamiento funciona con sus
propias instrucciones y sus propios datos; pueden ser de memoria compartida o distribuida.
En la actualidad la mayoría de los computadores tienen esta filosofía de diseño. Los com-
putadores con esta filosofía de diseño también soportan el modelo de programación SPMD.
La carencia total de compiladores eficientes que paralelicen automáticamente un código
secuencial deja hasta el momento la mayor parte del control del sistema paralelo en manos
del programador, teniendo que especificar de forma explícita el código que ejecuta cada ele-
mento de procesamiento, así como el conjunto de datos que debe procesar. Si los datos no se
encuentran en la memoria local (en el caso de arquitecturas MPMD de memoria distribuida)
el programador debe encargarse de establecer las comunicaciones necesarias con otros ele-
mentos de procesamiento mediante el uso del modelo de paso de mensaje. La mayoría de las
máquinas facilitan estándares para las bibliotecas de paso de mensaje (PVM y MPI), que a
Capítulo 2: Computación Paralela
69
costa de eficiencia alejan al programador del hardware.
Lo más normal es utilizar una filosofía SPMD basada en ejecutar en todas los procesa-
dores del sistema el mismo programa aplicado a un grupo diferente de datos, sobre una arqui-
tectura de tipo MPMD.
En los últimos años han aparecido nuevos compiladores que utilizan un mecanismo de
programación intermedio, la programación paralela asistida por el programador. Este nuevo
enfoque denominado paralelismo de datos, permite compilar programas secuenciales en
máquinas paralelas basándose en criterios de distribución de los datos que el programador
decide utilizando lenguajes de paralelismo de datos como por ejemplo el Viena Fortran y el
HPF (Hight-Performance-Fortran).
Distribuciones de datos
De forma general existen dos mecanismos básicos por los cuales se pueden distribuir los
datos: La distribución por bloques (BLOCK) en la cual se descompone el dominio por
regiones regulares de elementos consecutivos y asociándolos a procesadores en base a crite-
rios de vecindad y en segundo lugar la distribución cíclica (CYCLIC) que asigna bloques
vecinos de un determinado tamaño a procesadores vecinos, repitiendo el proceso de forma
cíclica hasta distribuir completamente los datos.
Estas formas de distribución de los datos son eficaces en la mayoría de los algoritmos
para resolver problemas regulares, sin embargo cuando se trabaja con problemas irregulares,
como por ejemplo matrices dispersas o el algunos métodos de cálculo de radiosidad, estos
métodos son ineficientes. Para esos casos es necesario aplicar nuevos métodos de dis-
tribución de los datos que garanticen un reparto equitativo de la carga, o métodos que de
forma dinámica logren este objetivo. En los capítulos 3 y 4 se presentan algunos métodos que
hemos desarrollado y aplicado al caso particular del cálculo de la radiosidad.
2.4. Computadores utilizados en nuestras aplica-ciones.
En todas las experiencias realizadas en el trabajo que presenta esta memoria se utilizaron
Radiosidad en Multiprocesadores
70
dos computadores que admiten tanto los modelos de memoria compartida como distribuida.
El primero (CRAY 3TE) se utilizó para los algoritmos para memoria distribuida y el segundo
(Origin 2000) se probaron los algoritmos de memoria compartida. A continuación se
describen las principales características de cada uno de ellos.
2.4.1. Multiprocesador CRAY T3E.
El multiprocesador CRAY T3E puede llegar a tener hasta 2048 procesadores formando
una topología en forma de un toro tridimensional como el que se representa en la Figura 2.4,
si bien es de memoria distribuida en los procesadores, provee un espacio de direcciones de
memoria compartida.
Cada nodo contiene un procesador Alpha 21164, un circuito integrado para el control del
sistema, memoria local y un encaminador (router). La lógica del sistema funciona a 75 Mhz
y el procesador a múltiplos de ésta (de 300 Mhz a 450 Mhz). La red en forma de toro permite
un ancho de banda desde 100 a 480 MB/s dependiendo del tipo de tráfico que se utilice.
Figura 2.4 Arquitectura del CRAY 3TE.
El sistema de entrada-salida en un sistema conocido como “Giga Ring channel” que per-
mite anchos de banda de 267 MB/s en la entrada-salida cada 4 procesadores.
El procesador Alpha 21164 es capaz de ejecutar 4 instrucciones por cada ciclo de reloj;
de las cuales una puede ser una suma o una multiplicación de punto flotante con un pico de
600 Mflops/s para un procesador a 300 MHz y de 900 Mflops/s para un procesador a 450
MHz.
Hay dos niveles de memoria cache, un primer nivel de 8 kbyte para instrucciones y datos
y un segundo nivel de 96 Kbyte. La memoria local está compuesta además por cuatro circui-
Alpha21164
ControlE Register
Router
MemoriaLocal
Estructura del nodo
Capítulo 2: Computación Paralela
71
tos integrados controladores, que directamente controlan 8 bancos de memoria DRAM.
Programación
Para la programación con el modelo de paso de mensaje esta máquina soporta las biblio-
tecas estándares PVM y MPI, que están construidas mediante llamadas a procedimientos de
una biblioteca de más bajo nivel. Esta biblioteca, con el nombre SHMEM, está diseñada
sobre el principio básico de sacrificar la facilidad de uso en aras de una mayor velocidad y
flexibilidad. Por tanto, se pueden conseguir mayores anchos de banda utilizando directa-
mente las rutinas de esta biblioteca.
En esta biblioteca, disponible para C y Fortran 77, sólo se han implementado un número
pequeño de operaciones. Las rutinas básicas de la biblioteca SHMEM se clasifican en:
Individuales, es decir, son llamadas por un único procesador, independientemente de
cuantos procesadores estén involucrados en la operación. Estas rutinas utilizan las
capacidades de la memoria compartida del CRAY para soportar transferencias de datos por
medio de un protocolo unilateral (syngle-party protocol). Las dos rutinas principales son
shmem_put y shmem_get que escriben y leen, respectivamente, de las memorias remotas, sin
ningún tipo de intervención por parte del procesador remoto.
Colectivas o globales cuando todos los procesadores involucrados en la operación deben
llamar sincrónicamente a la rutina. Estas operaciones permiten realizar operaciones de
reducción, barreras, radiaciones, y se ejecutan por un número específicos de procesadores.
Como se analizará en capítulos posteriores los problemas que afectan la eficiencia de
nuestros algoritmos no son precisamente las penalizaciones por la comunicación. Por ello se
prefirió utilizar las bibliotecas de paso de mensaje estándares (PVM), garantizando con ello
una mayor portabilidad del código, entre diferentes sistemas multiprocesador y sistemas dis-
tribuidos.
En el CRAY se pueden utilizar también para la programación lenguajes de paralelismo
de datos como Viena-Fortran o HPF.
2.4.2. Multiprocesador Origin 2000.
Radiosidad en Multiprocesadores
72
Este computador si bien es de memoria compartida, la memoria se encuentra distribuida
físicamente entre los procesadores. El sistema operativo y los mecanismos para mantener la
coherencia se encargan de hacer transparente este hecho al usuario.
La Figura 2.5 muestra un diagrama de la arquitectura del ORIGIN 2000. El procesador
utilizado en cada nodo es el MIPS R10000 que es un procesador de 64 bits superescalar que
soporta un gran espacio de direcciones de memoria. La memoria total es de 4 Gbytes distri-
buidos entre todos los procesadores; cada nodo del Origin tiene un banco independiente de
memoria de 256 MBytes, común a dos procesadores y la coherencia de memoria es man-
tenida por hardware.
Figura 2.5 Arquitectura de el Origin 2000
La topología utilizada es de un hipercubo entre los nodos, y el ancho de banda entre dos
nodos es de hasta 32 Gbytes por segundo.
En el esquema, el HUB garantiza las comunicaciones entre los procesadores que com-
parten la memoria principal y el router garantiza la comunicación entre los nodos, permi-
tiendo crear las distintas configuraciones del hipercubo.
Hay una serie de características que hacen al Origin ser diferente a sus antecesoras. A
continuación mencionamos las más importantes:
1- Escalabilidad y modularidad: el Origin 2000 es fácil de escalar uniendo nodos sobre
una interconexión de fábrica y el ancho de banda del sistema escala linealmente con el incre-
mento del número de procesadores. Otras máquinas, como por ejemplo el Power Challenge,
R10000
R10000
R10000
R10000
C C
CC
HUB HUBROUTER
MEM MEM
HIPERCUBO
CONFIGURACIÓN DEL HIPERCUBO
PARA 32 PROCESADORES
Capítulo 2: Computación Paralela
73
solamente pueden escalar en el número de procesadores y la red de interconexión tiene un
ancho de banda fijo. Además este sistema no es modular, tiene un número fijo de slops el
cual no puede ser modificado.
2- Tiene una memoria compartida distribuida y un sistema de entrada salida también dis-
tribuido.
3- La coherencia de memoria se garantiza por hardware.
4- Se utiliza un sistema de migración y réplica de páginas de memoria para disminuir la
latencia en los accesos a memoria.
Modelo de programación
Esta máquina permite que se pueda utilizar un modelo tanto de memoria compartida
como de memoria distribuida, aunque está principalmente diseñada para trabajar como
memoria compartida.
Como memoria distribuida, permite el uso de las bibliotecas de paso de mensaje MPI y
PVM, que más se han estandarizado para este tipo de multiprocesadores. Como memoria
compartida se ha introducido un compilador tanto para el lenguaje Fortran como para el len-
guaje C que soporta la detección automática de paralelismo. Permite además el uso de prag-
mas para guiar al compilador en la detección automática y soporta un grupo de bibliotecas
(MP) para la programación manual.
Distribución de datos
La política que toma por defecto el Origin es que el proceso que primero utilice un deter-
minado dato, le sea asignada la página de memoria a la que pertenece ese dato. Esta política
funciona muy bien cuando los programas se ejecutan secuencialmente, o cuando se utilizan
las bibliotecas de paso de mensaje para la ejecución paralela en el Origin, donde todos los
accesos e inicializaciones se realizan sobre la memoria local.
El problema de esta política de distribución se da por ejemplo en los programas paralel-
izados con las bibliotecas MP. En este caso, normalmente, el esfuerzo se centra en paralelizar
las zonas del programa que más tiempo de ejecución toman y a menudo las inicializaciones
como son menos costosa no se paralelizan. Si consideramos la política de distribución
Radiosidad en Multiprocesadores
74
descrita anteriormente todas las inicializaciones se realizan en el procesador principal que es
donde se ejecuta las secciones secuenciales del programa, de esta forma todos los datos
quedan concentrados en un solo nodo o en un radio muy pequeño, con lo cual se crea un
cuello de botella dado que todos los accesos a memoria son controlados por un solo HUB.
Esto limita el ancho de banda de memoria, y este cuello de botella afecta severamente la
escalabilidad del programa paralelo.
Se pueden utilizar otras políticas de distribución de los datos que resuelven el problema
anterior. Una de ellas es conocida como “round-robin”, de forma que los datos son colocados
sobre todos los procesadores, aún si los datos son inicializados secuencialmente. Si bien esta
distribución soluciona el problema de escabilidad no garantiza que los datos queden coloca-
dos de forma óptima. Para solucionar ésto en la ORIGIN se introduce un novedoso mecan-
ismo para habilitar la migración de páginas de memoria de acuerdo al uso repetido de
determinadas localizaciones de memoria por un procesador. Este mecanismo implica un
coste adicional de tiempo en cada CPU, por lo cual es un mecanismo que está no habilitado
por defecto en el sistema, teniendo que ser invocado explícitamente.
Balance de Carga
A pesar que la memoria se encuentra físicamente distribuida, se garantiza por parte del
sistema el acceso a todos los datos desde cualquier procesador y a diferencia de las máquinas
de memoria distribuida, lo que se distribuye no son los datos, sino que lo que se reparte es el
trabajo (iteraciones) entre los procesadores. En la práctica se puede encontrar para algunas
aplicaciones una correspondencia entre las operaciones y los datos que se utilizan, pero para
otros casos no. Existen diversos tipos de distribuciones.
Distribución Simple: Por defecto el Origin utiliza una distribución para las iteraciones de
tipo simple en la cual cada procesador ejecuta un número constante de iteraciones consecu-
tivas, del bucle paralelizado. En la Figura 2.6 se muestra un esquema de los tiempos de
ejecución utilizando esta distribución para cuatro procesadores.
Figura 2.6 Distribución Simple.
Distribución Interleave. Esta distribución es similar a la distribución cíclica para los
T1 T2 T3 T4
Capítulo 2: Computación Paralela
75
datos solo que en este caso se asigna de forma consecutiva una iteración del lazo a cada proc-
esador hasta completar el total de iteraciones. En la Figura 2.7 se muestra como quedarían
los tiempos de ejecución para cada uno de los procesadores.
Figura 2.7 Distribución Interleave.
Distribución Dinámica. En los casos que exista una variación muy grande en el número
de tareas que se ejecutan dentro de cada iteración del lazo, si se utilizara una distribución
cíclica o simple se tendría que esperar siempre por la iteración más lenta. La distribución
dinámica (Figura 2.8) elimina este problema, distribuyendo las iteracioes del bucle según la
demanda de cada procesador.
Figura 2.8 Distribución Dinámica.
Distribución GSS (Guided Self-Sheduling). Esta distribución habilita un planificador
(sheduling) propio. Funciona muy parecido a la dinámica, solo que no se reparte la carga de
forma fija sino que se comienza repartiendo un número grande de iteraciones y se termina
repartiendo un valor pequeño. En la Figura 2.9 se muestran los tiempos para cada procesador.
Figura 2.9 Distribución GSS.
Para obtener más información sobre el Origin 2000 y el Cray T3E ver la siguiente direc-
ción en el web: http://www.sgi.com/.
2.5. Medidas de rendimiento en multiprocesadores.
A continuación describiremos algunos parámetros que nos permiten caracterizar el com-
portamiento de un algoritmo paralelo.
Uno de los principales objetivos que se busca con el uso de un sistema multiprocesador
es disminuir el tiempo de ejecución necesitado por una máquina monoprocesadora, de ahí
T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4
T1 T2 T3 T4 T2 T1 T4 T3 T1 T4 T2 T3 T2 T4 T1 T3
T1 T2 T3 T4 T1 T4 T3 T2 T1 T4 T2 T3
Radiosidad en Multiprocesadores
76
que una de las principales medidas de rendimiento sea la aceleración que se obtiene al utilizar
arquitecturas paralelas.
Consideremos la dimensión del problema , como el tiempo que requiere el
algoritmo secuencial óptimo en resolver un determinado problema para una máquina con un
solo procesador. Y definimos el tiempo de ejecución paralelo , como el tiempo necesi-
tado por N procesadores para resolver el problema.
Entonces se define la aceleración o speedup ( ) de un sistema paralelo, como el
cociente entre el tiempo de ejecución en un procesador y el tiempo de ejecución en el multi-
procesador . Se puede hablar también de la eficiencia ( ) en la utilización del
sistema paralelo, que no es mas que la normalización de la aceleración, de tal forma que se
puede definir como el cociente entre y , tomando valores entre 0 y 1. El rendimiento
máximo esperado para cualquier sistema multiprocesador es cuando la aceleración sea igual
al número de procesadores y la eficiencia sea igual a la unidad, aunque en la práctica estos
valores son imposible de obtener para un número de procesadores elevados.
Es posible que en algunas ocasiones se pueda alcanzar un speedup superior al perfecto,
la causa fundamental es que en ocasiones cada procesador trabaja con un número inferior de
datos que el sistema secuencial, siendo la localidad espacial muy alta por lo que la jerarquía
de memoria hace que los rendimientos para cada una de las unidades de procesamiento del
supercomputador sea superior al obtenido por el sistema secuencial.
Existe siempre una parte del código que no puede ser paralelizada y la cual debe ejecu-
tarse en serie. Esto está considerado en la ley de Amdahl, la cual plantea que:
Si consideramos como la fracción del programa que siempre se puede ejecutar en
paralelo (la cual es siempre menor que 1.0); entonces la parte restante del código
debe ejecutarse siempre de forma secuencial. De esta forma el máximo
speedup se puede representar por la siguiente expresión.
(2.1)
Podemos definir también el concepto de escalabilidad del sistema como el buen compor-
tamiento del speedup con al aumento del número de procesadores y cuyo comportamiento
está limitado por la ley de Amdahl.
Es fácil comprobar como el comportamiento de speedup no sólo está limitado por la parte
T s( )
T N( )
Sp
T s( )T N( )---------- E
Sp N
p
n 1 p–( )=
Sp1
pn--- 1 p–( )+-------------------------------=
Capítulo 2: Computación Paralela
77
de programa que ha de ejecutarse secuencialmente, sino que se pueden obtener distintos
valores de aceleración para distintos tamaños del problema, obteniéndose los mejores
valores a medida que la dimensión del problema aumenta.
Uno de los aspectos que reducen la aceleración del algoritmo paralelo es el hecho que
todos los procesadores no realicen la misma cantidad de procesamiento. Por ello se ha uti-
lizado una medida que represente las penalizaciones por la diferencia en la carga computa-
cional. Podemos definir entonces el %Balance en función de la diferencia que existe en el
tiempo de procesamiento del procesador más rápido respecto al más lento según la siguiente
expresión:
(2.2)
siendo el tiempo de ejecución en el procesador más lento sin considerar las comuni-
caciones y el tiempo de ejecución en el procesador más rápido, también sin considerar
las comunicaciones.
2.6. Conclusión.
En este capítulo se han tratado los aspectos generales referentes a las arquitecturas y el
procesamiento paralelo, destacando las tendencias actuales en el desarrollo de las arquitec-
turas paralelas. Se ha detallado además los principales modelos de programación, en especial
los que se aplican a los multiprocesadores.
Dado que uno de los objetivos fundamentales de nuestro trabajo es la aplicación de las
técnicas de procesamiento paralelo para obtener algoritmos que disminuyan el coste comput-
acional en el cálculo de radiosidad, hemos hecho un especial énfasis en los computadores uti-
lizados en nuestros experimentos
T s( )
%Balance 100 1 tmax tmin–( )tmax-----------------------------------–
× =
tmax
tmin
Radiosidad en Multiprocesadores
78
Capítulo 3: Radiosidad Progresiva: Paralelización
79
CAPÍTULO 3.
RADIOSIDAD PROGRESIVA: PARALELIZACIÓN.
3.1. Introducción
En este apartado se describe el método progresivo para la solución de la ecuación de radi-
osidad y se realiza una revisión de los principales trabajos relacionados con la aplicación de
las técnicas de procesamiento paralelo al método progresivo. Tras analizar diferentes vari-
antes para la paralelización de este algoritmo, se expondrá nuestra solución particular a esta
paralelización y se mostrarán los resultados de su implementación.
Radiosidad en Multiprocesadores
80
3.2. Método Progresivo.
El método de refinamiento progresivo para resolver el sistema de ecuaciones de radi-
osidad, introducido por Cohen en 1988 [CCWG88] como variante de la iteración de South-
well, permite producir una imagen útil en cada iteración [CW93]. Esto hace que el usuario
del programa pueda visualizar una aproximación a la solución final tras un cierto número de
iteraciones, sin necesidad de esperar al final del proceso.
En este algoritmo se han introducido algunos cambios respecto a la iteración de Sauth-
well. En particular, si llamamos a la radiosidad no disparada en el patch i, el refi-
namiento progresivo selecciona como disparador el próximo patch que tenga mayor potencia
sin disparar, en lugar del que tenga mayor radiosidad sin disparar, como hace la
iteración de Southwell. Desde el punto de vista físico este método se aproxima mejor a la
forma como se produce la propagación de energía dentro del entorno, dado que el principal
interés se centra en aquellos elementos que emiten o reflejan la mayor cantidad de energía.
Disparando energía desde un elemento al resto que forman el entorno, podemos obtener
de forma inmediata una estimación inicial de la radiosidad en toda la escena, en lugar de actu-
alizar un único patch como ocurre en los métodos de Jacobi y Gauss-Seidel.
Desde el punto de vista práctico una de las mayores ventajas del algoritmo de radiosidad
progresiva es que permite obtener soluciones aproximadas en un reducido número de itera-
ciones; sin embargo, es posible acelerar aún más este proceso. Concretamente, el algoritmo
de refinamiento propuesto por Cohen [CCWG88] utiliza una heurística para mejorar la apari-
encia de estas imágenes intermedias. La idea básica de esta heurística es promediar en toda
la escena, con unos pesos adecuados, la radiosidad por disparar. Para ello se cuantifica el pro-
medio de radiosidad sin disparar en la escena, , sumando toda la radiosidad sin disparar
y dividiéndola por el área total de la escena:
(3.1)
Análogamente se calcula el promedio de reflectividad en la escena:
Ri∆
Ai Ri∆
R∆
R∆
RiAi∆i 1=
n
∑
Aii 1=
n
∑----------------------- =
ρ
Capítulo 3: Radiosidad Progresiva: Paralelización
81
(3.2)
La estimación del total de radiosidad sin disparar, llamada término ambiente ( ), se cal-
cula entonces como:
(3.3)
Conociendo este valor, para generar una imagen intermedia como solución final cada
patch i es mostrado con el valor de radiosidad .
Otra ventaja significativa de la radiosidad progresiva es que no necesita calcular y
almacenar toda la matriz de factores de forma antes de resolver el sistema de ecuaciones,
puesto que solamente al seleccionar el patch i como disparador de energía se calcularán todos
los factores de forma necesarios. Esta propiedad es muy importante para el tratamiento
de imágenes con un elevado número de polígonos, donde almacenar toda la matriz de fac-
tores de forma implica unos requerimientos de memoria elevados.
3.2.1. Diseño del algoritmo de radiosidad progresiva.
En este apartado se presenta un algoritmo que implementa el método de radiosidad pro-
gresiva. Para representar la escena tridimensional se ha utilizado un modelo que establece
una subdivisión jerárquica en dos niveles[CGIB86][Gla95]:
1) En patches gruesos como emisores.
2) En elementos finos como receptores.
Esta subdivisión jerárquica garantiza, que en lugar de calcular interacciones, siendo
n el número de elementos del entorno, sólo es necesario computar iteraciones, siendo
m (número de patches) mucho menor que n. Este esquema jerárquico presenta también una
ventaja adicional si utilizamos el método de ray casting para calcular los factores de forma;
pues la evaluación de la función de visibilidad, se realiza únicamente a nivel de patch, no de
elemento; y ésto significa comprobar únicamente m posibles oclusiones por iteración, en
lugar de n. En la Figura 3.1 mostramos el pseudocódigo de la implementación secuencial de
este algoritmo, calculando los factores de forma por el método del hemicubo o el tetraedro.
ρ
ρiAi∆i 1=
n
∑
Aii 1=
n
∑----------------------- =
Ra
RaR∆
1 ρ–------------ =
Ri ρiRa+
Fi j,
nxn
mxn
Radiosidad en Multiprocesadores
82
While
FOREACH (patch )Selecciona patch con mayor flujo sin dispararENDFORCalcula todos los factores de forma
/*Calcula el factor deforma para los k elemen-tos de entorno*/
FOREACH (patch )FOREACH (element )
ENDFORENDFOR
endwhileFOREACH (element )
ENDFOR
Figura 3.1 Algoritmo de radiosidad progresiva (métodos del hemicubo y el tetraedro cúbico).
El algoritmo comienza seleccionando el patch con mayor flujo sin disparar en el entorno
(“patch de disparo” o “shoot patch”), y se calculan para él los factores de forma con todos
los demás elementos de la escena, utilizando el método del hemicubo o el método del tet-
raedro cúbico. Seguidamente, para cada elemento de cada patch de la escena se actualiza el
incremento de radiosidad debido a la radiosidad sin disparar ( ) del patch de
disparo seleccionado.
La actualización de la exitancia en un patch j receptor cualquiera, se hará sumando los
incrementos de exitancia de todos sus elementos, ponderados por la relación de áreas ele-
mento/patch
Una vez concluido este proceso para todos los patches de la escena, se pone la radiosidad
∆Risin_dispararAi ε≥
i 1=
n
∑
i escena∈∆Ri
sin_dispararAi
Fik hemicubo F( )⇒
j escena , j i≠( )∈k j∈
R∆ ρkFi k, Risin_disparar Ai
Ak-----∆=
Rk Rk R∆+=
Rj_dispararsin∆ Rj
_dispararsin RAkAj-----∆+∆=
Ri_dispararsin∆ 0=
Rambiente calcula_ambiente ""( )=
k escena∈
Rk Rk ρRambiente+=
Ri_dispararsin∆
Capítulo 3: Radiosidad Progresiva: Paralelización
83
sin disparar ( ) del patch de disparo a cero, para evitar que siempre se selec-
cione el mismo patch de disparo, y se recalcula el término ambiente para las nuevas condi-
ciones de la escena.
Todo este proceso se repite mientras no se haya alcanzado la condición de convergencia,
según la cual el algoritmo detiene su ejecución cuando la magnitud de la radiosidad que se
va a disparar sobre toda la escena no sea ya lo suficientemente grande como para producir
un cambio significativo en la iluminación de la misma. El proceso también se puede detener
después de un número fijo de iteraciones, lo cual es útil para generar soluciones intermedias.
En ambos casos se suma el término ambiente actualizado a la radiosidad de cada uno de los
elementos que forman la escena.
Si en vez de realizar el cálculo de los factores de forma por el método del hemicubo o el
tetraedro cúbico, se utiliza el método de ray-casting, el algoritmo sufre algunos cambios. La
Figura 3.2 muestra el pseudocódigo para este caso.
While
FOREACH (patch )Selecciona patch con mayor flujo sin dispararENDFORFOREACH (patch )
FOREACH (element )
FOREACH ( vertex )
ENDFOR
ENDFORENDFOR
endwhileFOREACH (element k)
FOREACH vertice v
ENDFORENDFOR
Figura 3.2 Algoritmo de radiosidad progresiva (método de ray-casting).
Ri_dispararsin∆
∆Risin_dispararAi ε≥
i 1=
n
∑
i escena∈∆Ri
sin_dispararAi
j escena , j i≠( )∈k j∈
Rk∆ 0=v k∈
Rv∆ ρjFv i, Risin_disparar∆=
Rv Rv Rv∆+=
Rk∆ Rk Rv∆+∆=
Rj_dispararsin∆ Rj
_dispararsin Ak Rk∆Aj nº_vert.---------------------------+∆=
Ri_dispararsin∆ 0=
Rambiente calcula_ambiente( )=
Rk Rk ρRambiente+=
Radiosidad en Multiprocesadores
84
En este algoritmo no se actualiza la radiosidad en los elementos, sino directamente en los
vértices de estos elementos. Además, a diferencia del algoritmo anterior no se necesita cal-
cular y almacenar todos los factores de forma del patch de disparo respecto a todos los ele-
mentos de la escena, sino que se calculan cuando el valor sea requerido para calcular la
radiosidad. Por supuesto, una vez que se ha alcanzado la convergencia, al igual que en el caso
anterior, se actualiza el término ambiente.
La Figura 3.3 muestra una secuencia de imágenes, obtenidas con el método progresivo
para diferentes números de pasos y sin calcular el término ambiente. Con esta figura se puede
entender mejor como se realiza la distribución (disparo de energía) de la energía luminosa
con el método progresivo.
Figura 3.3 Imágenes para diferentes números de pasos con el algoritmo de radiosidad progresiva.
(1 paso) (2 pasos)
(4 pasos) (6 pasos)
(10 pasos) (300 pasos)
Capítulo 3: Radiosidad Progresiva: Paralelización
85
3.2.2. Método de sobrerrelajación.
Recientemente se han desarrollado varios trabajos analizando la convergencia del
algoritmo de radiosidad progresiva. En particular, Shao y Badler [SB93a] observaron que, si
bien el algoritmo converge de forma rápida hasta obtener una imagen medianamente atrac-
tiva, se necesitan muchas iteraciones para poder apreciar los matices de color de las sombras
y la suavidad de las mismas.
Este problema está íntimamente ligado con la forma en la que trabaja el algoritmo de
radiosidad progresiva. Inicialmente se selecciona el patch con mayor potencia radiante en la
escena (fuentes de luz), cuya energía es redisparada por los patches de mayor tamaño (como
por ejemplo, las paredes en una habitación). Shao y Badler llamaron a estos últimos patches
globales, y patches locales a aquellos patches que, o bien son más pequeños, o sólo reflejan
en una sola longitud de onda, y que por tanto no aportan energía hasta que los patches glo-
bales hayan terminado de disparar su radiosidad. Esto hace que las áreas pequeñas necesiten
muchas iteraciones antes de tener una aportación significativa a la escena.
Una estrategia para abordar este problema es disminuir la contribución debida a los
patches globales y enfatizar la contribución de los patches locales. Aplicando las técnicas de
sobrerrelajación [Nob69] al caso de la radiosidad (overshooting), Shao y Badler obtuvieron
un algoritmo de radiosidad progresiva más eficiente. Sus principales modificaciones radican
en que, una vez seleccionado el patch con mayor energía, se calcula un factor de overshoot-
ing ( ). Este valor se adiciona mas tarde, cuando se calcula el incremento de
radiosidad debido al patch de disparo, de forma que:
(3.4)
Por último, una vez que se haya terminado de disparar la energía del patch de disparo
sobre toda la escena, en vez de poner el valor de a cero se iguala a
, de esta forma la sobredimensión de los valores de radiosidad en la
iteración presente será eliminado en iteraciones posteriores. Los valores de overshooting se
pueden calcular con la siguiente expresión:
Riovershooting∆
R∆ ρkFi k, Risin_disparar Ri
overshooting∆+∆
AiAk------ =
Risin_disparar∆
Riovershooting∆–
Radiosidad en Multiprocesadores
86
(3.5)
donde:
(3.6)
Es decir, se suma la cantidad de radiosidad promedio sin disparar que el patch va a refle-
jar posteriormente, y se añade a su propia radiosidad sin disparar. Como se pueden obtener
flujos sin disparar tanto positivos como negativos, el principio de convergencia para el
algoritmo progresivo debe ser ahora:
(3.7)
3.3. Radiosidad progresiva en multiprocesadores.
En secciones anteriores se puede ver como, a pesar que el método progresivo simplifica
notablemente la solución de la ecuación de radiosidad respecto a los métodos tradicionales
de matriz completa, la obtención de imágenes fotorrealistas sigue siendo computacional-
mente muy costosa. Esto hace que su implementación en computadores secuenciales a
menudo no sea suficientemente eficiente.
En esta sección presentamos los trabajos previos sobre paralelización de este algoritmo,
así como nuestra implementación del algoritmo de radiosidad progresiva sobre multiproce-
sadores, usando el método de ray-casting determinístico para calcular los factores de forma.
En esta sección se estudiarán los problemas de distribución de datos, balanceo de carga y
localidad, y se presentarán nuestras soluciones a los mismos.
En el método progresivo, como en la mayoría de los problemas de valores iniciales, no
es posible calcular la solución en una iteración hasta que no se haya terminado la iteración
anterior. Esta característica intrínseca del método hace que la paralelización se limite solo al
plano funcional o espacial, distribuyendo las computaciones en cada iteración. El modelo de
Riovershooting∆ ρi Rj
_dispararsinFi j,∆
j 1=
n
∑=
Rj_dispararsin
∆Rj
_dispararsin∆ si Rj_dispararsin 0>∆
0 si Rj_dispararsin 0≤∆
=
∆Risin_dispararAi ε≤
i 1=
n
∑
Capítulo 3: Radiosidad Progresiva: Paralelización
87
programación más adecuado es el SPMD, siendo necesario distribuir los datos y las comput-
aciones en los elementos de procesamiento del computador.
3.3.1. Trabajos Previos
Los primeros trabajos sobre algoritmos paralelos del método de radiosidad, (Price et. al.
[PT89b], Chalmers et. al. [CP89]) estaban basados en métodos de matriz completa para
resolver el sistema de ecuaciones, usando la iteración de Gauss Seidel.
La distribución de los datos se realizaba entre todos los procesadores, y los factores de
forma eran calculados por el método del hemicubo. El inconveniente fundamental de estos
trabajos radica en que para obtener la solución final de la imagen es necesario resolver de
forma completa un sistema de nxn ecuaciones, siendo n el número de elementos de la escena;
además, se necesita almacenar factores de forma, con el correspondiente coste de memo-
ria.
Los primeros trabajos realizados sobre algoritmos paralelos para el método de radiosidad
progresiva fueron realizados sobre una red de transputers, (Lepretre et. al. [LRM91a]
[LRM91b], Renaud et. al. [Ren91]), y sobre una red de estaciones de trabajo (Chen et. al.
[Che89a], Recker et. al. [RGG90]). Estos trabajos tienen en común el que cada nodo calcula
la influencia de un determinado patch sobre los demás, y que los datos de la imagen son rep-
licados en todos los procesadores, ocasionando un overhead en el almacenamiento que crece
a medida que aumenta la complejidad de la escena. En los algoritmos implementados sobre
una red de estaciones de trabajo aparece una limitación adicional en la escalabilidad, aso-
ciada a las comunicaciones, debido al limitado ancho de banda de la red de área local.
Otros trabajos se basan en la distribución de los datos de la escena sobre la memoria local
de los procesadores. Así, Feda et. al. [FP94] propone una solución donde los datos de la
escena se distribuían a lo largo de una red de procesadores. Sin embargo, la elección del
patch de disparo se realiza de forma centralizada, lo que limita la concurrencia en las comu-
nicaciones y la escalabilidad del algoritmo.
Un grupo de implementaciones paralelas se basan en el método del hemicubo para real-
izar el cálculo de los factores de forma. Así Vilaplana [Vil92], utiliza un sistema de memoria
distribuida y calcula en cada procesador un hemicubo diferente, requiriendo comunicaciones
n2
Radiosidad en Multiprocesadores
88
para evaluar la función de visibilidad (ya que se necesitan datos que están en otros procesa-
dores). El método no escala bien pues, si aumentamos el número de procesadores mante-
niendo constante la complejidad de la imagen, el tiempo necesario para proyectar patches
externos aumenta. Aykanat et. al. [ACO96], utiliza también memoria distribuida y reparte
los patches entre los procesadores. En su método los factores de forma calculados localmente
son comunicados a los demás procesadores (circulando por todos ellos) para completar los
cálculos. En este articulo se obtuvo un speedup de 13.3 para 16 procesadores en un iPSC/2.
Otro grupo de trabajos utilizan las técnicas de ray-casting para el cálculo de los factores
de forma. Por ejemplo, Guitton [GRS95a] presentó un método paralelo en el cual la escena
era dividida espacialmente utilizando diferentes técnicas para la descomposición del entorno,
distribuyendo los bloques resultantes en las memorias locales de los procesadores. Cada
procesador selecciona un patch de disparo y analiza la aportación en direcciones (rayos)
seleccionadas de forma aleatoria (ray-casting estocástico) sobre los patches locales; los rayos
que no chocan con ningún patch local son comunicados al procesador vecino. En este trabajo
se alcanzó un speedup de 19.2 para 32 procesadores en un Paragon XP/S A4. Una solución
similar fue utilizada por Arnaldi et. al. [APRP97] en máquinas de memoria distribuida, con-
siguiendo un speedup de 21.5 para 28 procesadores en un Paragon XP/5, y por Renambot
[RAPP97], para arquitecturas de memoria distribuida-compartida, alcanzando un speedup de
21 para 32 procesadores en una SGI ORIGIN 2000. En ambos trabajos se introduce el con-
cepto de “interfase virtual” para manipular los datos transferidos entre los bloques en los que
se ha dividido el entorno tridimensional.
Utilizar el método estocástico puede llevar asociado dos problemas:
1) Si la cantidad de rayos que se disparan desde el patch emisor es muy pequeña,
pueden existir superficies que, aún siendo visibles desde este patch, no se tengan en
cuenta en el cálculo de la radiosidad.
2) Los rayos que no chocan con ningún patch en la escena son analizados sin ninguna
necesidad.
Guitton [GRS94] propone un algoritmo paralelo para el ray-casting determinístico, para
máquinas de memoria distribuida, en el qué la escena es totalmente distribuida en la memoria
de los procesadores, que forman una red tipo anillo, y el patch de disparo circula de procesa-
dor en procesador para realizar el cálculo de visibilidad sobre el conjunto de datos asignado
a cada uno de ellos. Adelene Ng [Ng 94b] presenta una propuesta utilizando una red de est-
Capítulo 3: Radiosidad Progresiva: Paralelización
89
aciones de trabajo, replicando totalmente la escena en todos los elementos de la red, y con
un planificador centralizado que asigna por demanda un patch de disparo distinto a cada ele-
mento de procesamiento; en esta propuesta se consiguió una aceración de 3.4 para 8 proce-
sadores.
Creemos interesante destacar el hecho de que, en nuestra búsqueda bibliográfica sobre el
tema, no hemos encontrado ninguna implementación paralela sobre máquinas de memoria
compartida para el método determinístico de radiosidad progresiva.
En las siguientes subsecciones presentamos nuestra implementación del método de radi-
osidad progresiva con ray casting determinístico, tanto para multiprocesadores de memoria
distribuida como para multiprocesadores de memoria compartida.
3.3.2. Implementación en máquinas de memoria distribuida.
El primer problema que se plantea a la hora de desarrollar un algoritmo paralelo es
decidir qué computaciones pueden y deben hacerse de forma concurrente, y sobre qué datos
deben ser ejecutadas. En el caso del algoritmo de radiosidad progresiva el mayor coste com-
putacional está asociado al bucle que se encarga de actualizar la radiosidad que aporta el
patch de disparo sobre los demás patches de la escena. Estas operaciones implican calcular
el factor de forma del patch de disparo respecto a todos los elementos de la escena, y se
necesita la información global del resto de la escena para el cálculo de visibilidad. Por ello,
el mecanismo para mantener la localidad de los datos es en ocasiones sumamente complejo
dependiendo de como se realice la distribución de los datos y del tipo de arquitectura paralela
que se utilice.
Los datos que describen una escena tridimensional están dispuestos formando una estruc-
tura jerárquica compuesta (en orden decreciente de la jerarquía) por entidades, superficies,
patches, elementos y vértices. Podemos encontrar entonces tres niveles de paralelismo en
este algoritmo:
1 ) En un nivel mas grueso, el paralelismo puede ser posible sobre las superficies que
forman la escena. Sin embargo, mantener un buen balance de carga en este nivel es
prácticamente imposible, pues el gran tamaño de estos polígonos implica que la difer-
Radiosidad en Multiprocesadores
90
encia en el número de elementos para dos superficies cualesquiera es muy elevado, lo
que se traduce en una distribución muy irregular de la carga.
2 ) En un nivel intermedio el paralelismo puede ser también posible sobre los patches
en los cuales las superficies son divididas. En este nivel sí es posible garantizar un
buen balance de carga.
3 ) Finalmente es posible tener un paralelismo de grano fino sobre los elementos en los
cuales se subdividen los patches. Sin embargo dado que los elementos que pertenecen
a un mismo patch comparten el mismo valor de radiosidad, la paralelización a nivel
de elemento puede introducir una cantidad excesiva de comunicaciones, que penali-
zan la eficiencia del algoritmo.
Descripción del algoritmo paralelo propuesto.
El algoritmo propuesto para multiprocesadores de memoria distribuida, cuyo esquema se
muestra en la Figura 3.4, tiene una granularidad a nivel de patch con el objetivo de reducir
las comunicaciones tanto como sea posible, puediendo ser dividido en los siguientes pasos:
1) Los patches y los elementos de la escena son distribuidos en las memorias locales de
los procesadores, y la descripción geométrica de los patches es replicada.
2) Cada procesador busca en su lista de patches locales asignados ( ) el que tenga una
mayor energía sin disparar ( ).
3) Se establece entonces una etapa de comunicación global, que permite seleccionar al
patch de disparo con mayor energía sin disparar en toda la escena a partir de los can-
didatos propuestos individualmente por cada procesador. Tras la selección, se
almacenan en cada procesador los parámetros ópticos (reflectividad, radiosidad sin
disparar, etc.) del patch de disparo elegido.
4) Cada procesador calcula el aporte de energía desde este patch sobre cada uno de los
vértices de cada elemento de sus patches locales, lo que requiere calcular el factor de
forma entre el patch de disparo y el vértice analizado (método de ray casting).
5) Finalmente se establece otra etapa de comunicación global donde se transmite la radi-
osidad acumulada en cada procesador para poder mantener un criterio de convergen-
cia global. Si la convergencia (o el número de pasos fijado) no se ha alcanzado regresa
al paso 2.
ϒ
∆Ri_dispararsin
Capítulo 3: Radiosidad Progresiva: Paralelización
91
While
FORALL PROCESADORESFOREACH (patch )Selecciona_el_patch_con_mayor_flujo_sin_disparar ( )ENDFORComunicación Global ()Selecciona_el_de_mayor_flujo_de_los_candidatos ( global _list)
/* parte de la escenaasignada a cada proc.*/
FOREACH(patch )FOREACH (element )
FOREACH (vertex )
ENDFOR
ENDFORENDFOR
Comunicación Global ()ENDFORALLendwhile
Figura 3.4 Solución final de la ecuación de radiosidad en paralelo.
Las próxima secciones describen en detalle las soluciones propuestas para resolver los
problemas de la localidad de los datos, el balance de carga y la coherencia, analizando el
impacto de estas sobre el rendimiento del algoritmo paralelo.
Localidad de Datos
Para cada patch de disparo es necesario evaluar la función de visibilidad contra cada vér-
tice de cada patch de la escena (a excepción del propio patch de disparo). En consecuencia
cada procesador debe acceder a la descripción geométrica de todos los patches de la escena.
En nuestra solución proponemos replicar esta información en cada procesador, garantizando
∆Risin_dispararAi ε≥
i 1=
n
∑
i ϒ∈∆Ri
unsend
ϒ
j ϒ∈k j∈
Rk∆ 0=v k∈
Rv∆ ρjFv i, Risin_disparar∆=
Rv Rv Rv∆+=
Rk∆ Rk Rv∆+∆=
Rj_dispararsin∆ Rj
_dispararsin Ak Rk∆Aj nº_vert.---------------------------+∆=
Ri_dispararsin∆ 0=
Radiosidad en Multiprocesadores
92
de esta forma que la única información no local son las propiedades ópticas del patch de disp-
aro, que son actualizadas en el paso 3 del algoritmo. En la Figura 3.5 representamos de forma
gráfica la distribución de datos propuesta. La representación está hecha para cuatro procesa-
dores con una escena formada por ocho patches (P1 a P8) y un total de 24 elementos.
Figura 3.5 Distribución de los datos en cada procesador.
A pesar que esta replica parcial de los datos produce un overhead de memoria, que puede
limitar el tamaño de las imágenes procesables con el algoritmo paralelo propuesto, nuestra
experiencia nos permite afirmar que, si no se realiza réplica, el overhead debido a las comu-
nicaciones (necesarias cada vez que se evalúa la función de visibilidad) hace que el speedup
del algoritmo disminuya dramáticamente.
Adicionalmente en nuestra implementación se reduce el impacto del overhead de memo-
ria no replicando toda la información del patch (óptica y geométrica), sino sólo la
geométrica.
Balance de carga.
Como ya se mencionó antes, la granularidad de este algoritmo es a nivel de patch. La
forma más simple de distribuir el conjunto de patches sobre los procesadores es la conocida
como distribución por bloques (BLOCK). Como ejemplo la Figura 3.6 muestra una dis-
tribución por bloques de la escena para cuatro procesadores, cada uno de los procesadores se
encarga de calcular el incremento en el valor de radiosidad producido por el patch de disparo
Procesador 1
P1 P5
Procesador 2
P2 P6
Procesador 3
P3 P7
Procesador 4
P4 P8
Información geométrica y óptica de los patches de la escena.Información geométrica de los patches (datos replicados).Información geométrica y óptica de los elementos.
Capítulo 3: Radiosidad Progresiva: Paralelización
93
sobre los vértices de los elementos y patches que le han sido asignados.
Figura 3.6 Ejemplo de distribución por bloques de una escena para cuatro procesadores.
Esta distribución presenta el problema de que, si los patches de la escena tienen un
número no homogéneo de elementos, se producirán diferencias considerables en la carga
computacional asignada a cada procesador. De hecho podemos comprobar experimental-
mente que la eficiencia del algoritmo paralelo utilizando la distribución BLOCK es muy
pobre. Se optó entonces por utilizar una distribución cíclica de los patches, que garantiza un
reparto más uniforme de los patches de similar tamaño.
Sin embargo esta distribución sigue presentando problemas cuando se procesan imá-
genes “desbalanceadas”, en las que existen patches con números de elementos muy distintos.
Por ello se implementó otro tipo de distribución, en el cual, los patches siguen siendo distri-
buidos cíclicamente, pero se establece un coeficiente ponderador de carga en cada procesa-
dor, que tiene en cuenta el número de elementos asignados al mismo. Esta distribución, a la
que hemos llamado distribución cíclica ponderada, distribuye inicialmente de forma cíclica
los patches, de mayor a menor número de elementos, comprobando en todo momento que no
se sobrepase el coeficiente de balance dado por la expresión:
(3.8)
donde:
: Número de elementos ya asignados.
: Número total de elementos en la escena.
: Número de procesadores utilizados.
Si el coeficiente de carga es menor que uno, se pueden seguir asignando patches a dicho
procesador; si es mayor que uno, significa que el procesador está desbalanceado, mientras
Procesador 2
P3 P4
Procesador 3
P5 P6
Procesador 1 Procesador 4
P7 P8
Información geométrica y óptica de los patches de la escena.Información geométrica de los patches (datos replicados).Información geométrica y óptica de los elementos.
P1 P2
Coefc aargNeasignados P⋅
NeTotales-----------------------------------=
Neasignados
NeTotales
P
Radiosidad en Multiprocesadores
94
que si es uno el procesador está muy cerca del balance presumiblemente óptimo.
Este mecanismo de control de balance puede hacer que, en esta primera fase de dis-
tribución, queden patches sin asignar. En este caso comienza una segunda fase de dis-
tribución, en la que se asignan estos patches a los procesadores que tienen un menor
coeficiente de carga. Aunque en esta fase el coeficiente de carga de algún procesador puede
superar la unidad, este desbalance será mínimo, puesto que el número de elementos de estos
patches es muy pequeño comparado con el número total de elementos asignados al procesa-
dor.
Como ejemplo en la Figura 3.7, se muestra gráficamente el resultado de distribuir entre
cuatro procesadores una escena con ocho patches y 24 elementos.
Figura 3.7 Distribución cíclica ponderada.
Esta nueva distribución logra un mejor balance en la cantidad de elementos por procesa-
dor, a costa de distribuir de forma no uniforme los patches entre los procesadores. Esto intro-
duce un requerimiento no uniforme de memoria en los procesadores, al variar el número de
patches entre ellos. Sin embargo, el equilibrio en el número de elementos hace muy pequeña
esta no uniformidad. A cambio, la carga computacional será prácticamente uniforme entre
todos los procesadores, excepto si existen en la escena patches grandes de carga anormal-
mente pequeña, lo cual es poco probable que ocurra.
Una última posibilidad es considerar un método dinámico de balanceo de carga, con asig-
nación de patches por demanda dentro de cada iteración. Sin embargo, en arquitecturas de
memoria distribuida el uso de un método de balance dinámico no resulta especialmente efi-
ciente, puesto que requiere la migración de patches de un procesador a otro, dando lugar a
un excesivo coste de las comunicaciones.
Procesador 2
P2 P5
Procesador 3
P3 P6
Procesador 1 Procesador 4
P1 P4 P7 P8
Información geométrica y óptica de los patches de la escena.Información geométrica de los patches (datos replicados).Información geométrica y óptica de los elementos.
Capítulo 3: Radiosidad Progresiva: Paralelización
95
Coherencia.
En nuestro algoritmo se introduce una barrera de sincronismo al final de cada iteración,
que garantiza la coherencia y la actualización completa de la radiosidad de la escena antes
de seleccionar un nuevo patch de disparo; sin requerir comunicaciones adicionales. Este
valor actualizado de la radiosidad total de la escena permite establecer un criterio global de
convergencia, en el que se continua con la próxima iteración solamente si la radiosidad a dis-
parar en dicha iteración es significativa respecto a la radiosidad total de la escena.
El hecho de que la asignación de patches sea fija, para evitar penalizaciones por comuni-
caciones, unido a la presencia de la barrera de sincronismo, hace que el tiempo de ejecución
por iteración nunca sea menor que el del procesador mas lento. Mantener un buen balance de
carga se convierte entonces en el problema más crítico para arquitecturas de memoria distri-
buida.
Dado la asignación fija de patches a procesadores, resulta también evidente que el uso de
múltiples patches de disparo por iteración no es una alternativa válida para mejorar el balan-
ceo de carga. Las razones son dos:
1) Si se emplea la barrera de sincronismo al final de la iteración, el tiempo de cálculo
en el procesador más lento sigue siendo, para cada patch, igual o superior al tiempo nec-
esario en el caso de un único disparador. Además, el retardo adicional en la actualización
de las radiosidades retarda la convergencia global.
2) Si se elimina la barrera de sincronismo, las comunicaciones necesarias durante la
iteración para actualizar el estado del sistema imponen una excesiva penalización al ren-
dimiento.
Los resultados experimentales obtenidos para una implementación del algoritmo con dis-
paradores múltiples confirmaron la pobre eficiencia de esta opción.
Evaluación de la complejidad del algoritmo.
En esta sección se presenta un análisis del coste computacional, el coste de las comuni-
caciones y del coste de memoria de los algoritmos paralelos propuestos para el método de
Radiosidad en Multiprocesadores
96
radiosidad progresiva sobre máquinas de memoria distribuida.
Complejidad.
La complejidad de nuestro algoritmo paralelo es función de la complejidad de la imagen
a procesar, de la precisión deseada y del número de unidades de procesamiento.
El peor caso para la convergencia es aquel en el que el error permisible y el número de
iteraciones obliga a que todos los patches de la escena tengan que ser elegidos como patches
de disparo. En este caso la complejidad computacional es:
(3.9)donde:
P: Es el número de patches en que es subdividida la escena tridimensional.
SH: Representa la complejidad del proceso de búsqueda del patch con mayor
energía sin disparar entre los N procesadores cada uno de ellos en el subespacio de datos
(patches y sus respectivos elementos) que le ha sido asignado. Por ejemplo, para una dis-
tribución por bloques (BLOCK) o cíclica ideal (CICLIC), en la que todos los patches queden
ubicados de forma homogénea en los procesadores, sería igual a .
Para calcular la complejidad SH es necesario tener también en cuenta el tiempo Tc
empleado en realizar la comunicación global de los patches seleccionados en todos los proc-
esadores. Esta comunicación global se realiza en dos etapas: una reducción al centro de la
malla, seguida de una expansión desde el centro al resto de los procesadores, con el objetivo
de solapar la mayor cantidad de comunicaciones posibles. La Figura 3.8 muestra como se
realiza este proceso, que tiene una complejidad computacional .
El coste de buscar el patch de disparo, es pues, .
Figura 3.8 Representación de las comunicaciones realizadas.
O P SH R F⋅+( )⋅( )
ϒ
ϒ PN----
O N( )
SH O ϒ Tc+( )=
N0 N3N1
N6N5N4
N9N8N7
Capítulo 3: Radiosidad Progresiva: Paralelización
97
es la parte más costosa del algoritmo, y representa el cálculo y actualización
del valor del factor de forma (F) y del valor de radiosidad ( ) en todos los vértices ( ) de
los elementos ( ) que pertenecen al subespacio computacional ( ) de cada procesador, una
vez seleccionado un patch de disparo. Este término viene dado por la siguiente expresión:
(3.10)
donde: es el tiempo invertido en el proceso de comunicación (similar al descrito ante-
riormente) necesario para mantener un criterio global de convergencia, y F representa la
complejidad del algoritmo que calcula el factor de forma entre las subdivisiones del patch
de disparo y uno de los vértices.
Como el cálculo del factor de forma implica evaluar la función de visibilidad para todos
los patches de la escena, la complejidad de F será y por tanto:
(3.11)
Suponiendo que el número de patches por procesador es aproximadamente , que Tc
depende de una constante de tiempo K en la comunicación y del número de procesadores
( ), y que el número de elementos por patch es , entonces , y los
términos de la expresión (3.9) se pueden escribir como:
con lo que coste total del algoritmo paralelo se puede expresar como:
(3.12)
A partir de la expresión (3.12) y considerando que K es despreciable respecto al tiempo
utilizado cuando sólo se utiliza un solo procesador, se puede concluir que sólo logrando un
buen balance de carga ( similar para todos los procesadores) podremos obtener buenos
resultados.
R F⋅
R v
e ϒ
R F⋅ O 4 e e; ϒ∈ F⋅ ⋅[ ] Tc+( )=
Tc
r
O r P⋅( )
R F⋅ O 4 e e; ϒ∈ r P⋅ ⋅ ⋅[ ] Tc+( )=PN----
Tc K N⋅= ne ϒ nePN----⋅=
SH O PN---- Tc+ O P
N---- K N⋅+ = =
R F⋅ O 4 nePN---- r P K N⋅+⋅ ⋅ ⋅ ⋅
=
O P PN---- K N 4 ne
PN---- r P K N⋅+⋅ ⋅ ⋅ ⋅+⋅+
⋅
ne
Radiosidad en Multiprocesadores
98
Memoria
Otro aspecto a tener en cuenta en la evaluación de los algoritmos es el consumo de
memoria. En el caso de las distribuciones de datos propuestas el consumo de memoria por
procesador viene dado por:
(3.13)
donde y representan la cantidad de memoria necesaria para almacenar la estructura
de datos correspondiente a un elemento y a un patch, respectivamente. El término
aparece por la necesidad de replicar la información geométrica de los patches,
que es el 49% de la información total de cada patch.
Como muestra la ecuación (3.13) el consumo de memoria por procesador es igual a una
parte constante, debido a la replicación, más una parte (la de los patches asignados) que dis-
minuye conforme aumenta el número de procesadores.
Resultados experimentales.
Para probar y evaluar la eficiencia de los algoritmos propuestos para máquinas de memo-
ria distribuida se realizaron varios experimentos sobre un Cray T3E, utilizando hasta 32
nodos a 450 Mhz con 128 MB de memoria local. El programa está escrito en lenguaje de pro-
gramación C, utilizando las librerías PVM de paso de mensaje para implementar el código
paralelo, siguiendo un modelo de programación SPMD.
En todos los experimentos realizados se han utilizado tres escenas con diferentes com-
plejidades computacionales y distribuciones de las fuentes de luz. La primera (Figura AII.5
del anexo II), a la que hemos llamado IMAG 1 está compuesta por 286 patches y 4561 ele-
mentos. Esta es una imagen muy conocida en el entorno de gráficos por computador, llamada
imagen de Cornell, puesto que fue con esta imagen con la que en 1985 Cohen probó y validó
el método de radiosidad en la universidad de Cornell. De hecho, aun se sigue utilizando esta
imagen en esta universidad de Cornell para experimentar con los métodos de radiosidad
[Uni].
La segunda escena (IMAG 2) es una representación de una habitación con una mesa, y
esta formada por 431 patches y 6191 elementos. Tanto IMAG1 como IMAG2 están bien bal-
Mp ϒ Me e ϒ∈( ) 0 49Mp P⋅,+⋅+⋅
Me Mp
0 49Mp P⋅,
Capítulo 3: Radiosidad Progresiva: Paralelización
99
anceadas, o sea, la diferencia en la cantidad de elementos entre cualesquiera dos patches es
muy pequeña.
Por último se utilizó para los experimentos una escena (IMAG 3) desbalanceada en la que
el número de elementos por patch varía de 1 a 400. Esta escena está constituida por 2056
patches y 20214 elementos. En el anexo II Figuras AII.6 y AII.7 se muestra una represent-
ación de IMAG2 e IMAG3.
Para la ejecución secuencial de las simulaciones se utilizó el propio código paralelo sin
la realización de las comunicaciones. De todas formas, las diferencias de tiempos de
ejecución entre el programa secuencial y el paralelo sobre un nodo son despreciables (infe-
riores al 1%). Se probó además que el overhead introducido por las comunicaciones era
despreciable respecto al tiempo total de procesamiento, para el peor de los casos (32 proce-
sadores).
En la Tabla 3.1 se muestran los tiempos de ejecución para estas escenas utilizando dis-
tribuciones cíclica y cíclica ponderada sobre los patches de la misma.
IMAGEN Nº ProcCICLICA CICLICA PONDERADA
tiempo ejec. % Balance tiempo ejec. % Balance
IMAG 1
1 444.9 --- 444.9 ---2 236.78 97.6 234.15 96.74 124.28 93.1 120.24 93.58 61.29 92.3 60.94 92.7
16 36.04 80.4 32.97 86.132 24.05 59.9 22.58 62.8
IMAG 2
1 1532.6 --- 1532.6 ---2 806.63 98.1 806.63 97.14 414.21 94.50 403.31 97.238 205.71 95.20 204.34 95.3
16 113.61 86.43 108.61 90.0132 60.72 80.86 58.72 83.2
IMAG 3
1 24331.47 --- 24331.47 ---2 13903.69 89.4 13517.48 94.824 6951.84 89.83 6488.39 95.38 3631.56 85.2 3379.37 92.23
16 2115.78 73.8 1713.48 90.132 1336.89 57.9 1001.29 77.8
Tabla 3.1 Tiempos de ejecución y balanceo de carga (Distribuciones cíclica y cíclica ponderada).
Radiosidad en Multiprocesadores
100
Figura 3.9 Aceleraciones (speedup) en memoria distribuida para la imagen IMAG1.
Como se muestra de la Figura 3.9 a la Figura 3.11, el máximo speedup obtenido es de
26.1 para 32 procesadores, en la imagen “IMAG 2”. Se puede observar cómo a medida que
aumenta la complejidad de la imagen a procesar aumenta el speedup del algoritmo, lo que
demuestra la buena escalabilidad del algoritmo paralelo propuesto. Este aumento se debe,
principalmente, a que se obtiene un mejor balance de carga a medida que se dispone de una
mayor cantidad de patches a distribuir, dado que con una mayor cantidad de patches se puede
reajustar los desbalances imprevisibles a priori debidos a patches que requieren menos com-
putación.
En la Figura 3.11 se puede apreciar claramente el impacto negativo, sobre el speedup del
algoritmo paralelo, de las imágenes desbalanceadas, es decir imagenes que tienen dese-
quilíbrios grandes en el número de elementos por patch. De los resultados obtenidos se puede
concluir además, que el uso de la distribución cíclica ponderada introduce una mejora apre-
ciable (cerca de un incremento de 6 en el speedup) para las imágenes desbalanceadas.
Capítulo 3: Radiosidad Progresiva: Paralelización
101
Figura 3.10 Aceleración en memoria distribuida para la imagen IMAG2.
Figura 3.11 Aceleraciones (speedup) en memoria distribuida para la imagen IMAG3.
El overhead de memoria debido a la replicación parcial de la información de los patches
Radiosidad en Multiprocesadores
102
que forman la escena, se muestra en la Figura 3.12. Se puede apreciar como su magnitud en
cada procesador es muy pequeña y permanece contante con el número de procesadores.
Si resulta más significativo el overhhead debido a la replicación de la información
geométrica de la escena, que requiere consumir en cada procesador una cantidad de memoria
adicional igual al 49% de la memoria total necesaria para almacenar todos los patches de la
escena.
Sin embargo, es conveniente resaltar que un algoritmo que use replicación completa de
la escena necesitaría, para 24 procesadores, 23 veces más memoria que la empleada por el
algoritmo secuencial. En cambio nuestro algoritmo, gracias a la replicación parcial y a la dis-
tribución de los patches, tan sólo necesitó (en el peor de las pruebas realizadas) aproximada-
mente el doble de memoria que el algoritmo secuencial.
Figura 3.12 Overhead de memoria.
Capítulo 3: Radiosidad Progresiva: Paralelización
103
3.3.3. Implementación en máquinas de memoria compartida.
En el trabajo realizado en la paralelización del algoritmo de radiosidad progresiva tam-
bién se comprende implementaciones para máquinas de memoria compartida.
A continuación se detalla esta implementación.
Descripción del algoritmo paralelo propuesto.
En máquinas de memoria compartida la réplica y las comunicaciones no son necesarias.
Además algunas operaciones que en memoria distribuidas eran realizadas de forma indepen-
diente por cada procesador, y que requerían después una comunicación global para la coor-
dinación ahora son realizadas en su totalidad, de forma secuencial, por un procesador, a este
procesador le denominaremos “procesador maestro”. A continuación describimos los pasos
para este algoritmo.
1) El procesador maestro selecciona secuencialmente el patch con mayor energía sin dis-
parar en la escena.
2) Entre todos los procesadores se calcula y actualiza la radiosidad en cada uno de los
vértices de los elementos para todos los patches que actúan como receptores.
3) Una vez que la radiosidad de todos los patches ha sido actualizada, el procesador mae-
stro comprueba si se ha llegado a alcanzar la convergencia. Si aún no ha sido alca-
nzada se regresa al paso 1.
En la figura 3.13 se muestra el pseudocódigo para este algoritmo; la región definida por
la sentencia pragma parallel representa la sección del código realizada en todos los procesa-
dores.
Radiosidad en Multiprocesadores
104
While
FOREACH (patch )Select_great_unsend_flux_patch ( )endfor
pragma parallelpfor (patch ) schedtype (dynamic, interleave, simple)
FOREACH (element )
FOREACH ( vertex )
ENDFOR
ENDFORend pforend pragma parallel
endwhile
Figura 3.13 Algoritmo paralelo en memoria compartida.
Localidad de datos, balance de carga y coherencia.
Como la memoria es compartida por todos los procesadores, no es necesario replicar la
información geométrica de los patches para garantizar la localidad de los datos. Por otra parte
la propia arquitectura de la máquina se encarga de mantener la coherencia en la memoria de
cada procesador.
En este tipo de arquitectura existen mecanismos que permiten realizar asignaciones
dinámicas de datos, los cuales fueron descritos en el capítulo 2. Utilizando estos mecanismos
podemos distribuir los patches que debe calcular cada procesador sin necesidad de establecer
comunicaciones. De esta forma, ordenando los patches por número decreciente de elemen-
∆Risin_dispararAi ε≥
i 1=
n
∑
i escena∈∆Ri
unsend
j escena∈k j∈
Rk∆ 0=v k∈
Rv∆ ρjFv i, Risin_disparar∆=
Rv Rv Rv∆+=
Rk∆ Rk Rv∆+∆=
Rj_dispararsin∆ Rj
_dispararsin Ak Rk∆Aj nº_vert.---------------------------+∆=
Ri_dispararsin∆ 0=
Capítulo 3: Radiosidad Progresiva: Paralelización
105
tos, y utilizando una asignación automática por demanda (dynamic), se garantiza un balance
uniforme de la carga. Los experimentos realizados nos permiten concluir que con este tipo
de asignación se obtienen mejores resultados que con las distribuciones estáticas cíclicas,
aún utilizando ponderación.
Resultados experimentales.
A continuación presentamos los resultados obtenidos al ejecutar nuestra implementación
del algoritmo paralelo de radiosidad progresiva sobre el multiprocesador de memoria com-
partida ORIGIN 2000, utilizando las mismas imágenes que para los experimentos realizados
en memoria distribuida.
Nuestro primer objetivo al utilizar esta máquina fue comprobar la eficiencia de la detec-
ción automática de paralelismo por parte del compilador. Para ésto se probaron todas las
opciones de compilación recomendadas por el fabricante [Graa][Grab][Grac], e incluso se
probaron una serie de directivas de pragma, que guían al compilador en la detección del
paralelismo. Como resultado de estas pruebas se comprobó que, dada la complejidad de los
algoritmos secuenciales desarrollados, el compilador era incapaz de generar código eficiente
para la ejecución con varios procesadores. De esta forma no quedó otra alternativa que uti-
lizar las bibliotecas que permiten la paralelización manual.
También aprovechamos estos experimentos para estudiar el impacto de las diversas téc-
nicas (round-robin o migración de páginas), disponibles en la Origin para realizar los accesos
a memoria. Se probó que la diferencia en la eficiencia del algoritmo, de utilizar round-robin
a utilizar migración de páginas, era insignificante; se decidió entonces utilizar únicamente la
técnica de round-robin.
En la Tabla 3.2 se muestra los tiempos de ejecución del algoritmo paralelo para diferentes
distribuciones de la lista de patches una vez ordenados por el número de elementos.
Radiosidad en Multiprocesadores
106
Debido a que en este tipo de arquitectura es imposible distinguir el tiempo invertido en
las comunicaciones realizadas internamente, era necesario usar otro parámetro que nos per-
mita medir el balance de carga. Concretamente, se ha utilizado el contador “CNT 21” del
R10000, que indica el número de operaciones de punto flotante que realiza cada procesador.
Así el coeficiente de balance descrito en el capítulo 2, teniendo en cuenta los tiempos de
ejecución, se puede definir en función de las operaciones de punto flotante (contador CNT
21) como:
De la Figura 3.14 a la Figura 3.16 se muestra la aceleración obtenida para el algoritmo
paralelo desarrollado, en las tres escenas de prueba. Se puede comprobar como la aceleración
del algoritmo aumenta con la complejidad de la escena, obteniéndose una buena escalabil-
IMAGEN Nº Proc
BLOQUES CICLICA DINAMICA
tiempo ejec.
% Balance
tiempo ejec.
% Balance
tiempo ejec.
% Balance
IMAG 1
1 680.59 --- 680.59 --- 680.59 ---2 400.34 92.1 400.34 87.4 358.20 96.84 270.07 65.2 214.69 81.6 189.05 92.18 177.23 50.3 117.14 74,5 98.77 87.9
12 145.42 40.8 93.35 67.8 81.02 72.316 141.78 31.7 81.02 53.9 65.82 66.1
IMAG 2
1 1859.76 --- 1859.76 --- 1859.76 ---2 1093.97 92.7 1033.2 92.2 978.82 97.24 588.53 81.3 546.98 87.3 490.70 96.88 422.67 57.5 286.11 83.4 258.3 92.1
12 322.87 50.1 209.19 76.2 178.82 88.316 276.75 44.7 187.47 64.1 152.43 79.6
IMAG 3
1 20640.3 --- 20640.3 --- 20640.3 ---2 11794.45 89.2 11466.83 92.3 10863.31 98.34 8062.61 65.9 6658.16 79.3 5292.38 97.08 5292.38 50.2 3822.27 69.2 2629.33 97.8
12 4047.11 44.2 3035.33 58.1 1764.12 96.316 3383.65 39.4 2428.27 55.5 1463.85 90.9
Tabla 3.2 Tiempos de ejecución y balanceo de carga (Distribuciones bloque, cíclica y dinámica).
%Balance 100 1 CNT21 max( ) CNT21 min( )–( )CNT21 max( )------------------------------------------------------------------------------–
×=
Capítulo 3: Radiosidad Progresiva: Paralelización
107
idad.
Figura 3.14 Aceleración en memoria compartida para la imagen IMAG1.
Figura 3.15 Aceleración en memoria compartida para la imagen IMAG2.
Radiosidad en Multiprocesadores
108
Figura 3.16 Aceleración en memoria compartida para la imagen IMAG3.
De forma general, el speedup obtenido en este algoritmo es bueno, siendo muy similar al
obtenido para la arquitectura de memoria distribuida hasta 16 procesadores. Los resultados
obtenidos cuando se aplica una distribución dinámica son significativamente superiores a
cuando se utilizan distribuciones estáticas como la BLOCK (simple) o la CYCLIC (inter-
leave), confirmando la importancia de hacer un reparto uniforme de la carga computacional
a nivel de los elementos que forman la escena. La asignación dinámica de los patches, es
entonces la mejor opción para garantizar el reparto uniforme de la carga computacional.
La poca diferencia en el speedup del algoritmo respecto a la implementación realizada
para memoria distribuida, unido al hecho de que en este tipo de arquitectura no hay proble-
mas de overhead, hacen que esta variante de paralelización sea una decisión aceptada.
Por último, se probó utilizar una distribución de tipo GSS, pero los resultados no fueron
mejores a los obtenidos para la distribución dinámica y, dado que esta distribución implica
la ejecución de un planificador propio para cada procesador, no recomendamos que sea uti-
lizada.
Capítulo 3: Radiosidad Progresiva: Paralelización
109
3.4. Conclusión.
Partiendo de la ecuación de radiosidad discreta obtenida en el capítulo 1, en este capítulo
hemos analizado el método progresivo para la solución del sistema de ecuaciones de radi-
osidad.
Tras analizar la secuencia de operación es del algoritmo secuencial, se han descrito las
complicaciones que plantea su paralelización, así como las soluciones más interesantes que
se han dado, en la bibliografía, para este problema.
Se ha presentado también nuestra implementación de nuevos algoritmos paralelos de
radiosidad progresiva para arquitecturas SPMD de memoria compartida y distribuida,
demostrando su eficiencia frente a otras implementaciones paralelas realizadas con anterior-
idad.
Se han estudiado, en ambos casos, técnicas de distribución de datos, guiadas por criterios
de tamaño o número de elementos de los patches, que garantizan buenos balances de carga
y buena escalabilidad. Asimismo, el algoritmo de memoria distribuida consigue mantener en
un mínimo el coste de comunicaciones, a cambio de aceptar la replicación en cada procesa-
dor de la información geométrica de la escena. Sin embargo, los resultados experimentales
muestran que el overhead de memoria se mantiene en límites razonables.
Por último, se ha podido comprobar la ineficacia de los compiladores actuales para la
detección automática de paralelismo, sobre todo en problemas tan irregulares como es el caso
de los algoritmos de radiosidad.
Radiosidad en Multiprocesadores
110
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
111
CAPITULO 4
MÉTODO JERÁRQUICO DE SOLUCIÓN DE LA RADIOSIDAD.
4.1. Radiosidad Jerárquica.
Como se ha visto en capítulos anteriores, el coste computacional de los programas de
radiosidad depende enormemente del número de elementos en que se ha dividido la escena,
pues para resolver la ecuación de radiosidad discreta se requiere calcular una interacción
entre cada par de elementos. Cada una de esas interacciones implica resolver una doble inte-
gral del factor de forma, más el coste adicional de evaluar la función de visibilidad, y puede
perfectamente ocurrir que, tras calcular los factores de forma, se compruebe que los elemen-
Radiosidad en Multiprocesadores
112
tos no tienen un aporte significativo en la iluminación de la escena. Si pudiésemos de algún
modo reducir el número de factores de forma que se requieren para propagar la luz a través
del entorno, observaríamos un ahorro significativo de tiempo en la computación.
En principio, esto no es una tarea trivial, ya que los factores de forma definen interac-
ciones entre los polígonos que componen la escena, y la reducción no debe suponer una
reducción de la exactitud en el cálculo de la radiosidad.
El método de radiosidad jerárquica consigue reducir el número de factores de forma a
calcular, realizando una subdivisión adaptativa de la escena. Para ello utiliza algunas solu-
ciones que han dado buenos resultados al problema de los N cuerpos en la física gravitacio-
nal.
4.1.1. Relación entre la Radiosidad jerárquica y el Problema de los Ncuerpos.
Considérese un sistema de N objetos independientes en el espacio, donde cada uno ejerce
una fuerza gravitacional sobre todos los demás. El movimiento de cada cuerpo requiere una
evaluación explícita de interacciones. Obviamente, simular la evolución de siste-
mas de tamaño galáctico (que contienen millones de estrellas) tiene un coste computacional
prácticamente prohibitivo.
Podemos sin embargo hacer una observación que nos permite reducir el coste del prob-
lema: normalmente no necesitamos una precisión perfecta en el modelo, pues la precisión en
los cálculos está limitada por el hardware y el software empleado en el computador. Consid-
eremos, por ejemplo, un cuerpo que está en el espacio, separado por una gran distancia de un
grupo de dos o más cuerpos, los cuales están relativamente cercanos entre si. Dada una deter-
minada precisión, existe una distancia asociada a partir de la cual la magnitud y dirección del
campo gravitacional individual de cada uno de los dos cuerpos en el grupo no es distinguible
para el cuerpo aislado. A partir de esta distancia, se pueden sustituir los dos campos individ-
uales por uno que sea dos veces más fuerte en la dirección deseada.
Esta idea, conocida en la literatura como “clustering interactions”, se puede aplicar
recursivamente a cualquier grupo grande de cuerpos. La idea básica es que si la interacción
entre dos cuerpos decrece con la distancia y el tamaño de los cuerpos, habrá entonces siempre
una distancia en la que un par de cuerpos podrá ser considerado como un gran cuerpo de un
n n 1–( )⋅
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
113
tamaño mayor, y a su vez éste podrá ser combinado con otro, y así sucesivamente. Se ha
podido probar que, utilizando esta técnica, se puede obtener un algoritmo que tenga una com-
plejidad computacional de orden en vez de orden [GR87].
Hanrahan y Salzman [HS90] observaron que el cálculo de los factores de forma tenían
mucho en común con el problema de los N cuerpos. En primer lugar, en ambos casos se con-
sideran interacciones entre todos los pares de objetos. Además, tanto la fuerza gravitacional
como el factor de forma son proporcionales al tamaño de los objetos e inversamente propor-
cionales al cuadrado de la distancia entre ellos.
Por otra parte los dos problemas no son idénticos, ya que la física gravitacional y la trans-
ferencia de energía luminosa son diferentes. Por ejemplo, los algoritmos de los N cuerpos
comienzan con n partículas que van siendo reunidas en grandes grupos. Sin embargo, el
algoritmo de radiosidad comienza con un número reducido de grandes patches, que son sub-
divididos en elementos más pequeños.
Otra gran diferencia es que, mientras el problema de los N cuerpos se basa en una
ecuación diferencial, resolver el problema de la radiosidad requiere dar solución a una
ecuación integral. Sin embargo, se ha demostrado que se puede resolver el problema de la
radiosidad de forma eficiente utilizando técnicas iterativas, y cada iteración es similar a un
paso en el cálculo de la fuerza en el problema de los N cuerpos, aunque en el caso de la radi-
osidad resolver esta iteración de forma eficiente requiere una estructura de datos mucho más
complicada.
Finalmente, el algoritmo de los N cuerpos tiene la ventaja de la superposición lineal,
mediante la cual el potencial debido a un grupo de partículas es la suma de los potenciales
de las partículas individuales. La radiosidad se comporta de forma diferente, puesto que una
superficie puede obstaculizar el transporte de energía entre dos patches, lo que hace que el
sistema sea no lineal. De esta forma el cálculo de la oclusión introduce un coste computacio-
nal adicional en el algoritmo de radiosidad.
A pesar de estas diferencias, los aspectos comunes de ambos problemas hacen que se
puedan aplicar las ideas generales de los algoritmos de agrupamiento para los N cuerpos al
problema del factor de forma en el cálculo de la radiosidad [HS90][Han91].
Desde el punto de vista físico el algoritmo jerárquico de radiosidad se basa en el hecho
de que los pequeños detalles no tienen ninguna influencia cuando nos encontramos muy dis-
tantes de los mismos. Por ejemplo, tomemos la escena de la Figura 4.1, donde se muestra una
O n( ) O n2( )
Radiosidad en Multiprocesadores
114
habitación que contiene una mesa sobre la que se ha puesto un objeto. Aunque la luz reflejada
por la parte superior de la mesa influye sobre la iluminación de la pared, se ve de forma intu-
itiva que el sombreado en la pared no depende de manera significativa de los pequeños
detalles de la iluminación que abandona la parte superior de la mesa. Igualmente, si retiramos
los objetos que se encuentran encima de la mesa la sombra sobre la parte superior de la
misma se ve ligeramente alterada; sin embargo, la sombra sobre la pared no cambia mucho.
Figura 4.1 Influencia de los objetos en la iluminación de la escena.
Representar la contribución sobre la pared de la parte superior de la mesa por un solo
valor promedio da un resultado similar a calcular las contribuciones individuales de los
pequeños elementos que componen la mesa. Sin embargo, calcular la radiosidad en la parte
superior de la mesa con todos los detalles de luces y sombras, no es posible si consideramos
el promedio sobre toda la superficie, siendo necesario calcular la aportación recibida por
todas las pequeñas regiones que la componen.
4.1.2. Radiosidad Jerárquica en dos niveles
El primer algoritmo jerárquico para radiosidad fue desarrollado por Cohen [CW93].
Dicho algoritmo utiliza una jerarquía de dos niveles, y está basado en la distinción entre
fuentes y receptores. Las superficies se consideran subdivididas de forma más gruesa en
patches para representarlas cuando actúan como fuentes de iluminación a otras superficies;
las mismas superficies son subdivididas de forma más fina cuando reciben iluminación,
dando lugar a los elementos. Esta malla de elementos puede ser subdividida de forma recur-
siva hasta que dichos elementos alcancen el tamaño adecuado, obteniéndose la información
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
115
suficiente para la correcta iluminación de las superficies. Normalmente las imágenes son rep-
resentadas utilizando la subdivisión final en elementos de las superficies.
El algoritmo original de radiosidad jerárquica de dos niveles desarrollado por Cohen
sigue estos pasos:
1- Dividir las superficies en m patches y n elementos (m<<n), donde cada patch está
compuesto por un subconjunto de elementos. Los patches actuarán como fuentes o
emisores y los elementos actuarán como receptores. Los patches están indexados
como i o j, y los elementos como q.
2.- Calcular los m x n factores de forma desde cada elemento a cada patch. Una entrada
simple en la matriz de los factores de forma, desde el elemento q al patch j sería .
3.- Calcular los m x m factores de forma entre pares de patches i,j, a partir de los fac-
tores de forma elemento-patch, sumando todos los factores de forma de los elementos
q pertenecientes al patch i, ponderados por la relación de áreas , es decir:
(4.4)
4.- Resolver el sistema de ecuaciones de orden m x m, utilizando el método de Gauss-
Seidel, para obtener las radiosidades de los patches:
(4.5)
5.- Calcular las radiosidades de los elementos. Para ello utilizaremos los factores de
forma calculados en el paso 2 y la radiosidad de los patches calculada en el paso 4,
con estos datos obtenemos la siguiente expresión:
(4.6)
6.- Si la diferencia de radiosidad entre elementos vecinos sobrepasa un determinado valor
se hace necesario subdividir dichos elementos, tras lo cual hay que calcular nuevos
factores de forma patch-a-elemento, pero únicamente para los nuevos elementos. Las
radiosidades de los nuevos elementos pueden ser calculadas directamente a partir de
las radiosidades de los patches originales, sin necesidad de resolver un nuevo sistema
Fqj
Fij
AqAi------
Fij FqjAqAi------
q i∈∑=
Ri Ei ρi RjFijj 1=
m
∑+=
Rq ρq RjFqj .j 1=
m
∑=
Radiosidad en Multiprocesadores
116
de ecuaciones. Este último paso puede ser repetido de forma adaptativa tantas veces
como sea necesario. En la práctica la subdivisión recursiva se consigue construyendo
un árbol cuadrado de elementos, como el que se representa en la Figura 4.2.
Figura 4.2 Estructura utilizada en la jerarquía de dos niveles.
4.1.3. Limitaciones de la jerarquía de dos niveles.
La radiosidad jerárquica de dos niveles realiza el agrupamiento de elementos en patches,
permitiendo calcular un solo factor de forma desde cada patch a cada elemento (en vez de
calcular el factor de forma entre cada elemento). Esto reduce el número de entradas a calcular
en la matriz A (matriz de factores de forma). El método asume que un determinado número
de factores de forma dentro de una misma fila de A están íntimamente relacionados, en par-
ticular, el factor de forma desde un determinado elemento a todos los elementos de un deter-
minado patch es considerado como un valor constante, ponderado por el área de cada uno de
los elementos que forman el patch. Utilizando el principio de reciprocidad se puede consid-
erar de igual forma el factor de forma desde todos los elementos de un determinado patch a
un determinado elemento.
Para entender mejor estas afirmaciones y los problemas de este método vamos a consid-
erar un ejemplo en dos dimensiones (conocido también como flatland), utilizado por primera
vez por Heckbert [Hec91]. En este ejemplo las superficies no son más que líneas en el plano.
Imaginemos entonces un modelo formado por dos líneas perpendiculares con un punto
común, como se muestra en la Figura 4.3 (a). Para este caso se cumple también que, en el
núcleo de la ecuación (1.41), depende del coseno de los ángulos que forman la líneaG x z,( )
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
117
que conecta dos puntos (uno en cada una de las superficies) y la normal en cada uno de ellos,
y es inversamente proporcional a la distancia que hay entre ellos (para el modelo en tres
dimensiones es inversamente proporcional al cuadrado de esta distancia). Por la sencillez de
este modelo no hay oclusiones.
Figura 4.3 (a) Superficies en 2D (segmentos de recta). (b) Matriz A de los factores de forma. (c) Cuadrante superior de la matriz a ampliado.
El valor de G disminuye gradualmente a medida que aumenta la distancia entre las super-
ficies; esto se ve reflejado en los valores de cada una de las entradas de la matriz de factores
de forma representada en la Figura 4.3 (b). Cada una de las superficies (es decir de las líneas)
ha sido subdividida en ocho elementos; como existe una fila y una columna para cada uno de
los elementos de las dos superficies, se obtiene una matriz de 16x16. Las interacciones entre
elementos de una misma superficie son representadas por la submatriz identidad (cuadrantes
superior izquierdo e inferior derecho) y las interacciones entre elementos de diferentes super-
ficies son representadas en las submatrices de los cuadrantes inferior izquierdo y superior
derecho; éste último ha sido ampliado en la Figura 4.3 (c).
12...........141516
1 2. . . . . . . . . . . . . . . . . . . . . . 14 15 16
12
3456
78
9 10 11 12 13 14 15 16
1,9 1,10
2,9 2,10
Pi
Pj
(a)
(b)
(c)
I
I
Pi
Pj
Pi Pj
Pi
Pj
123456789 10 11 12 13 14 15 16
Radiosidad en Multiprocesadores
118
Este ejemplo ha sido intencionadamente dispuesto de tal forma que la relación de
vecindad entre las entradas de la matriz representa la relación física que existe entre las
superficies. Por ejemplo, en el cuadrante superior derecho, la esquina superior derecha rep-
resenta interacciones entre elementos que se encuentran en los extremos más lejanos de
ambas superficies. De acuerdo con el comportamiento de la función G estas entradas tienen
un valor más pequeño, y varían más suavemente que aquellas que se encuentran en la esquina
inferior izquierda del cuadrante, que representan elementos físicamente cercanos. Esto se
ilustra en la Figura 4.4, donde se visualiza el valor del factor de forma para el cuadrante supe-
rior derecho de la matriz.
Figura 4.4 Valor de las entradas en el cuadrante superior derecho del operador A. El valor es pro-porcional al área del círculo.
Si agrupamos las dos primeras columnas en la matriz de factores de forma (se suman los
factores de forma de los elementos de cada fila para las dos columnas agrupadas), estamos
suponiendo que la diferencia del valor del factor de forma para cada par de elementos en cada
una de las filas es muy pequeño. Sin embargo, como se aprecia en la Figura 4.4, ésto sólo es
válido para algunas filas de la matriz (las superiores). Si agrupamos las filas en lugar de agru-
par las columnas podemos llegar a una conclusión análoga.
En el caso de tener un modelo tridimensional complejo, aunque no se puede garantizar
la relación física según la relación de vecindad en la matriz, como en el caso del ejemplo en
2D, el principio sigue siendo el mismo: la reducción en la complejidad de la matriz se con-
sigue agrupando filas o columnas contiguas enteras.
Las limitaciones de este algoritmo de dos niveles son claras.
1- En primer lugar el agrupamiento de elementos en patches es fijo: el mismo agru-
pamiento es aplicado a todas las filas (o columnas) afectadas en la matriz, independ-
ientemente de que los elementos emparejados tengan o no valores similares.
2- Una segunda limitación es que entradas que se encuentren en una misma columna de
la matriz no pueden ser agrupadas entre ellas, debido a la distinción que se realiza
entre fuentes y receptores.
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
119
4.1.4. Jerarquía Multinivel
La idea de la subdivisión jerárquica en múltiples niveles fue generalizada por Hanrahan
[HSA91]. La Figura 4.5 muestra una subdivisión jerárquica básica en la cual dos superficies
han sido subdivididas recursivamente en una jerarquía de elementos (llamados también sub-
patches). La división recursiva de cada superficie da como resultado un árbol cuadrado
donde cada nodo representa una porción de la superficie.
En la jerarquía multinivel la energía puede ser disparada desde cualquier nodo en cual-
quier nivel en la subdivisión jerárquica. Una de estas interacciones es indicada en la Figura
4.5 donde la energía de un grupo de siete subpatches (a) es transportada a un grupo de cuatro
subpatches (b).
Figura 4.5 Interacción entre dos grupos en la jerarquía multinivel.
A pesar de que las interacciones agrupadas pueden ser representadas como bloques con-
stantes en la matriz de factores de forma, resulta una forma poco eficiente para realizar el
almacenamiento. En vez de almacenar de forma explícita la matriz, los métodos de radi-
osidad jerárquica crean una lista de enlaces, cada uno de los cuales describe una interacción
entre dos o más subpatches.
Los enlaces son creados en el proceso de subdivisión, en el mismo orden en que se va
realizando el refinamiento. Cada enlace conecta a un número constante de nodos dentro del
(a)
(b)
Radiosidad en Multiprocesadores
120
árbol, siendo el número de nodos proporcional al número de enlaces. Hanrrahan [Han91]
demostró que para dos patches perpendiculares el número de interacciones era de ,
y que el peor caso se obtenía para dos patches paralelos con un tamaño mucho mayor que la
distancia que los separa, donde el número de interacciones es entonces de orden ;
siendo n el número final de subdivisiones de la escena.
4.1.5. Cálculo de visibilidad acelerado usando árboles BSP.
La partición binaria del espacio (BSP) fue introducida por primera vez por Schumaker
[SGS69], quién observó que, separando diferentes planos, un entorno se podía ordenar para
determinar grupos de objetos que estuviesen en la misma cara de un plano de partición; estos
objetos no podrían ser entonces ocultados por objetos situados en el otro lado del plano. Esta
idea fue extendida posteriormente por Fuchs [FKN80][FAG83] con el fin de construir un
algoritmo eficiente para el ocultamiento de superficies en escenas formadas por poliedros.
Thibault y Naylor [TN87] utilizaron los árboles BSP para representar sólidos y realizar oper-
aciones boleanas.
El método de los árboles BSP sólo es aplicable en escenas formadas por polígonos. Se
basa en el hecho de que los polígonos pueden ser definidos de tal forma que tengan dos caras,
una frontal y otra posterior. Si en la ecuación del plano separador, se sus-
tituye el valor perteneciente a un determinado polígono, podemos obtener uno
de los siguientes resultados:
- Si , el punto se encuentra en la cara frontal o
positiva del plano (a la derecha en el árbol BSP).
- Si , el punto se encuentra en la cara posterior o
negativa del plano (a la izquierda en el árbol BSP).
- Si podemos decir entonces que el punto pertenece al plano.
Dada una escena formada por un grupo de polígonos definidos en un sistema de
coordenadas espaciales, el árbol BSP se puede construir seleccionando un polígono de forma
aleatoria como nodo raíz (root) del árbol BSP. Los restantes polígonos son clasificados
respecto al root en tres grupos: al frente (para los que están delante del raíz), atrás (para los
que están en la cara posterior del raíz), y sobre el polígono (para los que comparten el mismo
O n( )
O n( )
Ax By Cz+ + 0=
x1 y1 z1, ,( )
Ax1 By1 Cz1+ + 0> x1 y1 z1, ,( )
Ax1 By1 Cz1+ + 0< x1 y1 z1, ,( )
Ax1 By1 Cz1+ + 0=
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
121
plano del raíz). Si un determinado polígono tiene vértices tanto en la cara anterior del plano
como en la cara posterior del mismo, entonces debe ser subdividido en dos nuevos polígonos
por el plano que forma el polígono root.
Este procedimiento de construcción del árbol BSP se aplica recursivamente a los
polígonos situados a cada lado del plano de corte, hasta que finalmente quede un solo
polígono en ambos lados.
Para poder entender mejor como trabaja este algoritmo supongamos que tenemos una
escena como la que se muestra en la Figura 4.6(a), donde el signo + indica cual es la cara
anterior de cada polígono.
Figura 4.6 Construcción del árbol BSP.
Seleccionamos inicialmente al polígono E como nodo raíz del árbol BSP, y dividimos el
espacio tridimensional utilizando el plano que pasa por el polígono. De los polígonos que se
encuentran en la cara anterior a este plano seleccionamos el G para volver a realizar la par-
tición de este subespacio, mientras que de los polígonos que se encuentran en la cara poste-
rior seleccionamos el B. Estos nuevos polígonos seleccionados se colocan en el nodo derecho
del árbol (el que se encuentra en la cara anterior) y en el nodo izquierdo (el que se encuentra
en la cara posterior). El procedimiento continúa recursivamente hasta obtener un árbol como
el que se representa en la Figura 4.6(b).
Cuando aplicamos esta técnica para acelerar el cálculo de la visibilidad en el algoritmo
de radiosidad, el árbol BSP es construido al inicio del algoritmo antes de comenzar el cálculo
de radiosidad.
E
C I
FHDA
B G
+
+
+
+
++
+
++
A
IF
G
HED
C
B
+
+
+
+
(a) (b)
Vista superior
Radiosidad en Multiprocesadores
122
Dado una pareja de patches que actúan de emisor y receptor, respectivamente, el BSP es
usado para ordenar un recorrido exhaustivo por la lista de patches de la escena, verificar para
cada patch si ocluye la línea de visión entre patches, pero evitando esta comprobación para
aquellos patches que trivialmente (por detrás del emisor o del receptor) no pueden generar
oclusiones.
Para ello se parte del patch emisor, y se hace un recorrido exhaustivo en profundidad del
árbol, respetando, siempre que exista la posibilidad, la regla de bifurcar sólo hacia la derecha.
Si no ocurre ninguna oclusión el recorrido del árbol termina en el patch destino. En la Figura
4.6(b) se muestra como se debe recorrer el árbol en nuestro ejemplo, al calcular la visibilidad
entre B e I.
La principal ventaja de aplicar la técnica del árbol BSP es que la lista de patches que
deben ser analizados, al comprobar la visibilidad entre dos patches cualesquiera, estará com-
puesta exclusivamente por patches que se encuentren espacialmente entre los dos patches
analizados; evitando de esta forma los patches que, por no encontrarse entre ellos, nunca pro-
vocarían una oclusión.
4.1.6. Algoritmo de radiosidad jerárquica.
A continuación se expone una posible implementación secuencial del algoritmo de radi-
osidad jerárquica. Para poder entender mejor como trabaja cada uno de los pasos del
algoritmo, lo hemos acompañado con un ejemplo de su aplicación sobre una escena simple,
mostrada en la Figura 4.7(a) y compuesta por sólo 3 patches. Para ganar en claridad hemos
denominado patch receptor al patch cuya radiosidad esta siendo calculada, y hemos denom-
inado patch fuente a todos aquellos patches que contribuyen a la radiosidad del patch recep-
tor. La Figura 4.9 muestra el pseudocódigo para este algoritmo, el cual podemos dividir en
los siguientes pasos:
1 • Inicialmente se crea un árbol BSP a partir de la descripción de la escena. En nuestro
ejemplo, la Figura 4.7(b) muestra el árbol BSP correspondiente a la escena represen-
tada en la Figura 4.7(a).
2 • Al tiempo que se construye el árbol BSP, para cada uno de los patches iniciales se
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
123
elabora también su lista de enlaces o interacciones. Cada una de las entradas de la lista
representa una interacción, y apunta hacia otro patch inicial, potencialmente visible
desde el patch que está siendo analizado; al tiempo de crear el enlace, se calcula el
factor de forma entre ambos. En el ejemplo, la Figura 4.8(a) muestra el árbol BSP con
la lista de iteraciones iniciales para la escena de la Figura 4.7(a).
Figura 4.7 (a) Escena de ejemplo, (b) árbol BSP para esta escena.
Figura 4.8 (a) Interacciones iniciales, (b) refinamiento para uno de los enlaces.
3 • En este paso se inicia un proceso iterativo para el cálculo de la radiosidad. Para
cada uno de los patches en el árbol BSP se calcula la radiosidad debida a cada uno de
los enlaces de su lista de interacciones. Si el aporte de radiosidad del enlace es más
grande que un determinado valor ( ), se desencadena un procedimiento de refi-
namiento, que comienza con la subdivisión del patch fuente o del patch destino
involucrados en el enlace; llamaremos subpatches a estos nuevos patches. Como cri-
1
32
TOP VIEW
2
1 3
(a) (b)
1
2
32
3
3
32
2
(a) (b)
BεFε
Radiosidad en Multiprocesadores
124
terio general el patch seleccionado será aquél que tenga una mayor área, y el proceso
de refinamiento funciona de la siguiente forma:
a) El patch es subdividido formando un árbol cuadrado, y cada uno de los hijos
hereda del padre el valor de radiosidad.
b) Si el patch subdividido es el patch fuente, es sustituido por sus hijos en la lista
de interacciones del patch receptor, y continúa el cálculo de la radiosidad para
el patch receptor.
c) Si el patch subdividido es el patch receptor, cada uno de los nuevos hijos hace
una copia en su lista de interacciones del patch fuente, y se borra el enlace de
la lista de interacciones del padre.
De esta forma se continúa el cálculo de la radiosidad atravesando los árboles cuad-
rados en profundidad, pudiéndose realizar nuevas subdivisiones de manera recursiva.
En el ejemplo de la Figura 4.8(b), se muestra el proceso de refinamiento para un
enlace entre los patches 2 y 3, siendo 2 el patch receptor.
Cuando un patch receptor ha terminado un proceso de refinamiento se atraviesan
los árboles cuadrados de abajo hacia arriba, y cada nodo calcula la radiosidad debida
al aporte de cada uno de los hijos, ponderada por el área del mismo. De esta forma se
actualizan los valores de radiosidad en cada nivel del árbol para un determinado
patch.
4 • Una vez que todos los patches y subpatches en la escena han procesado todas las
interacciones de sus respectivas listas, se obtiene el total de radiosidad de toda la
escena sumando la radiosidad de los patches y ponderándola por el área de los mis-
mos. Se comprueba la convergencia comparando este valor con el de la iteración ante-
rior, si el nivel de convergencia deseado no se ha alcanzado aun, el algoritmo
continúa, debiendo retornar al paso 3.
5 • Una vez que la solución converge, la imagen es mostrada (anexo II) utilizando la
radiosidad en los vértices de los subpatches de las ramas.
Debe destacarse que el proceso de refinamiento garantiza que cada lista de interacciones
del patch contenga el patch más grande cuya interacción no causa subdivisión. Además difer-
entes patches pueden interactuar con diferentes niveles del mismo árbol cuadrado; esto sig-
nifica que un determinado patch que interactúa con un determinado nodo de un árbol
cuadrado no necesita conocer nada sobre los hijos creados a partir de ese nodo, a menos que
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
125
la radiosidad resultante sobrepase el error.
FOREACH (patch )Inserta en el árbol BSP
FOREACH ( )Calcula yCrea enlace( i - j )
ENDFORENDFOR
while ( convergencia)FOREACH (patch
Process_ray ( ): FOREACH (Interaction )ifDivide ( or ) y Calcula F (enlace nuevo)
Calcula visibilidad para nuevos enlaces ( )
if ( )FOREACH(subpatch )Process_rays ( )
ENDFORelse
while ( no sea el nodo raizi= indice_del_padre_de (i)
endwhileENDFOR
ENDFORendwhile
Figura 4.9 Algoritmo de radiosidad jerárquica implementado.
Este algoritmo se probó sobre una arquitectura Silicon Graphics. Este tipo de arquitectura
brinda grandes ventajas para el desarrollo de aplicaciones gráficas, pues en primer lugar, per-
mite la utilización de un hardware específico para la realización del Z buffer necesario para
la renderización (ANEXO II). Además podemos disponer de las ventajas que proporciona el
uso de las bibliotecas de Open GL e Iris GL, para la programación en 3D. En la Tabla 4.1 se
muestran los tiempos de ejecución para las imágenes de prueba. La primera (IMAG 1) es una
variante de la imagen utilizada por Hanrrahan [Han91], y la segunda es una variante de
IMAG 1 en la que se ha aumentado la complejidad replicando objetos en la misma. La Figura
4.10(a) muestra los patches de entrada después de la construcción del árbol BSP, y en la Fig-
ura 4.10(b) muestra las subdivisiones de la escena resultante una vez finalizado el algoritmo.
P i( ) escena∈P i( )
P j( ) BSPtree, j i≠( )∈Fji Fij
P i( ) BSPTree∈P k( ) j I Pi( )∈
FijBj BεFε AND Ai Aj,( ) Aε>>( )Ai Aj
R i( ) ρiVIS i j,( )FijR j( ) R parent i( )( )+=
P i( ) leaft_cuad_tree≠P k( ) P i( )∈
P k( )
R i( ) R i( ) E i( )+=
R i( )14--- R l( )
l 4hijosde i( )=∑=
Radiosidad en Multiprocesadores
126
La representación de la escena se muestra en el anexo II figura AII.10.
Figura 4.10 (a) Subdivisión inicial de la escena, (b) subdivisión después de haber aplicado el algoritmo.
4.2. Radiosidad Jerárquica en Multiprocesadores.
A pesar de la reducción en la complejidad computacional introducida por el algoritmo
jerárquico, el número final de patches en la escena sigue siendo aun muy grande, por lo que
el tiempo necesario para calcular los factores de forma y los requerimientos de memoria para
almacenarlos son también grandes. Obtener tiempos de renderización prácticos sólo es
posible con el uso de las técnicas de procesamiento paralelo.
4.2.1. Trabajos previos.
En la literatura se pueden encontrar varios trabajos sobre implementaciones paralelas del
método jerárquico para el cálculo de radiosidad, destacándose, por los buenos resultados
obtenidos, las implementaciones realizadas sobre máquinas de memoria compartida. Sin
Imagen NºIteraciones
Nº Patches
NºElementos
Nº Interacciones
Tiempo de ejecución
IMAG 1 6 371 22094 291780 420.49IMAG 2 6 1200 45541 640702 2412.5
Tabla 4.1 Resultados de la ejecución del algoritmo secuencial sobre una SGI Indigo 2.
(a) (b)
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
127
embargo, los resultados obtenidos para máquinas de memoria distribuida son en general dis-
cretos.
Singh et. al. [SGL94] propuso una implementación que realizaba la paralelización sobre
las interacciones, utilizando un mecanismo de distribución dinámica de tareas para mantener
el balance de carga. El artículo presenta muy buenos speedup para la implementación de este
algoritmo en máquinas de memoria compartida (Dash y Challenge). Sin embargo, su imple-
mentación en máquinas de memorias distribuida (iPSC/860) solamente se obtuvo un speedup
de 11 para 32 procesadores, debido al gran número de comunicaciones requeridas para man-
tener la redistribución de tareas; y al overhead de memoria introducido por la réplica del
árbol BSP y los mecanismos de coherencia.
Funkhouser [Fun96a] presentó un grupo de algoritmos iterativos para realizar la paralel-
ización a nivel de patches, utilizando una configuración maestro-esclavo sobre un grupo de
estaciones de trabajo. Se obtuvieron aceleraciones razonables hasta 8 procesadores para
escenas muy complejas, pero la escalabilidad del algoritmo se ve grandemente compro-
metida por el cuello de botella que introducen las comunicaciones en el maestro. Zareski
[Zar95] también implementó una versión paralela para un grupo de estaciones de trabajo, uti-
lizando una configuración maestro-esclavo, pero la paralelización se realizaba en el nivel de
interacciones, por lo que el overhead producido por las comunicaciones y los cuellos de
botella en el procesador que actúa como maestro (host) afectaban fuertemente la eficiencia
del algoritmo.
Finalmente, Bohn y Garmann [BG95] realizaron una implementación del algoritmo
jerárquico sobre el Connection Machine 5. Este algoritmo divide el problema en tareas inde-
pendientes, las cuales son consideradas como nodos de un grafo. El excesivo coste de las
comunicaciones entre los nodos del grafo para mantener la coherencia de los datos distribui-
dos en las memorias de los procesadores (los cuales son movidos temporalmente, y no copi-
ados cuando son necesitados en un determinado procesador) hace que la aceleración del
algoritmo sea bastante baja, con un speedup de 8.4 para 64 procesadores.
4.2.2. Algoritmo paralelo.
Si consideramos la descripción del algoritmo secuencial de radiosidad jerárquica, es fácil
Radiosidad en Multiprocesadores
128
ver que este problema presenta una distribución final de subpatches muy irregular, e impre-
decible en tiempo de compilación. En consecuencia la paralelización de este algoritmo no
puede abordarse con las distribuciones habitualmente empleadas para problemas regulares,
y requiere considerar cuidadosamente la granularidad empleada en el algoritmo. Para la radi-
osidad jerárquica existen tres niveles posibles de paralelismo:
1 ) En un nivel más grueso, el paralelismo es posible sobre las superficies (polígonos de
entrada) de la escena. Sin embargo, el gran tamaño de estos polígonos, unido a la
gran irregularidad e imprevisible distribución sobre los procesadores de los
polígonos resultantes después del refinamiento, hace extremadamente difícil obtener
un buen balance de carga en este nivel.
2 ) Un nivel intermedio de paralelismo es posible sobre los patches en los que las super-
ficies son inicialmente subdivididas después de la creación del árbol BSP, pudién-
dose obtener un aceptable balance de carga en este nivel.
3 ) Finalmente, es posible aplicar un paralelismo de grano fino sobre las interacciones
calculadas para cada patch.
Como los árboles cuaternarios de los patches son creados durante el proceso de cálculo,
todos los niveles de paralelismo descritos anteriormente implican comunicaciones y sin-
cronizaciones entre los procesadores. La eficiencia del algoritmo paralelo depende en gran
medida de la minimización del número de comunicaciones requeridas.
Nuestra implementación del algoritmo jerárquico de radiosidad paraleliza el algoritmo
en el segundo nivel, sobre el grupo de patches de la escena (patches en los cuales son divid-
idas las superficies antes de comenzar el proceso iterativo), y utiliza un modelo de tipo
SPMD. Este algoritmo (Figura 4.11) utiliza un planificador dinámico centralizado para man-
tener el balance de carga y se puede dividir en los siguientes pasos:
1 ) Cada procesador genera su propia copia local de todo el árbol BSP.
2 ) La lista de patches es ordenada por el planificador en orden decreciente del área.
3 ) Durante la primera iteración el planificador asigna por demanda patches a los proc-
esadores. Cuando un patch es asignado a un procesador, su radiosidad es totalmente cal-
culada; las subdivisiones requeridas en el proceso de refinamiento son almacenadas
localmente.
4 ) Una vez que todos los patches han sido asignados, y su radiosidad calculada, los
procesadores entran en una fase de comunicación global en la que los valores de radi-
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
129
osidad y las estructuras de los árboles cuaternarios son actualizadas.
5 ) A partir de aquí la segunda y las siguientes iteraciones utilizarán siempre la misma
asignación con que finalizó la primera iteración. En cada iteración cada procesador
recalcula la radiosidad para todos los patches que le han sido asignados.
6 ) Al final de cada iteración los valores de la radiosidad total son actualizados en una
fase de comunicación global, y la convergencia es verificada. Si no se ha alcanzado aún
la convergencia, el algoritmo regresa al paso 5.
FOREACH (patch )Inserta en el árbol BSP
FOREACH ( )Calcula yCrea enlace( i - j )
ENDFORENDFOR
FORALL Processorwhile ( convergencia)
FOREACH (patchProcess_ray ( ): FOREACH (Interaction )
ifDivide ( or ) y Calcula F. enlaces nuevosCalcula visibilidad para nuevos enlaces ( )
if ( )FOREACH(subpatch )Process_rays ( )
ENDFORelse
while ( no sea el nodo raiz)i= indice_del_padre_de (i)
endwhileENDFOR
ENDFORProceso de comunicación Global()
endwhileENDFORALL
Figura 4.11 Algoritmo paralelo para el método de radiosidad jerárquica.
Tanto el valor de radiosidad de cada subpatch como el árbol jerárquico para cada patch
son actualizados en dos comunicaciones:
1 ) Para cada uno de los subpatches fuentes que se encuentran en la Jerarquía de árboles
locales de un determinado procesador, se realiza una petición al procesador para el
P i( ) escena∈P i( )
P j( ) BSPtree, j i≠( )∈Fji Fij
P i( ) BSPTree∈P k( ) j I Pi( )∈
FijBj BεFε AND Ai Aj,( ) Aε>>( )Ai Aj
R i( ) ρiVIS i j,( )FijR j( ) R parent i( )( )+=
P i( ) leaft_cuad_tree≠P k( ) P i( )∈
P k( )
R i( ) R i( ) E i( )+=
R i( )14--- R l( )
l 4hijosde i( )=∑=
Radiosidad en Multiprocesadores
130
cual el padre de este subpatch es un patch receptor, solicitando el valor actual de la
radiosidad del subpatch. Si el patch receptor aun no ha sido subdividido, en el proc-
esador que lo posee hasta el nivel requerido, el mensaje inicia el refinamiento del
patch en dicho procesador hasta que el nivel requerido sea alcanzado.
2 ) El valor actual de radiosidad es transmitido.
Los patches son identificados con un único identificador en el árbol BSP, lo que permite
establecer un identificador global para cada subpatch de cada patch de la escena, mediante
la siguiente función de indexación:
donde es el índice del padre del subpatch, es el nivel de profundidad en el árbol del
ancestro inmediato del subpatch, y son las ramas (0 a 3) ocupadas por el subpatch en el
último árbol cuadrado.
A continuación describiremos el impacto que tienen sobre el algoritmo los problemas de
coherencia, localidad de datos y balance de carga.
4.2.3. Coherencia.
En nuestro algoritmo la coherencia es mantenida con una granularidad temporal gruesa,
dado que los datos son actualizados solo al final de cada iteración. Esencialmente, ésto sig-
nifica que, mientras la ejecución en un solo procesador utiliza una iteración de Gauss Seidel,
la ejecución para varios procesadores emplea una iteración de Gauss-Seidel modificada,
pues usa durante cada iteración algunos valores de radiosidad no actualizados. En con-
secuencia la convergencia del algoritmo paralelo es algo más lenta; sin embargo, el impacto
de las iteraciones adicionales sobre el tiempo total de cálculo es despreciable. Existen dos
razones para ello: en primer lugar, el número de iteraciones extras necesarias no es muy
grande (menor o igual que 2 en todas las pruebas realizadas). En segundo lugar, como cada
iteración a partir de la segunda utiliza los factores de forma ya calculados en la primera, su
contribución al tiempo total es muy pequeña. Este hecho se puede apreciar en la tabla 4.2,
que muestra, para las dos escenas de prueba, el tiempo de cálculo total y los tiempos parciales
indice_subpatch 4l 1+ 1–3-------------------- 4 Ip 4l 1–
3-------------– ⋅+ hp+=
PI l
hp
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
131
para cada iteración medidos en una estación de trabajo monoprocesadora SGI Indigo-2.
4.2.4. Localidad de Datos.
La réplica del árbol BSP garantiza la localidad en cada procesador de todos los datos nec-
esarios en el cálculo de visibilidad, necesario en la determinación del factor de forma; de esta
forma no se necesitan comunicaciones hasta el final de una iteración
La réplica parcial de la jerarquía de los árboles cuadrados también garantiza la localidad,
evitando comunicaciones y sincronizaciones de control, requeridas si se mantiene una sola
copia de los árboles refinados para cada patch. Esta réplica también introduce overhead de
memoria, pero su impacto, como se verá posteriormente, es relativamente pequeño.
4.2.5. Balance de carga.
Si utilizamos un paralelismo de grano medio, lograr un buen balance de carga para este
algoritmo sin degradar la eficiencia total no es trivial, debido a dos razones:
1 • Distribución irregular de las computaciones: Como ya se mencionó anteriormente,
la jerarquía de árboles resultante es muy irregular, y además no se puede predecir en
tiempo de compilación. Esto significa que distribuciones estáticas de datos como
BLOCK o CYCLIC no son capaces de garantizar un buen balance de carga.
2 • Distribución irregular del tiempo de cálculo entre iteraciones: Para otros problemas
irregulares, como el de los N cuerpos o el “Fast Multipole” [SHT95], se pueden
obtener buenos balance de carga utilizando un método basado en una estimación de
lo ocurrido en las iteraciones previas. Desafortunadamente el método de radiosidad
jerárquica converge con pocas iteraciones, y la mayor parte de la carga computacio-
nal está concentrada en la primera iteración. Por lo tanto, es en la primera iteración
Imagen 1ª Iter. 2ª Iter. 3ª Iter. 4ª Iter. 5ª Iter. 6ª Iter. Total
Imag1 247.97 99.9 44.39 16.9 7.8 3.58 420.49
Imag2 1802.7 449.75 100.23 36.5 15.9 7.5 2412.5
Tabla 4.2 Tiempo de Ejecución para las distintas Iteraciones de Algoritmo. Computador SGI Indigo 2.
Radiosidad en Multiprocesadores
132
donde el balance de carga es más crítico, y el algoritmo debe dar una buena solución
desde el principio.
Nuestra solución al problema del balance de carga es adoptar una solución mixta (a la
cual hemos denominado DAD, Dynamic Area Distribution). En ella se utiliza un planificador
con una heurística dinámica guiada para la primera iteración, asignando patches por
demanda; la distribución de patches generada en esta primera iteración es entonces utilizada
de forma estática por el resto de las iteraciones. La heurística seleccionada para nuestro
algoritmo es, simplemente, ordenar los patches por área decreciente; la razón es que el área
es uno de los principales criterios para la subdivisión durante la fase de refinamiento, siendo
usualmente los patches más grandes los que requieren mayores tiempos de computación.
Esta heurística combinada con una asignación por demanda, garantiza una primera dis-
tribución equilibrada de los patches más costosos, mientras que los patches más pequeños
son utilizados para un ajuste fino del balance de la carga.
4.2.6. Evaluación.
Pat Hanrahan en su trabajo [HSA91] plantea que la complejidad computacional del
algoritmo jerárquico secuencial es, en el peor de los casos, , siendo el número de
subdivisiones finales de la escena. Sin embargo, esta expresión no considera el coste de cal-
cular la función de visibilidad; por ello hemos tratado de representar la complejidad comput-
acional del algoritmo paralelo en función del número de patches iniciales de la escena.
La complejidad computacional será una función que depende del tamaño de la escena
(número de patches P), de la exactitud deseada en la solución, de la precisión deseada en
el refinamiento (error en el aporte de energía de cada enlace y error en la subdivisión del
patch) y del número de procesadores utilizados.
La complejidad computacional del algoritmo se puede expresar como:
(4.7)
donde:
IF corresponde al coste computacional de la fase de creación del árbol BSP a partir de la
descripción de la escena, el cálculo de los factores de forma y la creación de los enlaces ini-
ciales para cada par de patches. La complejidad computacional asociada a este término
O n( ) n
Θ
O IF HR+( )
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
133
es .
HR representa el coste del núcleo fundamental del algoritmo de radiosidad, y se puede
expresar por:
, (4.8)
donde:
representa el subconjunto de datos que debe calcular cada procesador según la dis-
tribución que se esté utilizando por ejemplo en el caso de la distribución por bloques o cíclica
este subconjunto será .
representa el total de subpatches que pertenecen a cada uno de los patches iniciales,
asignados a cada procesador.
es el coste del bucle más interno, cuyo número de iteraciones es imposible de pre-
decir, estando íntimamente ligado a la precisión deseada en el refinamiento y, que hace que
varíe el tiempo de ejecución del algoritmo. Su complejidad se puede representar por:
, donde es el error máximo permitido en el pro-
ceso de refinamiento, y el área mínima permitida para un elemento después del proceso
de subdivisión. El término es el coste de realizar la subdivisión en un determinado
nivel, calcular el factor de forma y el coste de determinar la función de visibilidad
, la constante 1,2 representa la aceleración que se produce al utilizar el árbol BSP
[Han91]. Finalmente el término A es el coste de actualizar la radiosidad de los niveles infe-
riores a los superiores una vez que se termina el refinamiento; este tiempo es muy pequeño
con lo cual se puede despreciar.
Para una determinada precisión la complejidad computacional total se puede expresar
como:
Dado que el número de subpatches varía en el tiempo de ejecución del algoritmo, toma
diferentes valores aunque se utilicen distribuciones (por ejemplo CYCLIC o BLOCK) que
garanticen un reparto igual del número de patches iniciales en cada procesador. Esto hace
que sea imprescindible el uso de distribuciones dinámicas, que mantengan un buen balance
de carga.
IF O P P 1–( )⋅( )=
HR O Θ Λ BFRA⋅ ⋅( )=
Λ
PN---- κ+
κ
BFRA
BFRA O 1BεFε Aε⋅---------------------- BFR A+( ) = BεFε
Aε
BFR
O P 11 2,---------⋅
O P P 1–( ) Λ P1 2,---------⋅+
.
Λ
Radiosidad en Multiprocesadores
134
Coste de Memoria
Es difícil establecer para este algoritmo una expresión que represente el consumo de
memoria para cada procesador. Existen dos razones fundamentales:
- Es imposible predecir que forma tendrá la estructura jerárquica hasta tanto no se
terminen todas las computaciones.
- Además de replicar toda la información de los patches en las memorias locales de
los procesadores, se replican algunos subpatches tanto en los procesadores donde
actúan como receptores, como en los procesadores donde actúan como emisores.
Trataremos entonces de definir una expresión para el consumo global de memoria, en
función del número final de subpatches al finalizar el proceso de cómputo. Para ello uti-
lizaremos la misma notación que empleamos, en el capítulo anterior, para la estimación de
los requerimientos de memoria en el algoritmo progresivo. En esta notación representa
la cantidad de memoria necesaria para almacenar toda la estructura de datos correspondiente
al patch, representa la cantidad de memoria necesaria para almacenar la estructura de
datos correspondiente a los subpatches (elementos) de la escena, representa la cantidad
de memoria necesaria para almacenar la estructura (enlace) que representa la interacción
entre dos subpatches cualesquiera de la escena, y representa el número de procesadores
utilizados, mientras el término representa el número total de subpatches que,
perteneciendo a un patch asignado a un determinado procesador, han sido refinado por cual-
quier otro.
Bajo estas premisas, el consumo total de memoria se puede representar por la siguiente
expresión:
(4.9)
Esta expresión predice que el consumo total de memoria aumenta con el número de proc-
esadores, y que esto se debe principalmente a la réplica del árbol BSP.
Sin embargo, una de las características fundamentales del algoritmo jerárquico es que
comienza el proceso de refinamiento con unos pocos patches de gran tamaño, que serán pos-
teriormente subdivididos; esto hace que la réplica de los patches iniciales no eleve demasiado
el overhead total de memoria.
La réplica parcial de los subpatches (último término en la expresión anterior), aumenta
e( )
Mp
Me
Ml
N
σ
N Mp P Me Ml e σ Me Ml⋅ ⋅+⋅ ⋅+⋅ ⋅
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
135
también el consumo de memoria del algoritmo paralelo; sin embargo su impacto es relativa-
mente pequeño, puesto que:
1 ) Cada procesador subdivide un determinado patch fuente p solo hasta el nivel
requerido por el refinamiento de los patches receptores asignados a el. Este nivel de refi-
namiento es normalmente menor que toda la expansión requerida al evaluar a p como un
patch receptor.
2 ) La cantidad de réplica crece muy lentamente con el número de procesadores, dis-
minuyendo el porcentaje por procesador.
4.2.7. Resultados Experimentales.
En esta sección analizaremos experimentalmente el comportamiento de los algoritmos
desarrollados en este capítulo sobre un multiprocesador de memoria distribuida Cray 3TD
con 32 nodos. Las simulaciones se realizaron sobre grupos de 1,2,4,8,12,16,20,24,28,32
procesadores y se emplearon dos escenas con diferentes complejidades:
1 • La primera, IMAG 1, está formada por 371 patches, los cuales quedan subdi-
vididos en 22094 subpatches al finalizar el algoritmo.
2 • La segunda, IMAG 2, está formada por 1200 patches, los cuales quedan sub-
divididos en 45541 subpatches.
Para la ejecución secuencial de las simulaciones se utilizó el propio código paralelo, al
cual se le eliminaron en la fase de compilación todas las sentencias afectadas por las comu-
nicaciones. De todas formas, las diferencias de tiempos de ejecución entre el programa
secuencial y el paralelo sobre un nodo son inapreciables (inferiores al 1%). Se probó además
que el overhead introducido por las comunicaciones no era superior al 0.001% del tiempo
total de procesamiento, para el peor de los casos (32 procesadores).
La validación del código paralelo se realizó comparando los resultados obtenidos en el
código secuencial con los obtenidos con 1,2,4,8,12,16,20,24,28,32 procesadores, siendo las
imágenes obtenidas en todos los casos totalmente idénticas.
La Tabla 4.3 muestra los tiempos empleados por las dos implementaciones realizadas del
algoritmo jerárquico utilizando IMAG1. En la primera columna se muestran los resultados
Radiosidad en Multiprocesadores
136
obtenidos utilizando una distribución aleatoria de los patches (DRD). En la segunda
columna, se ha utilizado la distribución que implementa una heurística que garantiza un
mejor balance de la carga computacional basándose en el área de los patches (distribución
DAD). En la Figura 4.12 mostramos la aceleración o speedup de los algoritmos.
De la Tabla 4.3 y de la Figura 4.12 podemos extraer los siguientes resultados. Se produce
una degradación significativa en la eficiencia para más de 20 procesadores; esto se debe prin-
cipalmente a que el desbalance de carga se hace más significativo a medida que aumenta el
número de procesadores si mantenemos constante el tamaño del problema (complejidad de
la imagen). Se denota buena linealidad en las curvas hasta 8 procesadores, degradándose para
un mayor número de procesadores debido a lo que comentamos con anterioridad.
Se observa que el uso de la distribución DAD da como resultado una cierta mejoría en la
eficiencia frente a la distribución DRD. Sin embargo, aunque la heurística seguida garantiza
una mejor distribución de la carga, a partir de un determinado número de procesadores es
imposible corregir el desbalance, debido a que las dimensiones del problema no son lo sufi-
cientemente grandes para permitir que el algoritmo trabaje adecuadamente.
Proc. DRD DAD
1 172.3 172.32 86.58 87.814 45.94 45.348 24.54 22.08
12 18.13 16.8516 15.24 13.2520 14.12 12.4724 13.35 12.1528 13.15 11.5132 12.8 10.57
Tabla 4.3 Tiempos de ejecución para la imagen IMAG 1.
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
137
Figura 4.12 Aceleración del algoritmo paralelo (IMG1)
En la Tabla 4.4 se muestran los tiempos empleados por los algoritmos para IMG2 y la
Figura 4.13 el speedup obtenido.
Proc. DRD DAD
1 1146.05 1146.052 575.9 575.94 286.51 290.878 154.87 143.25
12 108.11 97.1216 92.42 74.9020 81.28 63.3124 75.39 59.3828 64.38 52.1832 60.22 49.61
Tabla 4.4 Tiempos de ejecución para la imagen IMAG 2.
Radiosidad en Multiprocesadores
138
Figura 4.13 Aceleración del algoritmo paralelo (IMG2).
Si se comparan estos resultados con los obtenidos para IMAG1 se observa una mejora
sustancial en la eficiencia. Podemos concluir entonces que, para ambas distribuciones se
obtiene un aumento en la eficiencia a medida que aumenta la complejidad de la escena, y esto
nos permite afirmar que nuestro algoritmo muestra una buena escalabilidad. La razón de este
incremento radica en que al tener una cantidad mayor de patches al inicio, existe una mayor
posibilidad de corregir posibles desbalances en la carga aparecidos al inicio de la distribución
de los patches, debido a la existencia en la escena de patches de gran tamaño que reciben
bajos valores de radiosidad. Es razonable esperar mejoras en el speedup para escenas aun
mayores.
Se debe resaltar además cómo la mejora producida al utilizar la distribución DAD es
mucho más significativa para IMAG2 que para IMAG1. Podemos concluir entonces que, a
medida que aumenta el tamaño del problema, la distribución DAD permite corregir el des-
balance mucho mejor que una distribución aleatoria, y por tanto justifica el uso de la heurís-
tica de guía basada en el área.
Por último se analizó la eficiencia del algoritmo para distribuciones estáticas por bloques
y cíclica, pero como era de esperar los resultados obtenidos para el mejor de los casos
(speedup de 9 para 32 procesadores) fueron pobres.
Capítulo 4: Método Jerárquico de Solución de la Radiosidad
139
Respecto al consumo de memoria, la Figura 4.14 y la Figura 4.15 muestran el overhead
global (suma del overhead de todos los procesadores) introducido por nuestro algoritmo,
comparado con el algoritmo secuencial.
Figura 4.14 Overhead de memoria introducido por el algoritmo paralelo (IMG1).
Figura 4.15 Overhead de memoria introducido por el algoritmo paralelo (IMG2).
Radiosidad en Multiprocesadores
140
Cada figura muestra el overhead total y distingue la contribución debida a la réplica del
árbol BSP y la debida a la réplica de algunos nodos de los árboles cuadrados. Como se puede
apreciar, esta última contribución nunca es mayor que el 50% del overhead total, y aumenta
lentamente con el número de procesadores.
Partiendo de estos resultados podemos concluir que, si el overhead de memoria es acept-
able, las arquitecturas de memoria distribuida pueden resolver de forma eficiente el problema
de la radiosidad jerárquica. Por supuesto la réplica del árbol BSP en todos los procesadores
es el principal problema para escenas muy complejas. Es necesario entonces investigar nue-
vas representaciones que permitan una utilización más eficiente de los sistemas de memoria
virtual.
4.3. Conclusiones.
En este capítulo se ha presentado un estudio del método jerárquico para la solución del
sistema de ecuaciones del método de radiosidad, realizándose la implementación secuencial
del mismo.
Tras hacer un estudio de las implementaciones existentes en la bibliografía para arquitec-
turas paralelas, se presenta un nuevo algoritmo para máquinas multiprocesadoras de memo-
ria distribuida, con una distribución de datos que usa un esquema mixto dinámico/estático
para lograr un buen balanceo de carga desde la primera iteración.
Los resultados experimentales dan buenas aceleraciones, y muestran una buena escal-
abilidad del algoritmo. Los resultados nos permiten afirmar, pues, que es posible solucionar
eficientemente el problema de la radiosidad jerárquica en arquitecturas de memoria distri-
buida, cosa que, hasta ahora, sólo se había logrado para máquinas de memoria compartida.
Conclusiones: Conclusiones y Principales Aportaciones.
141
CONCLUSIONES Y PRINCIPALES APORTACIONES
En esta última década los gráficos tridimensionales generados por computador han pas-
ado de los laboratorios de investigación a formar parte de nuestra vida cotidiana. Actual-
mente es común encontrar imágenes realistas generadas por computador en películas y en la
televisión; la síntesis de imágenes es también muy utilizada en aplicaciones científica e ing-
eniería. Con nuestro trabajo, hemos realizado un estudio sobre uno de los principales méto-
dos (el método de radiosidad) utilizados en el cálculo de la iluminación global en la síntesis
de imágenes fotorrealistas. Se han implementado tres algoritmos para el cálculo de los fac-
tores de forma, y se han desarrollado algoritmos paralelos que realizan el cálculo de radi-
osidad utilizando el método progresivo y el método jerárquico.
La contribución de este estudio exhautivo del método de radiosidad, y de la aplicación
de las técnicas de procesamiento paralelo al mismo, se concreta en las siguientes conclu-
siones y aportaciones:
1. Se ha comprobado que el método más eficiente para el cálculo de los factores de forma
Radiosidad en Multiprocesadores
142
es el método de ray casting determinístico, pues ofrece mayor precisión que el método
de ray-casting estocástico y que los métodos del hemicubo y el tetraedro cúbico. Por
esta razón ha sido el elegido en nuestras diversas implementaciones del método de
radiosidad.
2. Se ha implementado un algoritmo paralelo para el cálculo de la radiosidad progresiva
sobre máquinas de memoria distribuida, usando replicación parcial de datos para min-
imizar las comunicaciones. Se ha desarrollado para este algoritmo un mecanismo de
distribución de patches, que usa una métrica de ponderación basada en el número de
elementos asignados por procesador, y que garantiza buenos balances de carga. Se ha
demostrado experimentalmente que este algoritmo presenta buenas eficiencias y
escalabilidad.
3. Se ha implementado también un algoritmo paralelo para el cálculo de la radiosidad
progresiva sobre máquinas de memoria compartida. Se ha comprobado sobre este
algoritmo la ineficacia de los paralelizadores actuales para la detección automática de
paralelismo en este tipo de problemas irregulares. Se ha comprobado también que,
para este problema, las distribuciones estáticas (CYCLIC y BLOCK) no son capaces
de obtener buenos balances de carga. En consecuencia, se ha empleado una dis-
tribución dinámica, que usa como heurística de guía el área del patch. El algoritmo
muestra experimentalmente buenas eficiencia y escalabilidad, similares a las obteni-
das para memoria distribuida, pero sin overheads de memoria.
4. Los resultados obtenidos para el algoritmo progresivo determinístico son comparables
a los mejores obtenidos en la bibliografía para el algoritmo progresivo estocástico, sin
embargo no tenemos referencia bibliográfica de algún algoritmo progresivo deter-
minístico desarrollado para máquinas de memoria compartida.
5. Se ha implementado un algoritmo paralelo para el cálculo de la radiosidad jerárquica
sobre arquitecturas de memoria distribuida. Se ha desarrollado para este algoritmo un
esquema de distribución de datos mixto, que usa asignación dinámica en la primera
iteración y estática en las restantes. Combinado con una heurística de asignación bas-
ada en el área del patch, este mecanismo consigue muy buenos balances de carga sin
introducir overheads significativos.
Usando replicación parcial de datos para minimizar las comunicaciones el algoritmo
muestra experimentalmente buenas eficiencias y escalabilidad.
Conclusiones: Conclusiones y Principales Aportaciones.
143
6. Los resultados obtenidos para el algoritmo jerárquico en memoria distribuida, compa-
rables a los mejores obtenidos en la bibliografía para multiprocesadores de memoria
compartida, nos permiten afirmar que las arquitecturas de memoria distribuida son
también sistemas viables para resolver el problema de radiosidad jerárquica, lo que
hasta ahora no se había demostrado adecuadamente en la bibliografía.
La investigación realizada nos ha permitido abrir nuevas líneas de trabajo, que extiendan
los resultados obtenidos en esta tesis, y cuyos objetivos principales son:
1. En memoria distribuida, la necesidad de replicar información geométrica de la escena
para el cálculo de visibilidad, si se quiere evitar una fuerte penalización por comuni-
caciones, impone limitaciones al tamaño de las imágenes. En consecuencia, estudi-
aremos representaciones alternativas de la escena tridimensional, que permitan evitar
esta replicación sin sufrir por ello pérdidas significativas en la calidad del resultado.
2. Estudiar esquemas de cálculo de visibilidad que permitan disminuir el considerable
coste de los mecanismos basados exclusivamente en el BSP.
3. Estudiar soluciones alternativas del algoritmo jerárquico, usando wavelets, para
reducir el número de subdivisiones necesario en el proceso de refinamiento.
Radiosidad en Multiprocesadores
144
ANEXO 1: Representación de entornos virtueles utilizando em método de radiosidad
145
ANEXO I
AI.1. Implementación de los algoritmos para el cálculo de los factores de forma.
En el capítulo 1 se analizaron los principales métodos para el cálculo de los factores de
forma. En este apartado presentamos los detalles de la implementación de estos algoritmos,
así como un análisis de la complejidad de los mismos.
AI.1.1. Diseño del Algoritmo del hemicubo.
A continuación presentamos un algoritmo para calcular el factor de forma utilizando las
técnicas descritas en el apartado 1.4.2 para el método del hemicubo. Consideremos u entorno
formado por E patches; el algoritmo opera sobre todos lo patches del entorno segun el
Radiosidad en Multiprocesadores
146
pseudocódigo mostrado en la Figura I.1.
FOREACH (h_fase)FOREACH (h_f_element h_fase)
h_f_element.depht=INFINITOh_f_element.polygon_id=NINGUNOENDFOR
ENDFOR
FOREACH ( )
ENDFOR
FOREACH (h_face)FOREACH ( )
if( es visible)
/*Recorta el polígono alvolumen de visión delhemicubo */
if( volumen de visión del hemicubo)
/* Proyecta el polígonosobre cara del hemicubo*/
FOREACH (h_f_element h_fase)if ( h_f_element )if (profundidad < h_f_elem.depht)h_f_element.depht = profundidad deh_f_element.polygon_id = j
ENDFORENDFORFOREACH (h_f_element h_fase)m = h_f_element.polygon_id
ENDFORENDFOR
Figura I.1 Algoritmo para calcular el factor de forma por el método del hemicubo.La primera parte de este algoritmo está formada por un bucle que se ejecuta de forma
independiente y calcula los factores de forma delta para cada una de las caras
del hemicubo. h_f_element.depht nos permite almacenar la mínima profundidad (según el
sistema de visión del hemicubo) de los patches que se van analizando. Para un determinado
pixel y para una determinada cara del hemicubo, h_f_element.polygon almacena el índice de
este polígono. Estos valores se inicializan con un valor que tienda a infinito y cero respectiv-
amente.
∈
Fh_f_element∆Asuperior∆
π u2 v2 1+ +( )2--------------------------------------- ó
n Acara∆
π u2 n2 1+ +( )2--------------------------------------- ó
n Acara∆
π v2 n2 1+ +( )2---------------------------------------=
Ej escena, j i≠( )∈Fij 0=
Ej escena, j i≠( )∈Ej Ej M=
)
Ej
)
Ej* clip Ej( )=
)
Ej* ∈
h_f_p_proy proy Ej*( )=
∈h_f_p_proy∈
Ej*
Ej*
∈
Fim Fim Fh_f_element∆+=
Fh_f_element∆
ANEXO 1: Representación de entornos virtueles utilizando em método de radiosidad
147
El núcleo fundamental del algoritmo comienza a partir del segundo bucle FOREACH, a
partir del cual para cada una de las caras del hemicubo ubicado sobre el patch y para cada
uno de los demás polígonos , se realiza la transformación de coordenadas de los vértices
del polígono utilizando la matriz de transformación M, obtenida para un punto del obser-
vador situado en centro del hemicubo y un sistema de coordenadas como el de la Figura
1.21(b).
Si el polígono transformado es visible por el patch , se realiza el recorte del
polígono utilizando los planos definidos por el volumen de visión para la cara del hemicubo.
Una vez realizado el recorte del polígono, se comprueba si el polígono recortado se
encuentra dentro del volumen de visión del hemicubo. En cuyo caso se realiza la proyección
sobre la cara del hemicubo.
Una vez realizada la proyección se analiza que elementos de la cara del hemicubo
pertenecen a dicha proyección (h_f_element ()), en cuyo caso se actualizan
h_f_element.depht y h_f_element.polygon_id con los valores de profundidad y el índice del
polígono proyectado respectivamente.
Cuando ya se han analizado todos los patches del entorno tridimensional, para cada
uno de los elementos de la cara del hemicubo que se está analizando, se adiciona el valor del
factor de forma delta al valor del factor deforma del patch cuyo índice corre-
sponda con el valor de h_f_element.polygon_id.
Complejidad del algoritmo.
Requerimientos de memoria: Los factores de forma se almacenan en una estructura de
datos del tipo:delta_form_factor:
double da;double dx, dy, dz;double r, x, y, z;
En resumen se necesitan 24 palabras de ocho bits para almacenar cada factor de forma
delta. Aprovechando la propiedad de simetría en las caras del hemicubo ya hemos analizado
que para una resolución del hemicubo de , sólo necesitamos almacenar valores.
Necesitaríamos entonces posiciones de memoria de ocho bits. Por ejemplo para una
resolución del hemicubo de se necesitarían 90 kbyte de memoria. En la Figura I.2,
Ei
Ej
Ej
Ej
)
Ei
Ej*
h_f_p_proy∈
Ej
Fh_f_element∆
n n× 3n2
8--------
9n2
100x100
Radiosidad en Multiprocesadores
148
se muestra el coste de memoria para diferentes resoluciones del hemicubo.
Figura I.2 Coste de memoria para los métodos del hemicubo y el tetraedro.
Complejidad computacional: Considerando un entorno tridimensional formado por E
elementos y dada una resolución del hemicubo igual a . Podemos definir los sigu-
ientes intervalos de tiempo según las principales funciones que realiza el algoritmo:
t_dff: Tiempo requerido para el cálculo de cada uno de los factores de forma delta.
t_p: Tiempo utilizado para la transformación de los vértices del polígono al sistema de
coordenadas del hemicubo, determinación de visibilidad, recorte del polígono y
proyección sobre la cara del hemicubo.
t_bz: Tiempo utilizado para la actualización de los valores del buffer z para un pixel de
la cara del hemicubo.
t_aff: Tiempo necesario para la actualización del factor de forma entre el patch i y el cor-
respondiente patch j, para un determinado pixel dado de la cara del hemicubo que se
está analizando.
El tiempo total del algoritmo para el cálculo del factor de forma entre un patch i respecto
al resto de patches j que forma el entorno viene dado por la siguiente expresión
En la Tabla I.1 se muestran los tiempos de ejecución de este algoritmo para dos imágenes
con diferentes niveles de complejidad, la primera (IMG1) consta de 286 patches y 4561 ele-
k n n×=
t_total_Fi j j 1....n=( ), 5 k t_dff⋅ E t_p k t_bz⋅+( )⋅ k t_aff⋅+ +[ ] =
ANEXO 1: Representación de entornos virtueles utilizando em método de radiosidad
149
mentos, la segunda formada por 431 patches y 6191 elementos. Además se muestran los
valores para diferentes resoluciones del hemicubo.
AI.1.2. Diseño Algoritmo por el método del tetraedro cúbico.
En esta sección se describe el algoritmo implementado para calcular el factor de forma
por el método del tetraedro cúbico. Éste es prácticamente el mismo que para el método del
hemicubo, sólo cambian algunos aspectos a los que haremos referencia a continuación. Los
factores de forma delta son los mismos para todas las caras del tetraedro cúbico, solo es nec-
esario realizar el cálculo de los factores de forma delta para una cara.
Complejidad del algoritmo.
Requerimientos de memoria: Realizando el mismo análisis que para el hemicubo, pero
teniendo en cuenta que dada la simetría de las caras el tetraedro cúbico solo necesitaría
almacenar factores de forma. Entonces para una resolución del hemicubo de ,
se necesitarian 60 kbyte de memoria. En la Figura I.2 se muestra el consumo de memoria
para distintos niveles de resolución.
Complejidad computacional: Para ello debemos tener en cuenta los mismos tiempos de
ejecución definidos para el algoritmo del hemicubo y las diferencias algorítmicas con éste.
Con esto, el tiempo total para calcular el factor de forma entre un patch y el resto de elemen-
tos de la escena, con este algoritmo, se puede expresar con la siguiente expresión:
A continuación, (Tabla I.2) se presentan los tiempos de cálculo obtenidos de la ejecución
del algoritmo para diferentes resoluciones y para las mismas imágenes utilizadas en el
Imagen 100x100 256x256 512x512 1024x1024
IMG. 1 0.73 s 1.04 s 2.09 s 6.4 sIMG. 2 1.36 s 1.68 s 2.9 s 7.75 s
Tabla I.1 Tiempo de cálculo del factor de forma de un patch respecto al resto de elementos de la escena. (computador SUN Sparc 1000)
n2
4-----100x100
t_total_Fi j j 1....n=( ), k t_dff⋅ 3 E t_p k t_bz⋅+( )⋅ k t_aff⋅+[ ] .+=
Radiosidad en Multiprocesadores
150
método del hemicubo.
AI.1.3. Diseño algoritmo de ray-casting.
A continuación presentamos un algoritmo que utiliza las soluciones apuntadas en el apar-
tado 1.4.3 para el método de ray-casting. En la Figura I.3 se muestra el pseudocódigo que
muestra el algoritmo implementado, para el cálculo del factor de forma entre un patch fuente
y los vértices del patch (o elemento) destino .
SELECT patch ( )FOREACH vértice ( )
FOR ( k =1 to n )
if ( no opuesto a v)
FOREACH (patch )
ENDFORif (ocluc=FALSE)
ENDFOR
ENDFORENDFOR
Figura I.3 Algoritmo de ray-casting para el cálculo de los factores de forma.
Inicialmente el algoritmo parte de haber seleccionado un patch . El primer bucle
FOREACH barre todos los vértices del polígono destino e inicializa los valores del factor
de forma en los vértices.
El segundo bucle permite que, para cada vértice, se seleccione un grupo de puntos dentro
Imagen 100x100 256x256 512x512 1024x1024
IMG. 1 0.39 s 0.53 s 1.02 s 3.04 sIMG. 2 0.76 s 0.89 s 1.44 s 3.86 s
Tabla I.2 Tiempo de cálculo del factor de forma para un patch respecto al resto de elementos de la escena (computador Sun Sparc 1000).
Ei Ej
Ei v Ej∈Fv Ei– 0=
pk randpoint Ei( )=pkr shootray pk v,( )=
Ej entorno, j i≠( )∈ocluc vis Ej r,( )=
Fv Ei–θvk θikcoscos
πrk2 Ai
n-----+
--------------------------------=+
Fv Ei–Ain-----= Fv Ei–
Ei
Ej
ANEXO 1: Representación de entornos virtueles utilizando em método de radiosidad
151
del patch de forma aleatoria, utilizando la función randpoint(). Esta distribución aleatoria
evita el error de aliasing producido por el muestreo uniforme, la función no es más que la
implementación del algoritmo de Turk, para seleccionar puntos aleatorios de forma uniforme
dentro de polígonos triangulares.
El número de puntos (n) seleccionados guarda una relación muy estrecha con la precisión
requerida, hemos comprobado de forma experimental que se obtienen muy buenos resulta-
dos utilizando un valor de n de cuatro a dieciséis.
Para cada uno de estos puntos seleccionados se verifica, si se encuentran uno frente al
otro, comparado la dirección de las normales de punto seleccionado y del vértice v; en
cuyo caso se define la recta r entre los mismos.
Posteriormente se analiza, si alguno de los polígonos que forman el entorno intercepta a
r, utilizando la función VIS (algoritmo de Baduel); en cuyo caso la aportación del punto
al factor de forma es nula. Si por el contrario ningún polígono intercepta la recta r, se tiene
en cuenta la aportación del punto al factor de forma.
Una vez analizados todos los puntos dentro del patch , se pondera el factor de forma
por la fracción del área total correspondiente a cada punto y se siguen calculando el factor de
forma para los demás vértices.
Complejidad del algoritmo.
Coste de memoria: Como los valores del factor de forma se calculan directamente en los
vértices de los polígonos que forman el entorno tridimensional de forma directa, no se neces-
ita almacenar una biblioteca de valores para calcular el factor de forma como la suma de ele-
mentos de dicha biblioteca, como ocurría en el caso del método del hemicubo o del tetraedro.
Complejidad del algoritmo: Para poder analizar la complejidad del algoritmo definire-
mos los siguientes intervalos de tiempos:
tr: Tiempo utilizado por al algoritmo de elección de puntos aleatorios distribuido dentro
de un polígono triangular y definir la recta r.
t_vis: Tiempo requerido por el cálculo del factor de forma y por la función que analiza si
algún polígono del entorno se interpone entre los puntos analizados. Esta última es la que
más tiempo consume en todo el algoritmo.
El tiempo total utilizado para calcular el factor de forma entre un patch y los V vértices
Ei
pk
pk
pk
Ei
Ei
Radiosidad en Multiprocesadores
152
de los E polígonos (elementos) que forman el entorno tridimensional se puede definir por la
siguiente expresión:
donde , para una discretización del espacio tridimensional en polígonos triangu-
lares. A continuación (Tabla I.3) presentamos los tiempos de cálculo para el algoritmo imple-
mentado, para distinta cantidad de rectas (subdivisiones del patch emisor) y para las dos
imágenes de prueba utilizadas en los apartados anteriores.
Imagen 1 Rayo 4 Rayos 16 Rayos 32 Rayos
IMAGEN 1 0.9 s 3.96 s 14.1 s 28.9 sIMAGEN 2 1.7 s 7.2 s 27.14 s 56.1 s
Tabla I.3 Tiempo de cálculo del factor de forma entre un patch y el resto de elementos de la escena, método de ray-casting. (computador Sun Sparc 1000).
ttotal V n tr E 1–( ) t_vis⋅+( )⋅=
V 3 E×=
ANEXO II: Representación de entornos virtuales utilizando el método de radiosidad.
153
ANEXO II
AII.1. Programa de representación basado en el método de Radiosidad.
En este apartado describimos las diferentes etapas que comprende la realización de un
programa de representación (rendering) de entornos virtuales utilizando la técnica de radi-
osidad para el cálculo de la iluminación global. De forma general el proceso de represent-
ación se puede dividir en cinco etapas diferentes, tal como se muestra en la Figura AII.1.
Figura AII.1 Etapas generales de un programa de representación. (Método de radiosidad).
La primera etapa modela el entorno, convirtiendo los elementos físicos del mismo en un
grupo de datos (por ejemplo superficies, vértices, etc.), que puedan ser entendidos por el
computador. La segunda etapa modifica este grupo de datos en una malla útil para el proceso
Modelado del
Entorno
Subdivisión de las
superficies
Cálculo de todos los
Factores de Forma
Solución delSistema de
Ecuaciones Lineales
Visualización de la
Escena en 3D
Radiosidad en Multiprocesadores
154
de cálculo de radiosidad.
La tercera etapa calcula los factores de forma para los elementos de la escena utilizando
alguno de los métodos descritos en el capítulo 1 e implementados en el anexo anterior. Esta
constituye la fase más costosa del algoritmo. La cuarta etapa resuelve el sistema de ecua-
ciones lineales de cuyo resultado podemos obtener la luninancia de todos los elementos gen-
erados en la etapa 2. La última etapa se encarga de la presentación de la imagen
tridimensional resultante en la pantalla del ordenador.
A continuación se describe, de forma muy abreviada, las principales características de
cada una de ellas y se presentan los programas de representación que hemos utilizado para
realizar el estudio que presentamos en esta memoria.
AII.1.1. Modelado del entorno.
En el área de gráficos por computador se han desarrollado diversas formas para la repre-
sentación de objetos tridimensionales, su utilización responde a la aplicación a la que estará
destinada, por ejemplo para los algoritmos de radiosidad se necesita la representación de la
escena como grandes polígonos. A continuación mencionamos las formas de representación
más utilizadas:
1 • Poligonal: Los objetos son representados como un grupo de polígonos
planales.
2 • Patches paramétricos bicúbicos: Los Objetos son representados como mallas
de elementos. Estos son polinomios con dos variables paramétricas, normalmente
cúbicas.
3 • Geometría de Sólidos Constructiva (GSC): Normalmente utilizada en la rep-
resentación de sólidos, un objeto es representado como un grupo de otros objetos
elementales como pueden ser esferas, cilindros y cubos.
4 • Técnicas de subdivisión del espacio: Un objeto es fijado en el espacio eti-
queteando los puntos que éste ocupa en el mismo.
Los esquemas 1 y 4 aproximan (con un error controlable) los objetos que ellos represen-
tan, por otra parte los esquemas 2 y 3 son representaciones exactas de éstos. Los esquemas
se pueden clasificar también de acuerdo a si representan volúmenes o contornos, así los
ANEXO II: Representación de entornos virtuales utilizando el método de radiosidad.
155
esquemas 1 y 2 son representaciones del contorno de los objetos y los 3 y 4 son representa-
ciones del volumen de éstos.
Para la generación de entornos tridimensionales se han desarrollado múltiples aplica-
ciones como por ejemplo: el autocad, el 3D studio, Maya, etc. Estas aplicaciones permiten
realizar la representación de los objetos del mundo real y generar un fichero de salida con la
información geométrica (vértices, superficies, etc.) y óptica (coeficiente de reflectividad,
radiosidad inicial, etc) de los mismos. No existe un formato de datos normalizado para real-
izar la representación, al igual que los esquemas de representación éstos dependen del uso al
que estarán destinados, dentro de los más utilizados podemos mencionar el DXF, el WLD,
WRML, INVENTOR, etc. Actualmente se están realizando esfuerzos para unificar y poder
normalizar el formato de datos, una primera aproximación es el formato MGF (Modeling
Geometric Format).
AII.1.2. Subdivisión del entorno.
La precisión del método de radiosidad depende en gran medida de las técnicas de subdi-
visión (meshing) utilizadas para representar cada superficie. Cada superficie es subdividida
en un grupo de polígonos, comúnmente llamados patches. Cada uno de estos patches recibe
el flujo de los otros patches que lo rodean y a su vez emite su propio flujo. Este es un proceso
iterativo que continúa hasta que la luz reflejada es totalmente distribuida en la escena. De
forma general existen tres estrategias de subdivisión [Ash94]: la subdivisión uniforme, la
subdivisión de alta densidad y la subdivisión no uniforme.
Un estudio más detallado sobre estos aspectos se puede encontrar en los trabajos desar-
rollados por Paul Heckbert [Hec91][Hec92a][Hec94], o en el trabajo desarrollado por S.
Phillips et. al [PWWP93], donde se introduce una estrategia de subdivisión adaptativa. Stur-
zlinger [Stu94], combinó la subdivisión adaptativa con la discontinua, y más recientemente
Hugues Hoppe [Hop96] introdujo un nuevo método conocido como subdivisión progresiva.
Radiosidad en Multiprocesadores
156
AII.1.3. Cálculo de los factores de forma.
En el capitulo 1 se realizó un estudio detallado de los diferentes métodos que existen para
calcular los factores de forma. La decisión en la elección de los mismos está sujeta al grado
de precisión deseado en los cálculos y del método utilizado para resolver el sistema de ecua-
ciones. Los métodos de ray-casting a pesar de ser los más costosos computacionalmente brin-
dan la mejor solución para el cálculo de los factores de forma respecto a los métodos de
proyección (hemicubo, tetraedro, etc), los cuales introducen una mayor fuente de error.
AII.1.4. Solución del sistema de ecuaciones.
En el capítulo 1 , 3 y 4 se han analizado con profundidad las diversas técnicas utilizadas
para la solución del sistema de ecuaciones del método de radiosidad, se proponen además
nuevos algoritmos que permiten acelerar el proceso de cálculo.
El diagrama general para la representación de entornos virtuales por el método de radis-
idad (Figura AII.1), es válido cuando el sistema de ecuaciones es resuelto con los métodos
conocidos como de matriz completa. Sin embargo, cuando utilizamos los algoritmos de radi-
osidad progresiva o de radiosidad jerárquica este diagrama puede sufrir algunas modifica-
ciones.
Por ejemplo, si se utiliza el método progresivo calculando los factores de forma por el
método del hemicubo o del tetraedro cúbico, el diagrama general sería como el que se repre-
senta en la Figura AII.2 .
Figura AII.2 Etapas de un programa de representación utilizando radiosidad progresiva. Factores de forma calculados por el método del hemicubo o l tetraedro cúbico.
En este caso el cálculo de los factores de forma se realiza solamente para los pacthes de
disparo seleccionados. Si el método utilizado para calcular los factores de forma el de ray-
Modelado del
Entorno
Subdivisión de las
superficies
Cálculo de los
Factores de Forma
Solución delSistema de
Ecuaciones Lineales
Visualización de la
Escena en 3D
para cadapatch de disparo
ANEXO II: Representación de entornos virtuales utilizando el método de radiosidad.
157
casting el diagrama quedaría como el que se representa en la Figura AII.3
Figura AII.3 Etapas de un programa de representación utilizando radiosidad progresiva. Factores de forma calculados por el método de ray-castig.
En este caso el cálculo de los factores de forma y la solución del sistema de ecuaciones
se realiza dentro de una misma etapa, para cada uno de los patches de disparo.
Por último si utilizamos el método jerárquico expuesto en el capítulo 4 el diagrama gen-
eral seria el representado en la Figura AII.4.
Figura AII.4 Etapas de un programa de representación utilizando radiosidad jerárquica.
El método jerárquico se caracteriza por realizar un refinamiento adaptativo del entorno
tridimensional, haciendo que la mayor subdivisión se produzca sólo cuando realmente sea
necesario.
AII.1.5. Visualización de la escena ×3D en la pantalla del ordenador.
Una vez calculada la iluminación global para la escena generada, la última fase es su rep-
resentación (rendering) en la pantalla del ordenador. Este proceso implica realizar la proyec-
ción en dos dimensiones (según el punto de visión) de la representación tridimensional de los
objetos. Esta fase se puede dividir en una serie se subprocesos:
1 • Aplicar un grupo de transformaciones lineales a los polígonos, estas transfor-
maciones son transformaciones de la posición de los objetos dentro de la escena
y transformaciones para el punto de visión.
2 • Eliminación de los polígonos que tengan una dirección invertida respecto al
Modelado del
Entorno
Subdivisión de las
superficies
Visualización de la
Escena en 3D
Calculo de los factores de forma y solución de las ecuaciones
para cadapatch de disparo
Modelado del
Entorno
Subdivisión de las
superficies
Cálculo de los
Factores de Forma
Solución delSistema de
Ecuaciones Lineales
Visualización de la
Escena en 3D
Hasta
segun BFε no calculados
convergencia
Radiosidad en Multiprocesadores
158
punto de visión.
3 • Recorte de polígonos de acuerdo al volumen de visión
4 • Convertir el modelo de vértices de la escena, en un grupo de coordenadas de
pixeles de la pantalla.
5 • Aplicar los algoritmos de eliminación de superficies ocultas.
6 • Dibujar los pixeles individuales utilizando un esquema de sombreado inter-
polativo o incremental.
El primer paso implica la definición de un sistema de visión, que nos permita hacer una
representación de nuestro entorno en la pantalla del ordenador. Cualquier sistema de visión
se tiene como mínimo un ojo y una ventana. El sistema de visión con el que hemos trabajado
es una versión de las normas GKS-3D (ISO 1988) y PHIGS (ANSI 1988), los principios de
estos sistemas industriales son descritos de forma más detallada por Singleton [Sin87] y por
Foley [FvDFH90]. Una vez establecido el sistema de visión se transforman todos los vértices
de los elementos de la escena.
Los pasos 2 y 3 se establece una operación que compara la orientación de todos los
polígonos de la escena y elimina aquellos que no se vean, además se hace un recorte de los
polígonos que se encuentren dentro y fuera del volumen de visión.
Los pasos 4 y 5 convierten las coordenadas en 3D de los vértices de los polígonos de la
escena a las coordenadas en 2D de los pixeles de la pantalla del ordenador eliminando las
superficies ocultas, el algoritmo más popular para realizar estas operaciones es el algoritmo
de Z buffer [Cat75]. En el paso 6 realiza el sombreado a partir de la información de color en
los vértices de los polígonos en 2D, los algoritmos más populares utilizados para ello, son el
sombreado de Goraud [Gor71] y el de Phong [Pho75]. Normalmente los pasos del 4 al 6 son
ejecutados en un solo algoritmo interdependiente, sin embargo la mayoría de los libros sobre
gráficos tridimensionales [Wat89] [CW93] [FvDFH90] [Gla95] hacen un análisis por sepa-
rado de los mismos.
AII.2. Resultados.
Aunque el objetivo de esta tesis se centra en el método de radiosidad para el cálculo de
la iluminación global (fases 3 y 4 del programa de representación), nuestro trabajo experi-
ANEXO II: Representación de entornos virtuales utilizando el método de radiosidad.
159
mental ha tenido que tocar de manera implícita todas las demás fases; implantándose sendos
programas de representación para el método progresivo y para el método jerárquico.
AII.2.1. Método Progresivo.
Para la generación de la escena utilizamos un modelo poligonal estableciendo una
jerárquica para la representación de la escena formada por entidades (ej. mesas, sillas, etc),
superficies (polígonos que conforman la entidad), patches (subdivisiones de las superficies)
y elementos (subdivisiones de los patches).
Todas las escenas que hemos utilizado han sido suministradas por “Ian Ashdown”, y el
proceso de subdivisión sólo ha tenido como objetivo poder disponer de diferentes niveles de
complejidad para las mismas.
Los factores de forma fueron calculados utilizando las técnicas descritas en el capítulo 1
de esta memoria y por supuesto en la solución del sistema de ecuaciones se utilizó el método
progresivo desarrollado por Cohen [CW93].
Para la representación en la pantalla del ordenador se utilizaron las técnicas del Z buffer
y del sombreado de Goraud, integrando la aplicación en el entorno Khoros.
Khoros es una herramienta software desarrollada con el objetivo de agrupar el mayor
número posible de rutinas entorno a una aplicación y permitir el fácil acceso a estas rutinas.
Este se ha convertido en un sistema potente que abarca desde rutinas de manipulación de
datos (operadores aritméticos, cálculos estadísticos, etc.) hasta programas de visualización y
animación de imágenes.
En las Figuras AII.5 a AII.9 se muestran algunas escenas representadas con el programa
implementado.
AII.2.2. Método Jerárquico.
Para el método jerárquico también se utilizó una representación poligonal de la escena.
En todas las pruebas se utilizó dos variantes de la escena usada por Hanrrahan [Han91]. La
Figura AII.10 muestra una de ellas, la otra está formada por dos escenas iguales con algunos
objetos replicados.
Radiosidad en Multiprocesadores
160
En el método jerárquico los factores de forma son siempre calculados utilizando el
método de ray-casting determinístico y por supuesto la solución del sistema de ecuaciones
se realiza por el método jerárquico. Para visualización en la pantalla del ordenador también
se utilizan las técnicas de z buffer y sombreado de Goraud. Esta implementación se realizó
sobre una arquitectura Sillicom Graphics utilizando las bibliotecas Open Gl, que facilitan la
programación gráfica en 3D.
AII.2.3. Imágenes representadas con los métodos implementados.
En este apartado presentamos algunas de las escenas representadas con los algoritmos
implementados y que han sido utilizadas en nuestros experimentos.
Figura AII.5 Imagen de CORNELL.
ANEXO II: Representación de entornos virtuales utilizando el método de radiosidad.
161
Figura AII.6 Imagen con objetos de diferente complejidad.
Radiosidad en Multiprocesadores
162
Figura AII.7 Representación de una habitación y una mesa.
ANEXO II: Representación de entornos virtuales utilizando el método de radiosidad.
163
Figura AII.8 Representación de un Hall.
Radiosidad en Multiprocesadores
164
Figura AII.9 Representación de una estación de tren.
ANEXO II: Representación de entornos virtuales utilizando el método de radiosidad.
165
Figura AII.10 Método Jerárquico.
Radiosidad en Multiprocesadores
166
Bibliografa
ACO Cevdet Aykanat Tolga K Capin and Bulent Ozguc A ParallelProgressive Radiosity Algorithm Based on Patch Data Circulation Computers and Graphics
AH L Aupperle and Pat Hanrahan A Hierarchical IlluminationAlgorithm for Surfaces with Glossy Reection In ComputerGraphics Proceedings Annual Conference Series ACMSIGGRAPH Proceedings pages
AK James R Arvo and David B Kirk Particle Transport and ImageSynthesis In Computer Graphics ACM SIGGRAPH Proceedings volume pages August
AM Didier Arques and Sylvain Michelin Proximity Radiosity Exploiting Coherence to Accelerate Form Factor Computations InRendering Techniques Proceedings of the Seventh Eurographics Workshop on Rendering pages New York NY SpringerVerlagWien
APRP Bruno Arnaldi Thierry Priol Luc Renambot and Xavier Pueyo Visibility Masks for Solving Complex Radiosity Computations on Multiprocessors In Proc First Eurographics Workshopon Parallel Graphics and Visualisation Bristol UK September
Arv James R Arvo Backward Ray Tracing In ACM SIGGRAPH Course Notes Developments in Ray Tracing volume August
Arv James Arvo Linear Operators and Integral Equations in GlobalIllumination In ACM SIGGRAPH Course Notes GlobalIllumination chapter pages
BIBLIOGRAFIA
Arv James Arvo Analytic Methods for Simulated Light TransportPhD thesis December
Ash Ian Ashdown Radiosity and Realism The C Users Journal August
Asha Ian Ashdown Modeling Complex D Light Sources In ACMSIGGRAPH Course Notes Making Radiosity Practical pages
Ashb Ian Ashdown Neareld photometric method and apparatusUnited State Patent October Ledalite Architectural Products Inc
Ashc Ian Ashdown NearField Photometry A New Approach Journal of the Illuminating Engineering Society Winter
Ash Ian Ashdown Radiosity A Programmers Perspective JohnWiley and Sons New York NY
Ash Ian Ashdown Lighting for Architects Computer GraphicsWorld August
Atk Kendall Atkinson A Survey of Numerical Methods for the Solution of Fredholm Intergral Equations of the Second Kind Societyfor Industrial and Applied Mathematics Philadelphia PA
Bad D Badouel An ecient raypolygon intersection In Glassner pages
BCea J I Benavides G Cerruela and E Garcia et al ComputacionDistribuida yo Paralela Aplicada sobre Algoritmos de Generacion y Renderizacion de Entornos Virtuales D In Actas VIIIJornadas de Paralelismo Pag Caceres Spain Septiembre
BCea J I Benavides G Cerruela and E Garcia et al Renderizacionde Escenas D Mediante Metodos Fotorrealisticos en ComputadoresParalelos yo Redes In Actas IX Jornadas de ParalelismoPag Donostia Spain Septiembre
BCM E Barton J Crownie and M MacLaren Message passing onthe meiko cs Parallel Computing April
BIBLIOGRAFIA
BCTZ J I Benavides G Cerruela PP Trabado and E L ZapataFast scalable solution for the parallel hierarchical radiosity problem in distributed memory architectures In Second Eurographics Workshop on Parallel Graphics and Visualisation pages Rennes France September
BDCea J I Benavides F J Delgado M J Cuevas and G Cerruelaet al Incorporaci on del m etodo de radiosidad a sistemas derealidad virtual In Jornadas de Informatica Graca Pag Granada Espana Septiembre
Bel C Gordon Bell Multis A new class of multiprocessor computers Science April
BG ChristianA Bohn and Robert Garmann A Parallel Approachto Hierarchical Radiosity In V Skala editor Proceedings of theWinter School of Computer Graphics and CAD Systems pages Plzen Czech Republic February Universityof West Bohemia
Bha Neeta Bhate Photorealistic Volume Rendering PhD thesis
Bia Buming Bian Hemispherical Projection of a Triangle In DavidKirk editor Graphics Gems III pages Boston MA Academic Press Professional
BKP Jerey C BeranKoehn and Mark J Pavicic A Cubic Tetrahedral Adaptation of the HemiCube Algorithm In James Arvoeditor Graphics Gems II pages Academic Press Professional Boston MA
BKP Jerey C BeranKoehn and Mark J Pavicic Delta FormFactorCalculation for the Cubic Tetrahedral Algorithm In David Kirkeditor Graphics Gems III pages Academic Press Professional Boston MA
BM Mark A Bolin and Gary W Meyer An error metric for montecarlo ray tracing In Julie Dorsey and Phillip Slusallek editorsRendering Techniques Proceedings of the Eighth Eurographics Workshop on Rendering pages New York NY Springer Wien ISBN
BIBLIOGRAFIA
BMSW Daniel R Baum Stephen Mann Kevin P Smith and James MWinget Making Radiosity Usable Automatic Preprocessingand Meshing Techniques for the Generation of Accurate Radiosity Solutions In Computer Graphics ACM SIGGRAPH Proceedings volume pages July
BR Luc Bomans and Dirk Roose Benchmsrking the ipsc hypercube multiprocessor In Concurrency Practivce and Experiencevolume pages Sep
BRW Daniel R Baum Holly E Rushmeier and James M WingetImproving Radiosity Solutions Through the Use of Analytically Determined FormFactors In Computer Graphics ACMSIGGRAPH Proceedings volume pages July
BS Gonzalo Beseuievsky and Mateu Sbert The MultiFrame Lighting Method A Monte Carlo Based Solution for Radiosity inDynamic Environments In Rendering Techniques Proceedings of the Seventh Eurographics Workshop on Renderingpages New York NY SpringerVerlagWien
BW Philippe Bekaert and Yves Willems Error Control for RadiosityIn Rendering Techniques Proceedings of the Seventh Eurographics Workshop on Rendering pages New YorkNY SpringerVerlagWien
BWCG Daniel R Baum John R Wallace Michael F Cohen and Donald P Greenberg The BackBuer Algorithm An Extensionof the Radiosity Method to Dynamic Environments The VisualComputer September
Cat E Catmull Computer display of curve surfaces In Tutorialand New York IEEE Selected Readings in Interactive Computer Graphics editors Proc IEEE Conf on Computer GraphicsParttern Recognition and Data Structures page
CCWG Michael Cohen Shenchang Eric Chen John R Wallace andDonald P Greenberg A Progressive Renement Approach toFast Radiosity Image Generation In Computer Graphics ACMSIGGRAPH Proceedings volume pages August
BIBLIOGRAFIA
CG Michael Cohen and Donald P Greenberg The HemiCube ARadiosity Solution for Complex Environments In ComputerGraphics ACM SIGGRAPH Proceedings volume pages August
CGBa G Cerruela E Garcia and JI Benavides Parallel ProgressiveRadiosity on Multiprocessors In Proceedings of the VII NationalSymposium on Pattern Recognition and Image Analysis pages vol Barcelona Spain April
CGBb G Cerruela E Garcia and JI Benavides Radiosity onMultiprocessors In Proceedings of International Workshop onSyntheticNatural Hybrid Coding and Three Dimencional Imaging IWSNHCDI pages Grecia
CGIB Michael Cohen Donald P Greenberg Dave S Immel and Philip J Brock An Ecient Radiosity Approach for Realistic ImageSynthesis IEEE Computer Graphics and Applications March
Che Shenchang Eric Chen A Progressive Radiosity Method and itsImplementation in a Distributed Processing Environment MScthesis Ithaca NY January
Che C Chevrier A view interpolation technique taking into account diuse and specular interreections Visual Computer
Coh Michael Cohen A Radiosity Method for the Realistic ImageSynthesis of Complex Diuse Environments MSc thesis Ithaca NY August
Coh Michael F Cohen Radiosity In David E Rogers and Ray AEarnshaw editors State of the Art in Computer Graphics Visualization and Modeling pages SpringerVerlag NewYork NY
CP Alan G Chalmers and Derek J Paddon Implementing a Radiosity Method Using a Parallel Adaptive System In Proceedingsof the First International Conference on Applications of Transputers Liverpool UK
CSS Per Henrik Christensen Eric J Stollnitz and David H SalesinGlobal Illumination of Glossy Environments Using Wavelets and
BIBLIOGRAFIA
Importance ACM Transactions on Graphics January
CT Robert L Cook and Kenneth E Torrance A reectance modelfor computer graphics In Computer Graphics ACM SIGGRAPH Proceedings volume pages August
Cuo Nguyen Duc Cuong Hybrid Acceleration Methods for Ray Tracing Masters thesis Dresden Germany July
CW Michael F Cohen and John R Wallace Radiosity and RealisticImage Synthesis Academic Press Professional Boston MA
Die Paul J Diefenbach Pipeline Rendering Interaction and Realismthrough HardwareBased MultiPass Rendering PhD thesis
DRB George Drettakis Luc Robert and Sylvain Bougnoux Interactive common illumination for computer augmented reality InJulie Dorsey and Phillip Slusallek editors Rendering Techniques Proceedings of the Eighth Eurographics Workshop onRendering pages New York NY Springer WienISBN
DS David L DiLaura and Scott Santoro Nondiuse radiative transfer General procedure for planar area sources and area receivers Journal of the Illuminating Engineering Society
Dun T H Dunigan Performance of a second generation hypercubeInTechnical Report ORNLTM Oak Ridge Nat Lab Nov
ECGS T Eicken D Culler S Goldstein and K Schauser Activemessages a mechanism for integrate communicaton and computation In Peoc of th Annual International Symposium onComputer Architecture pages May
EJLA A F Emery O Johansson M Lobo and A Abrous A Comparative Study of Methods for Computing the Diuse RadiationViewfactors for Complex Structures ASME Journal of HeatTransfer May
BIBLIOGRAFIA
FAG H Fuchs G Abram and E Grant Near real time shaded display of rigid objects In Computer Graphics ACM SIGGRAPH Proceedings volume pages July
FKN H Fuchs A Kedem and BNaylor On visible surface generation by a priori tree structures In Computer Graphics ACMSIGGRAPH Proceedings volume pages July
FP Martin Feda and Werner Purgathofer Progressive RenementRadiosity on a Transputer Network In P Brunet and F WJansen editors Photorealistic Rendering in Computer GraphicsProceedings of the Second Eurographics Workshop on Rendering pages New York NY SpringerVerlag
Fun Thomas A Funkhouser CoarseGrained Parallelism for Hierarchical Radiosity Using Group Iterative Methods In ComputerGraphics Proceedings Annual Conference Series ACMSIGGRAPH Proceedings pages
FvDFH James D Foley Andries van Dam Steven K Feiner and John FHughes Computer Graphics Principles and Practice SecondEdition AddisonWesley Reading Massachusetts
Gat Neil Gatenby Radiosity A Proposed Alternative to the Hemicube Algorithm MSc thesis Manchester UK
GCB E Garcia G Cerruela and J I Benavides Parallel Renderingof Radiance on Distributed Memory System by PVM In Proceedings of th European PVM PMI Users Group Meeting pages CracowPoland
GK Ned Greene and M Kass Hierarchical ZBuer VisibilityIn Computer Graphics Proceedings Annual Conference Series ACM SIGGRAPH Proceedings pages
Gla Andrew S Glassner Principles of Digital Image Synthesis Morgan Kaufmann San Francisco CA
Gor H Goraud Illumination for computer generated picturesComm ACM
Gor Cindy M Goral A Model for the Interaction of Light BetweenDiuse Surfaces MSc thesis Ithaca NY January
BIBLIOGRAFIA
Gor Steven J Gortler Wavelet Methods for Computer GraphicsPhD thesis Technical Report Princeton NJ January
GR L Greengard and V Rokhlin A Fast Algorithm for Particle Simulations Journal of Computational Physics
Graa Silicon Graphics The IRIS Power C Quick Reference Card
Grab Silicon Graphics IRIS Power C Users Guide
Grac Silicon Graphics MIPSpro Power C Manual Kit MPWRC
Gro W Groscup The intel paragon xps supercomputer In Proceedings of the Fifth ECMWF Workshop on the use of ParallelProcessors in Meteorology pages Nov
GRS P Guitton J Roman and Christophe Schlick Two ParallelApproaches for a Progressive Radiosity In P Brunet and F WJansen editors Photorealistic Rendering in Computer GraphicsProceedings of the Second Eurographics Workshop on Rendering pages New York NY SpringerVerlag
GRS Pascal Guitton Jean Roman and Gilles Subrenat Implementation Results and Analysis of a Parallel Progressive RadiosityIn IEEEACM Parallel Rendering Symposium PRS pages Atlanta Georgia October
GTGB Cindy M Goral Kenneth E Torrance Donald P Greenbergand Bennett Battaile Modelling the Interaction of Light Between Diuse Surfaces In Computer Graphics ACM SIGGRAPH Proceedings volume pages July
HA Alan Heirich and James Arvo Scalable monte carlo image synthesis Parallel Computing
Hai Eric A Haines Ronchamp A Case Study for Radiosity InACM SIGGRAPH Course Notes Frontiers in RenderingJuly
Hal Radim Halir Directional Methods in Radiosity PhD thesisPrague CZ
BIBLIOGRAFIA
Han Pat Hanrahan Rapid Hierarchical Global Illumination Algorithms In ACM SIGGRAPH Course Notes Frontiers inRendering July
HB Kai Hwang and Faye A Briggs Arquitectura de Computadoresy Procesamiento Paralelo Mc GrawHill
Hec Paul Heckbert Simulating Global Illumination Using AdaptiveMeshing PhD thesis Technical Report June
Hec Paul Heckbert Discontinuity Meshing for Radiosity In ThirdEurographics Workshop on Rendering pages BristolUK May
Hec Paul Heckbert editor Graphics Gems IV Academic PressProfessional Boston MA
HHSI T Horri K Hayashi T Shimisu and H Isshiata Improving theap parallel computer performance whith messaje passingIn Proc of the Annual International Symposium on ComputerArchitecture pages May
HL Mark Homewood and Moray Mc Laren Meiko cs interconnectelan elite desing hot interconnects Aug
Hop Hugues Hoppe Progressive Meshes In Computer Graphics Proceedings Annual Conference Series ACM SIGGRAPH Proceedings pages
HS Pat Hanrahan and David Salzman A Rapid Hierarchical Radiosity Algorithm for Unoccluded Environments Technical Report CSTR Department of Computer Science Princeton University Princeton NJ August
HTSG Xiao D He Kenneth E Torrance Francois X Sillion and Donald P Greenberg A Comprehensive Physical Model for LightReection In Computer Graphics ACM SIGGRAPH Proceedings volume pages July
Kaj James T Kajiya The Rendering Equation In Computer Graphics ACM SIGGRAPH Proceedings volume pages August
Kwo Bernard Kwok Analysis of Radiosity Techniques in ComputerGraphics MSc thesis Toronto Ontario May
BIBLIOGRAFIA
LADea C E Leiserson Z S Abuhamdeh D C Douglas and et alThe network architecture of the cm In Symposium on Paralleland Distributed Algorithms pages Jun
Lew Robert R Lewis Making Shaders More Physically PlausibleIn Fourth Eurographics Workshop on Rendering number SeriesEG RW pages Paris France June
LRMa E Lepretre C Renaud and M Meriaux La radiosite sur transputers La Lettre du Transputer
LRMb E Lepretre C Renaud and M Meriaux La Radiosite surTransputers Lettre Transputer and Calculateurs Distributespages December
LTG Daniel Lischinski Filippo Tampieri and Donald P GreenbergCombining Hierarchical Radiosity and Discontinuity MeshingIn Computer Graphics Proceedings Annual Conference Series ACM SIGGRAPH Proceedings pages
Mal Thomas J V Malley A Shading Method for Computer Generated Images MSc thesis June
Max Nelson L Max Optimal Sampling for Hemicubes IEEE Transactions on Visualization and Computer Graphics March
MBG Gregory M Maxwell Michael J Bailey and Victor W Goldschmidt Calculations of the Radiation Conguration FactorUsing Ray Casting ComputerAided Design September
MCBa F Munoz G Cerruela and JI Benavides Parallel Processingof Khoros Routines by PVM Tree Dimencional Graphipcs InProceedings of the VII National Symposium on Pattern Recognition and Image Analysis pages vol Barcelona Spain April
MCBb F Munoz G Cerruela and JI Benavides Khoros System andThree Dimensional Graphipcs In Proceedings of the VII National Symposium on Pattern Recognition and Image Analysispages vol Barcelona Spain April
BIBLIOGRAFIA
MT Nelson Max and Roy Troutman Optimal Hemicube SamplingIn Fourth Eurographics Workshop on Rendering number SeriesEG RW pages Paris France June
Mur Joseph B Murdoch Inverse Square Law Approximation ofIlluminance Journal of the Illuminating Engineering Society January
Nec KNechville The high resolution hemicube algorithm In Proceedings of the Fifth International Conference in Central Europeon Computer Graphics and Visualization WSCG PlzenCzech Republic February University of West Bohemia
Ng Adelene WhyeLeng Ng Parallel and Distributed Radiosity InProceedings of the IEEE Region s Ninth Annual InternationalConference TENCON Singapore volume pages IEEE Singapore Section August
Nie Yves Nievergelt Making any radiosity matrix symmetric positive denite Journal of the Illuminating Engineering Society
NN Tomoyuki Nishita and Eihachiro Nakamae Continuous Tone Representation of ThreeDimensional Objects Taking Account ofShadows and Interreection In Computer Graphics ACM SIGGRAPH Proceedings volume pages July
NNB Attila Neumann Laszlo Neumann Philippe Bekaert Yves Willems and Werner Purgathofer ImportanceDriven StochasticRay Radiosity In Rendering Techniques Proceedings of theSeventh Eurographics Workshop on Rendering pages New York NY SpringerVerlagWien
Nob BNoble Applied linear algebra In Englewood Clis NJPrenticeHall
Nus WNusselt Grapische Bestimmung des Winkelverhaltnisses beider Warmestrahlung Zeitschrift des Vereines Deutscher Ingenieure
OB Philip F OBrien and R P Bobco Interreections in MirroredRooms Illuminating Engineering May
BIBLIOGRAFIA
PCC A S Pai YoungIl Choo and M Chen Distributed tree structures for nbody simulation In B K Szymanski and B Sinharoyeditors Languages Compilers and RunTime Systems for Scalable Computers pages Kluwer Academic PublishersNorwell MA ISBN
Pel M Pellegrini Monte Carlo Approximation of Form Factors withError Bounded a Priori In Eleventh ACM Symposium on Computational Geometry pages Vancouver BC June
Pel M Pellegrini Monte carlo approximation of form factors witherror bounded a priori Discrete and Computational Geometry
Pho B Phong Illumination for computer generated pictures CommACM
PPS Frederic Perez Xavier Pueyo and Francois X Sillion Globalillumination techniques for the simulation of participating media In Julie Dorsey and Phillip Slusallek editors Rendering Techniques Proceedings of the Eighth Eurographics Workshopon Rendering pages New York NY SpringerWien To be published
PR Paul Pierce and Greg Regneir The paragon implementation ofthe nx messaje passing interface In Proc of the Scalable HightPerformance Computing Conference pages May
Pri J Prikryl On mesh preprocessing for radiosity In Proceedings ofthe Fifth International Conference in Central Europe on Computer Graphics and Visualization WSCG Plzen CzechRepublic February University of West Bohemia Postersession
PT M Price and G Truman Radiosity in Parallel In Proceedingsof the First International Conference on Applications of Transputers pages Amsterdam Netherlands IOS
PTM J Protic M Tomasevic and V Milutinovic Distributed andshared memory Concepts and systems In IEEE Parallel andDistributed Tecnology pages
PVTF WH Press WT Vetterling SA Teukolsky and BP FlanneryNumerical recipes in c In Cambridge University Press
BIBLIOGRAFIA
PWWP S Phillips A Worrall C Willis and D Paddon AdaptiveMesh Renement for the Radiosity Method In H P Santo editor Proceedings of Third International Conference on Computational Graphics and Visualization Techniques Compugraphics pages Alvor Portugal December
RAPP Luc Renambot Bruno Arnaldi Thierry Priol and Xavier Pueyo Towards ecient parallel radiosity for dsmbased parallelcomputers using virtual interfaces In Proceedings of the ThirdParallel Rendering Symposium PRS Phoenix AZ October IEEE Computer Society To be published
RBH Holly E Rushmeier Daniel R Baum and David E Hall Accelerating the HemiCube Algorithm for Calculating RadiationForm Factors In th AIAAASME Thermophysics and HeatTransfer Conference Seattle Washington June
RBH Holly E Rushmeier Daniel R Baum and David E Hall Accelerating the HemiCube Algorithm for Calculating RadiationForm Factors ASME Journal of Heat Transfer
Ren C Renaud A parallel radiosity implementation on a transputernetwork In Applications of Transputers Proceedings of theThird International Conference on Applications of Transputerspages Amsterdam Netherlands IOS
RGG Rodney J Recker David W George and Donald P GreenbergAcceleration Techniques for Progressive Renement RadiosityIn Computer Graphics Symposium on Interactive D Graphics volume pages March
RR Anthony Ralston and Philip Rabinowitz A rst Course in Numerical Analysis Mc GrawHill New York NY
RT Holly E Rushmeier and Kenneth E Torrance The Zonal Method for Calculating Light Intensities in the Presence of a Participating Medium In Computer Graphics ACM SIGGRAPH Proceedings volume pages July
SAS Brian E Smits James R Arvo and David H Salesin AnImportanceDriven Radiosity Algorithm In Computer GraphicsACM SIGGRAPH Proceedings volume pages July
BIBLIOGRAFIA
SB MinZhi Shao and Norman I Badler Analysis and Accelerationof Progressive Renement Radiosity Method In Fourth Eurographics Workshop on Rendering number Series EG RWpages Paris France June
Sbe Mateu Sbert An Integral Geometry Based Method for FastForm Factor Computation In Computer Graphics Forum Eurographics volume pages CC Barcelona SpainSeptember
Sei Charles L Seitz The cosmic cube Communications of theACM Jan
SGL Jaswinder P Singh Annop Gupta and Marc Levoy ParallelVisualization Algorithms Performance and Architectural Implications IEEE Computer July
SGS R Schumacker B Gilliland and W Sharp Study for apliyingcomputergenerated images to visual simulation AFHRLTR USAF Human Resources laboratory September
SH Robert Siegel and John R Howell Thermal Radiation HeatTransfer rd Edition Hemisphere Publishing Corporation NewYork NY
SHT Jaswinder Pal Singh Chris Holt Takashi Totsuka Anoop Gupta and John Hennessy Load Balancing and Data Locality inAdaptive Hierarchical Nbody Methods BarnesHut Fast Multipole and Radiosity Journal of Parallel and Distributed Computing June
Sin K Singleton An implementation of the gksdphigs viewingpipeline Bono and Herman
SMa R MN Sarajii and Richard G Mistrick Calculation MethodsError Tendencies and Guidelines for Finite Element Flux Transfer Journal of the Illuminating Engineering Society
SMb Brian E Smits and Gary Meyer Newtons Colors Simulating Interference Phenomena in Realistic Image Synthesis InK Bouatouch and C Bouville editors Photorealism in Computer Graphics Proceedings Eurographics Workshop on Photosimulation Realism and Physics in Computer Graphics pages
BIBLIOGRAFIA
SP Francois Sillion and Claude Puech A General TwoPass Method Integrating Specular and Diuse Reection In ComputerGraphics ACM SIGGRAPH Proceedings volume pages July
SP Francois Sillion and Claude Puech Radiosity and Global Illumination Morgan Kaufmann San Francisco CA
Spa E M Sparrow A New and Simpler Formulation for RadiativeAngle Factors ASME Journal of Heat Transfer May
Spe StephenNoel Spencer The Hemisphere Radiosity Method ATale of Two Algorithms In K Bouatouch and C Bouvilleeditors Photorealism in Computer Graphics Proceedings Eurographics Workshop on Photosimulation Realism and Physics inComputer Graphics pages
SSS I Sutherland R Sproull and R Schumacker A caracterizationof ten hiddensurface algorithms ACM Comp Surv March
Stu W Sturzlinger Adaptive Mesh Renement with Discontinuitiesfor the Radiosity Method In Fifth Eurographics Workshop onRendering pages Darmstadt Germany June
TM Roy Troutman and Nelson L Max Radiosity Algorithms UsingHigher Order Finite Element Methods In Computer GraphicsProceedings Annual Conference Series ACM SIGGRAPH Proceedings pages
TN W Thibauld and BNaylor Set operations on polyhedra usingbinary space partitioning In Computer Graphics ACM SIGGRAPH Proceedings volume pages July
Uni Cornell University Cornell box history In Cornell University Program of Computer Graphicshttpwwwgraphicscornelleduonlinebox
Vil Josep Vilaplana Parallel Radiosity Solutions Based on PartialResult Messages In Third Eurographics Workshop on Rendering pages Bristol UK May
BIBLIOGRAFIA
Wat Alan Watt Fundamentals of ThreeDimensional Computer Graphics AddisonWesley Wokingham UK
WCG John R Wallace Michael F Cohen and Donald P GreenbergA TwoPass Solution to the Rendering Equation A Synthesisof Ray Tracing and Radiosity Methods In Computer GraphicsACM SIGGRAPH Proceedings volume pages July
WEH John R Wallace Kells A Elmquist and Eric A Haines ARay Tracing Algorithm for Progressive Radiosity In ComputerGraphics ACM SIGGRAPH Proceedings volume pages July
WEH John R Wallace K A Elmquist and Eric A Haines Realityin the shadows Elektronica February InDutch
WEH John R Wallace Kells A Elmquist and Eric A Haines Threedimensional computer graphics employing ray tracing to compute form factors in radiosity United States Patent May HewlettPackard Company
WH Andrew Willmott and Paul Heckbert An empirical comparisonof progressive and wavelet radiosity In Julie Dorsey and PhillipSlusallek editors Rendering Techniques Proceedings of theEighth Eurographics Workshop on Rendering pages New York NY Springer Wien ISBN
Wyk Cristofer G Van Wyk A GeometricBased Insulation Model forComputerAided Desing PhD thesis University of Michigan
Yi Xin Yi Automatic Mesh Generation for Radiosity Method inRealisitc Image Synthesis PhD thesis Stevens Institute of Technology Hoboken NJ December
ZP Yong Zhou and Qunsheng Peng The superplane buer Anecient formfactor evaluation algorithm for progressive radiosity In J Straudhammer and Qunsheng Peng editors SecondInternational Conference on ComputerAided Design and Computer Graphics pages Beijing China InternationalAcademic Publishers
BIBLIOGRAFIA
ZWHS David Zareski Bretton Wade Philip Hubbard and Peter Shirley Ecient Parallel Global Illumination Using Density Estimation In IEEEACM Parallel Rendering Symposium PRS pages Atlanta Georgia October