Radiosidad en Multiprocesadores - UMA

198
Universidad de Málaga Departamento de Arquitectura de Computadores Tesis Doctoral Radiosidad en Multiprocesadores Gonzalo Cerruela García

Transcript of Radiosidad en Multiprocesadores - UMA

Page 1: Radiosidad en Multiprocesadores - UMA

Universidad de MálagaDepartamento de Arquitectura de Computadores

Tesis Doctoral

Radiosidad en

Multiprocesadores

Gonzalo Cerruela García

Page 2: Radiosidad en Multiprocesadores - UMA
Page 3: Radiosidad en Multiprocesadores - UMA

iii

A mis padres y familiares, con todo mi amor.

Page 4: Radiosidad en Multiprocesadores - UMA

iv

Page 5: Radiosidad en Multiprocesadores - UMA

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

Page 6: Radiosidad en Multiprocesadores - UMA

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

Page 7: Radiosidad en Multiprocesadores - UMA

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

Page 8: Radiosidad en Multiprocesadores - UMA

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

Page 9: Radiosidad en Multiprocesadores - UMA

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

Page 10: Radiosidad en Multiprocesadores - UMA

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í

Page 11: Radiosidad en Multiprocesadores - UMA

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-

Page 12: Radiosidad en Multiprocesadores - UMA

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

Page 13: Radiosidad en Multiprocesadores - UMA

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.

Page 14: Radiosidad en Multiprocesadores - UMA

Radiosidad en Multiprocesadores

xvi

Page 15: Radiosidad en Multiprocesadores - UMA

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.

Page 16: Radiosidad en Multiprocesadores - UMA

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

Page 17: Radiosidad en Multiprocesadores - UMA

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

Page 18: Radiosidad en Multiprocesadores - UMA

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

Page 19: Radiosidad en Multiprocesadores - UMA

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

Page 20: Radiosidad en Multiprocesadores - UMA

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←( ) =

Page 21: Radiosidad en Multiprocesadores - UMA

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--------------------------------------------------------- = =

Page 22: Radiosidad en Multiprocesadores - UMA

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

Page 23: Radiosidad en Multiprocesadores - UMA

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

= + +

Page 24: Radiosidad en Multiprocesadores - UMA

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

Page 25: Radiosidad en Multiprocesadores - UMA

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 Θ,( )

Page 26: Radiosidad en Multiprocesadores - UMA

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)

Page 27: Radiosidad en Multiprocesadores - UMA

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

Page 28: Radiosidad en Multiprocesadores - UMA

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,( )

Page 29: Radiosidad en Multiprocesadores - UMA

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→( )

Page 30: Radiosidad en Multiprocesadores - UMA

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,( ) Θ←( )

Page 31: Radiosidad en Multiprocesadores - UMA

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∫+=

Page 32: Radiosidad en Multiprocesadores - UMA

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

∫--------------------------------------------------------------------------------- =

Page 33: Radiosidad en Multiprocesadores - UMA

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→( ) +=

Page 34: Radiosidad en Multiprocesadores - UMA

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∫+=

Page 35: Radiosidad en Multiprocesadores - UMA

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=

=

Page 36: Radiosidad en Multiprocesadores - UMA

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

Page 37: Radiosidad en Multiprocesadores - UMA

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

∑+=

Page 38: Radiosidad en Multiprocesadores - UMA

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

=

Page 39: Radiosidad en Multiprocesadores - UMA

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,=

Page 40: Radiosidad en Multiprocesadores - UMA

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

Page 41: Radiosidad en Multiprocesadores - UMA

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

Page 42: Radiosidad en Multiprocesadores - UMA

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

Page 43: Radiosidad en Multiprocesadores - UMA

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– + + +=⇒∪ ∪ ∪=

Page 44: Radiosidad en Multiprocesadores - UMA

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

Page 45: Radiosidad en Multiprocesadores - UMA

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∆

Page 46: Radiosidad en Multiprocesadores - UMA

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

Page 47: Radiosidad en Multiprocesadores - UMA

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–=

Page 48: Radiosidad en Multiprocesadores - UMA

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)

Page 49: Radiosidad en Multiprocesadores - UMA

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---, ,

Page 50: Radiosidad en Multiprocesadores - UMA

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

Page 51: Radiosidad en Multiprocesadores - UMA

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

Page 52: Radiosidad en Multiprocesadores - UMA

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

Page 53: Radiosidad en Multiprocesadores - UMA

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)

Page 54: Radiosidad en Multiprocesadores - UMA

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

Page 55: Radiosidad en Multiprocesadores - UMA

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

Page 56: Radiosidad en Multiprocesadores - UMA

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

∑=

Page 57: Radiosidad en Multiprocesadores - UMA

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

∑=

Page 58: Radiosidad en Multiprocesadores - UMA

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

Page 59: Radiosidad en Multiprocesadores - UMA

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 +=

Page 60: Radiosidad en Multiprocesadores - UMA

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 .–= =

Page 61: Radiosidad en Multiprocesadores - UMA

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–------------------------ .= =

Page 62: Radiosidad en Multiprocesadores - UMA

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

5>

11 5º,<

Emisor

Superficie Receptora

Page 63: Radiosidad en Multiprocesadores - UMA

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( )

Page 64: Radiosidad en Multiprocesadores - UMA

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( )

Page 65: Radiosidad en Multiprocesadores - UMA

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( )

Page 66: Radiosidad en Multiprocesadores - UMA

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

---------------------------------------------------------------- =

Page 67: Radiosidad en Multiprocesadores - UMA

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

Page 68: Radiosidad en Multiprocesadores - UMA

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, ,= =

Page 69: Radiosidad en Multiprocesadores - UMA

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-----

Page 70: Radiosidad en Multiprocesadores - UMA

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( )

Page 71: Radiosidad en Multiprocesadores - UMA

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.

Page 72: Radiosidad en Multiprocesadores - UMA

Radiosidad en Multiprocesadores

58

Page 73: Radiosidad en Multiprocesadores - UMA

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

Page 74: Radiosidad en Multiprocesadores - UMA

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

Page 75: Radiosidad en Multiprocesadores - UMA

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

Page 76: Radiosidad en Multiprocesadores - UMA

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-

Page 77: Radiosidad en Multiprocesadores - UMA

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

Page 78: Radiosidad en Multiprocesadores - UMA

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

Page 79: Radiosidad en Multiprocesadores - UMA

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

...

Page 80: Radiosidad en Multiprocesadores - UMA

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

Page 81: Radiosidad en Multiprocesadores - UMA

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.

Page 82: Radiosidad en Multiprocesadores - UMA

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

Page 83: Radiosidad en Multiprocesadores - UMA

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

Page 84: Radiosidad en Multiprocesadores - UMA

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

Page 85: Radiosidad en Multiprocesadores - UMA

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.

Page 86: Radiosidad en Multiprocesadores - UMA

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

Page 87: Radiosidad en Multiprocesadores - UMA

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

Page 88: Radiosidad en Multiprocesadores - UMA

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

Page 89: Radiosidad en Multiprocesadores - UMA

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

Page 90: Radiosidad en Multiprocesadores - UMA

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–( )+-------------------------------=

Page 91: Radiosidad en Multiprocesadores - UMA

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

Page 92: Radiosidad en Multiprocesadores - UMA

Radiosidad en Multiprocesadores

78

Page 93: Radiosidad en Multiprocesadores - UMA

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.

Page 94: Radiosidad en Multiprocesadores - UMA

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

∑----------------------- =

ρ

Page 95: Radiosidad en Multiprocesadores - UMA

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

Page 96: Radiosidad en Multiprocesadores - UMA

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∆

Page 97: Radiosidad en Multiprocesadores - UMA

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+=

Page 98: Radiosidad en Multiprocesadores - UMA

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)

Page 99: Radiosidad en Multiprocesadores - UMA

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∆–

Page 100: Radiosidad en Multiprocesadores - UMA

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

Page 101: Radiosidad en Multiprocesadores - UMA

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

Page 102: Radiosidad en Multiprocesadores - UMA

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-

Page 103: Radiosidad en Multiprocesadores - UMA

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-

Page 104: Radiosidad en Multiprocesadores - UMA

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

Page 105: Radiosidad en Multiprocesadores - UMA

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=

Page 106: Radiosidad en Multiprocesadores - UMA

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.

Page 107: Radiosidad en Multiprocesadores - UMA

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

Page 108: Radiosidad en Multiprocesadores - UMA

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.

Page 109: Radiosidad en Multiprocesadores - UMA

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

Page 110: Radiosidad en Multiprocesadores - UMA

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

Page 111: Radiosidad en Multiprocesadores - UMA

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

Page 112: Radiosidad en Multiprocesadores - UMA

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⋅,

Page 113: Radiosidad en Multiprocesadores - UMA

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).

Page 114: Radiosidad en Multiprocesadores - UMA

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.

Page 115: Radiosidad en Multiprocesadores - UMA

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

Page 116: Radiosidad en Multiprocesadores - UMA

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.

Page 117: Radiosidad en Multiprocesadores - UMA

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.

Page 118: Radiosidad en Multiprocesadores - UMA

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=

Page 119: Radiosidad en Multiprocesadores - UMA

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.

Page 120: Radiosidad en Multiprocesadores - UMA

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( )------------------------------------------------------------------------------–

×=

Page 121: Radiosidad en Multiprocesadores - UMA

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.

Page 122: Radiosidad en Multiprocesadores - UMA

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.

Page 123: Radiosidad en Multiprocesadores - UMA

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.

Page 124: Radiosidad en Multiprocesadores - UMA

Radiosidad en Multiprocesadores

110

Page 125: Radiosidad en Multiprocesadores - UMA

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-

Page 126: Radiosidad en Multiprocesadores - UMA

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–( )⋅

Page 127: Radiosidad en Multiprocesadores - UMA

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( )

Page 128: Radiosidad en Multiprocesadores - UMA

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

Page 129: Radiosidad en Multiprocesadores - UMA

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

∑=

Page 130: Radiosidad en Multiprocesadores - UMA

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,( )

Page 131: Radiosidad en Multiprocesadores - UMA

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

Page 132: Radiosidad en Multiprocesadores - UMA

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.

Page 133: Radiosidad en Multiprocesadores - UMA

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)

Page 134: Radiosidad en Multiprocesadores - UMA

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=

Page 135: Radiosidad en Multiprocesadores - UMA

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

Page 136: Radiosidad en Multiprocesadores - UMA

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

Page 137: Radiosidad en Multiprocesadores - UMA

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ε

Page 138: Radiosidad en Multiprocesadores - UMA

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

Page 139: Radiosidad en Multiprocesadores - UMA

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( )=∑=

Page 140: Radiosidad en Multiprocesadores - UMA

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)

Page 141: Radiosidad en Multiprocesadores - UMA

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

Page 142: Radiosidad en Multiprocesadores - UMA

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-

Page 143: Radiosidad en Multiprocesadores - UMA

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( )=∑=

Page 144: Radiosidad en Multiprocesadores - UMA

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

Page 145: Radiosidad en Multiprocesadores - UMA

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.

Page 146: Radiosidad en Multiprocesadores - UMA

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+( )

Page 147: Radiosidad en Multiprocesadores - UMA

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ε

BFR

O P 11 2,---------⋅

O P P 1–( ) Λ P1 2,---------⋅+

.

Λ

Page 148: Radiosidad en Multiprocesadores - UMA

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⋅ ⋅+⋅ ⋅+⋅ ⋅

Page 149: Radiosidad en Multiprocesadores - UMA

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

Page 150: Radiosidad en Multiprocesadores - UMA

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.

Page 151: Radiosidad en Multiprocesadores - UMA

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.

Page 152: Radiosidad en Multiprocesadores - UMA

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.

Page 153: Radiosidad en Multiprocesadores - UMA

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).

Page 154: Radiosidad en Multiprocesadores - UMA

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.

Page 155: Radiosidad en Multiprocesadores - UMA

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

Page 156: Radiosidad en Multiprocesadores - UMA

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.

Page 157: Radiosidad en Multiprocesadores - UMA

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.

Page 158: Radiosidad en Multiprocesadores - UMA

Radiosidad en Multiprocesadores

144

Page 159: Radiosidad en Multiprocesadores - UMA

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

Page 160: Radiosidad en Multiprocesadores - UMA

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∆

Page 161: Radiosidad en Multiprocesadores - UMA

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

Page 162: Radiosidad en Multiprocesadores - UMA

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⋅+ +[ ] =

Page 163: Radiosidad en Multiprocesadores - UMA

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⋅+[ ] .+=

Page 164: Radiosidad en Multiprocesadores - UMA

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

Page 165: Radiosidad en Multiprocesadores - UMA

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

Page 166: Radiosidad en Multiprocesadores - UMA

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×=

Page 167: Radiosidad en Multiprocesadores - UMA

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

Page 168: Radiosidad en Multiprocesadores - UMA

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

Page 169: Radiosidad en Multiprocesadores - UMA

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.

Page 170: Radiosidad en Multiprocesadores - UMA

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

Page 171: Radiosidad en Multiprocesadores - UMA

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

Page 172: Radiosidad en Multiprocesadores - UMA

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-

Page 173: Radiosidad en Multiprocesadores - UMA

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.

Page 174: Radiosidad en Multiprocesadores - UMA

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.

Page 175: Radiosidad en Multiprocesadores - UMA

ANEXO II: Representación de entornos virtuales utilizando el método de radiosidad.

161

Figura AII.6 Imagen con objetos de diferente complejidad.

Page 176: Radiosidad en Multiprocesadores - UMA

Radiosidad en Multiprocesadores

162

Figura AII.7 Representación de una habitación y una mesa.

Page 177: Radiosidad en Multiprocesadores - UMA

ANEXO II: Representación de entornos virtuales utilizando el método de radiosidad.

163

Figura AII.8 Representación de un Hall.

Page 178: Radiosidad en Multiprocesadores - UMA

Radiosidad en Multiprocesadores

164

Figura AII.9 Representación de una estación de tren.

Page 179: Radiosidad en Multiprocesadores - UMA

ANEXO II: Representación de entornos virtuales utilizando el método de radiosidad.

165

Figura AII.10 Método Jerárquico.

Page 180: Radiosidad en Multiprocesadores - UMA

Radiosidad en Multiprocesadores

166

Page 181: Radiosidad en Multiprocesadores - UMA

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

Page 182: Radiosidad en Multiprocesadores - UMA

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

Page 183: Radiosidad en Multiprocesadores - UMA

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

Page 184: Radiosidad en Multiprocesadores - UMA

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

Page 185: Radiosidad en Multiprocesadores - UMA

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

Page 186: Radiosidad en Multiprocesadores - UMA

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

Page 187: Radiosidad en Multiprocesadores - UMA

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

Page 188: Radiosidad en Multiprocesadores - UMA

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

Page 189: Radiosidad en Multiprocesadores - UMA

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

Page 190: Radiosidad en Multiprocesadores - UMA

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

Page 191: Radiosidad en Multiprocesadores - UMA

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

Page 192: Radiosidad en Multiprocesadores - UMA

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

Page 193: Radiosidad en Multiprocesadores - UMA

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

Page 194: Radiosidad en Multiprocesadores - UMA

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

Page 195: Radiosidad en Multiprocesadores - UMA

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

Page 196: Radiosidad en Multiprocesadores - UMA

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

Page 197: Radiosidad en Multiprocesadores - UMA

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

Page 198: Radiosidad en Multiprocesadores - UMA