Documente Academic
Documente Profesional
Documente Cultură
la
Computacion
Graca
Claudio Delrie ux Departame nto de
Ingeniera Electrica Unive rsidad
Nac ional del Sur
cla udi o@ acm .o rg
Prefacio
Agradecimient
os
Este texto es el resultado del esfuerzo y la colaboracion de m uchas personas desde que, en
1985, el Profesor Daniel Magni, del Departam ento de Ingeniera Electrica de la
Universidad Nacional del Sur, propone y dicta por primera vez la materia optativa Sistemas de
Programacion III, con un program a destinado especcamente al dictado de temas de
Computacion Graca. Dicha materia ha sido dictada todos los a~nos desde entonces, y fue
por mucho tiempo la unica materia de grado de Computacion Graca dictada en las
Universidades de Argentina. En aquel entonces curse la
materia como alum no, al o siguiente colabore com o do cente alum no, y desde 1990 estoy a
a
cargo
de su dictado. El crecimiento y mejora del grupo docente se debe fundamentalmente al esfuerzo
y capacidad de los alumnos, que con su iniciativa y talento obligaron a~no tras a~no a una
superacion constante de quienes estuvimos a cargo del dictado y de los traba jos
practicos. De todos los docentes q ue aportaron con su paso por SPIII q uisiera agradecer
especialm ente a Daniel Formica, Fernando Caba y Andres Repetto.
Tambien deseo agradecer a quienes aportaron su colaboracion material q ue ay udo a
mejorar la calidad y presentacion de este texto, en particular a Miguel Danzi, Silvia Castro,
Andrea Silvetti y Gustavo Patow. Tambien se incluyen como ejemplos ilustrativos algunas
guras realizadas a partir de im plem entaciones de Sebastian Urbicain Mario Carro y Jorge
Anchuv idart. Se incluyen grandes partes de las notas de cursos dados en la Primera Escuela
2
C laudio
Delrieux
Com putacion
Graca
INDICE
Indice
1 I ntroduccion
1.1
Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 .Aplicaciones de la Computacion Graca . . . . . . . . . . . . . . . . . . . . . .
.
1.3 .Desarrollo
Historico de la Computacion
. . . . . . . . . . . . . . . . . . . .
Graca
2 Algoritmos y C onceptos Basic os
2.1
2.2
2.3
2.4
2.5
2.6
2.7
Dispositivos Gracos . . . . . . . . . . . . .
.2.1.1 Dispositivos de
. . . . . . . .
vectores
2.1.2 Dispositivos de raster . . . . . . . .
2.1.3 .Hardware graco para m
. . .
onitores
Tecnicas de Discretizacion . . . . . . . . .
8
9
11
. . . . . . . . . . . . . . . . . . . . .
12
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
12
13
. . . . . . . . . . . . . . . . . . . . .
13
.
.2.2.1
.
El sistema de coordenadas
. . . .
fsico
2.2.2 Primitivas gracas . . . . . . . . . . .
.2.2.3 Especicaciones de una discretizacion
19
2.2.4 Metodos de discretizacion . . . . .
.Discretizacion
.
de Segmentos de
. . . .
Rectas
2.3.1 Segmentos de recta DDA . . . . . . .
2.3.2 Segmentos de rectas por Bressenham
.Discretizacion de Circunferencias . . . . . .
. . . . . . . . . . . . . . . . . . . .
16
. . . . . . . . . . . . . . . . . . . .
18
. . . . . . . . . . . . . . . . . . . .
19
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
20
. . . . . . . . . . . . . . . . . . . . .
20
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
20
23
. . . . . . . . . . . . . . . . . . . . .
26
.2.4.1
26
2.4.2
29
. . . . . . . . . . . . . .
Discretizacion de Polgonos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
Bibliografa recomendada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
34
33
INDICE
3 Computaci on Graca en Dos Dime nsiones
3.1
3.2
35
. . . . . . . . . . . . . . . . .
36
. . . . . . . . . . . . . . . . .
37
. . . . . . . . . . . . . . . . .
38
. . . . . . . . . . . . . . . .
39
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
42
42
. . . . . . . . . . . . . . . .
43
3.4.1
Windowing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
3.4.2
Clipping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
49
54
3.3
3.4
3.5
3.6
.
.3.2.3 Transform aciones rev
. . . . . . . . . .
isitadas
Representacion
Estructurada . . . . . . . . . . . . .
.Windowing y Clipping . . . . . . . . . . . . . . . . . .
3.7
4.1
Motivaciones
4.1.1
.4.1.2
4.2
4.3
67
4.4
4.6
53
55
. . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . .
56
Especicaciones y requisitos . . . . . . . . . . . . . . . . . . . . . . . . . .
58
La representacion
. . . . .
parametrica
Interpolacion de Curvas . . . . . . . . . . . .
.4.2.1 Interpolacion de Curvas de
. .
Lagrange
4.2.2 Interpolacion de Curvas de Herm . .
. . . . . . . . . . . . . . . . . . . .
60
. . . . . . . . . . . . . . . . . . . .
60
. . . . . . . . . . . . . . . . . . . .
60
. . . . . . . . . . . . . . . . . . . . 63
ite
Aprox im acion de Curvas I: de Casteljau, B ernstein y Bezier . . . . . . . . . . . . .
4.3.1
4.3.2
Construccion de parabolas . . . . . . . . . . . . . . . . . . . . . . . . . . .
. algoritmo de de Casteljau . . . . . . . . . . . . . . . . . . . . . . . . . .
El
67
69
4.3.3
La base de Bernstein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
75
4.4.3
B-Splines no uniformes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
86
92
4.4.4
4.5
51
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
78
90
92
INDICE
5 El Color e n Computacion Graca
5.1
5.2
5.3
5.4
Introduccion . . . . . . . . . . . . . .
.Aspectos Fsicos del Color . . . . . .
.Aspectos Fisiologicos del
. . . .
Color
El Diagram a CIEXY de Cromaticidad
93
. . . . . . . . . . . . . . . . . . . . . . . . .
94
. . . . . . . . . . . . . . . . . . . . . . . . .
94
. . . . . . . . . . . . . . . . . . . . . . . . .
95
. . . . . . . . . . . . . . . . . . . . . . . . .
97
. . . . . . . . . . . . . . . . 102
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
107
. . . . . . . . . . . . . . . .
110
5.9
. . . . . . . . . . . . . . . . .
112
. . . . . . . . . . . . . . . . .
113
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
115
119
. . . . . . . . . . . . . . . . .
Viewing
Cara Oculta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
122
125
6.6.1
127
6.6.2
129
6.6.3
El algoritm o SPIII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
131
6.7
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
135
6.8
. . . . . . . . . . . . . . . . . . . . .
Bibliografa
. . . . . . . . . . .
recomendada
7 Modelos de Iluminacion y Sombreado
7.1 El Realism o en Com putacion Graca . . .
138
7.2 Mo delos de
. . . . . . . . . . . .
Iluminacion
7.3 Sombreado de
. . . . . . . . . . . .
7.4
7.5
136
137
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
Polgonos
R ay Tracing . . . . . . . . . . . . . . . . . . . . . .
.R adiosidad . . . . . . . . . . . . . . . . . . . . . .
.Com paracion de los metodos de rendering . . . .
139
. . . . . . . . . . . . . . . . .
147
. . . . . . . . . . . . . . . . .
152
. . . . . . . . . . . . . . . . .
156
7.6
. . . . . . . . . . . . . . . . . . .
157
7.7 Mapas de atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
7.8
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
160
7.9
Bibliografa
recomendada
160
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INDICE
8 Aproximac ion de Supe rcies con Puntos de Control
8.1
8.2
8.3
8.4
Intro duccion . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.Aprox im acion de Supercies I: Producto Tensorial de
s .
Curva
8.2.1 Supercies de Bezier . . . . . . . . . . . . . . . . . . .
.8.2.2 Supercies B- Spline bicubicas . . . . . . . . . . . . .
.Aprox
.
im acion de Supercies II: Dominios
. . . . .
. . . . . . . . . . . 162
. . . . . . . . . . . 162
. . . . . . . . . . . 163
. . . . . . . . . . . 168
. .
Triangulares
8.3.1
Algoritm o de de Casteljau bivariado . . . . . . . . . . . .
.8.3.2 Polinom ios de Bernstein multivariados . . . . . . . . . . .
.Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.5
9
161
. . . . . . . . . 169
. . . . . . . . . 171
. . . . . . . . . 171
. . . . . . . . . 174
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
175
9.1
Modelos de refraccion
9.2
Animacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
9.3
9.4
A Notacion
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
185
Introduccion
Captulo 1.
Introduccion
1.1
ion
Motivac
La Com putacion Graca ha sido una de las ram as de las Ciencias de la C omputacion de
m ayor impacto social y acercamiento al pu blico en general. La gracacion esta casi siem pre
asociada con la interactiv idad, por lo que actualmente casi todo sistem a o programa interactivo
tiene una interfase graca. Esto es as no solo en aplicaciones especcas de gracacion
matem atica y estadstica, sino tambien com o medio de producir metaforas visuales para
otros sistemas informaticos, como ocurre actualmente en los lengua jes de programacion v isual,
las interfases gracas con sistemas de ventanas y la metafora del desktop, y en los sistem as de
disen~o asistido. En la actualidad, para cualq uier persona, el acceso a Internet sin
posibilidades gracas es considerado una antiguedad. Aun las personas que no utilizan
computadoras en su vida diaria encuentran gracos computacionales en casi to dos los
aspectos de la cultura.
Tambien se han popularizado los sistemas que traducen modelos abstractos a im agenes v
isua- lizables, como sucede con las simulaciones ingenieriles q ue representan gracamente los
resultados provenientes de mo delos matem aticos para auxiliar su comprension, o con los
datos obtenidos por sensores (satelites, tom ografos o telemetros en general) q ue se
representan visualm ente en los boletines meteorologicos o en las pantallas de los medicos.
To dos estos sistemas, utilizados para nes tan diversos, tienen un fundam ento subyacente
que consiste en una serie de tecnicas derivadas de la aplicacion computacional de la Geom etra
Analtica. En este texto presentam os los fundam entos teoricos y los detalles de
implementacion de los temas que constituyen el nucleo de la Com putacion Graca en
tres dimensiones. El estudio de estos tem as es indispensable para comprender la idiosincracia
de la disciplina, y de todos los sistemas que, como m encionam os, se basan de una u otra forma
en la gracacion.
1.2
Aplicaciones de
Graca
la
Comput ac ion
Captulo 1.
Introduccion
juegos, pelculas y cortos de dibujos anim ados, posproduccion y efectos especiales de
peliculas, publi- cidad, y tambien el desarrollo de programas utilitarios destinados a la
creacion de productos en estos rubros.
Aplicacione s come rci ale s Son cada vez mas comunes los sistemas para elaboracion
de pre- sentaciones comerciales, incluyendo cartillas gracas, diagramacion automatica,
y publicacion
Claudio Delrieux
1.3
Desarrollo Histo rico de la Com putacion
Graca
Hasta hace aproximadamente 20 a~nos, la Computacion Graca era un campo peque~no y
espe- cializado, dado el costo de los equipos necesarios para la implementacion de sistem as
gracos. Para el publico en general, el tema consista en desarrollar aplicaciones en
sistemas mainframe sobre paqetes gracos built in, los cuales pro ducan una salida visual
para program as cientcos o comerciales en los que se necesitaban elaborar gracos
estadsticos como histogram as, diagram as o trazado de funciones. El traba jo de investigacion
en Computacion Graca, como es entendido en la actualidad, pareca entonces una tarea
futil orientada a obj etivos pretensiosos y de escasa utilidad. Desde entonces, la Computacion
Graca experimento dos grandes cambios de paradigma en sus objetivos, pasando de los
gracos estadsticos a la sntesis realista de im agenes tridimensionales (a m ediados de los
70) y luego a la representacion graca de datos u objetos abstractos, en lo que hoy se cono ce
como Vis ualizacion Cientca (a mediados de los 80). Actualmente es posible arm ar q ue
el cam po esta atravesando un nuevo cambio paradigm atico, producido esencialm ente por
el desarrollo de la Realidad Virtual, junto con la tecnologa de sensores y actuadores
cinematicos, y por supuesto Internet con acceso a alta velocidad. Conectarse desde el hogar a
una simulacion graca del Pathnder y recorrer un M arte virtual es una posibilidad casi
rutinaria, aun para el no experto.
Podemos armar que la Com putacion Graca quedo denida en el traba jo do ctoral de
Ivan Sutherland en el MIT en 1963 [80]. Su desarrollo del sistem a interactivo de gracacion
Sketch- pad fue el fundamento sobre el cual se apoyaron las ideas de la mayor parte de las
ideas de la Computacion Graca 2D y 3D (por ejemplo, los Captulos 3 y 6 de este texto).
Por su parte, a m ediados de la decada del '60 comenzaron a desarrollarse en Francia los
metodos de dise~no asistido
de curvas y supercies. En unos pocos an~os
a existir una disciplina cientca, la cual
comenz
se
plasma con la creacion de Sociedades Profesionales como el ACM SIGGRAPH en 1969. La
decada del 70 fue esencialmente de cambios tecnologicos. El descenso del costo de la m
emoria volatil produjo el reemplazo de los costosos equipos basados en display de vectores, por
los dispositivos de la tecnologa de raster que actualmente se utiliza. Basicamente, cada
\pixel", pict ure cell o celda de pantalla, tiene un respaldo en un conjunto de memoria
dedicada. Ello m otiv o el desarrollo de los algoritmos de digitalizacion de primitivas gracas
como los que se resen~an en el Captulo 2.
Asociado al cambio
entrada (m ouse, tablas
alta calidad y precios
supercies com enzaron
vectores. La mayora
Captulo 1.
Introduccion
fueron desarrollados y perf eccionados durante esta decada.
Otra de las posibilidades
originada con el cambio tecnologico fue la representacion de colores. Esto motivo el
desarrollo de modelos y espacios cromaticos adecuados para la relacion costo-perform ance
de los m onitores (ver Captulo
5). C on la posiblidad del color, el primer cambio de paradigm a, la busq ueda de la
sntesis de imagenes con realismo, llego a su max im a expresion con el desarrollo de mo
delos em pricos de iluminacion y sombreado (ver Captulo 7). Estos m odelos perm iten la
representacion de escenas en las cuales se simulan los fenomenos optico-fsicos con un
costo computacional bastante bajo para los resultados obtenidos. Tambien en los 70
comienzan a establecerse estandares, dado que las aplicaciones gracas se difundieron en
medio de una diversidad de cambios y evolucion, y una gran cantidad de proovedores,
fabricantes y dise~nadores.
Sin duda la decada de cambios mas vertiginosos fue la de 1980. El surgimiento de las
maquinas PC, aunque con capacidades gracas lim itadas, permitio la popularizacion de
sistemas y aplica- ciones que crearon un mercado ex igente y com petitivo (por ejemplo con
el Autocad). Tambien com enzaron a disen~arse herram ientas gracas de interfase hombre
maquina, como por ejemplo el sistema operativo de la Macintosh II, los lengua jes de program
acion visual y el hipertexto. El rol que no alcanzaron a cumplir los Com ites de
estandarizacion (por ejemplo, el GSK fue aprobado recien en 1985, cuando haca varios anos
que ya era obsoleto) fue cubierto por las com pa~nas com er- ciales q ue al crear una aplicacion
novedosa se transformaban en estandares de facto en el mercado (por ejemplo el Poscript, el
OpenGL y X Windows).
Tambien esta decada marco el segundo cambio de paradigm a, porq ue la evolucion de los
mo delos gracos, junto con la capacidad de representacion de los monitores y la integracion
de los sistemas gracos a otro tipo de aplicaciones (simulaciones en ingeniera, sensores rem
otos, datos de satelites, etc.) permitieron desarrollar herramientas para la representacion
graca de conjuntos enormemente com plejos de datos.
Estas ideas, que con el tiem po
fueron el fundamento de la Visualizaci on Cientca, apelan a la enorm e capacidad de com
prension visual humana (ver Seccion 9.3). De esa manera es posible representar, por ejemplo,
millones de datos meteorologicos en un unico \graco" que permite comprender a golpe de
vista las caractersticas esenciales de una determinada situacion climatica.
La popularizacion de la Com putacion graca signico, adem as, el surgimiento y
desarrollo de aplicaciones en las areas mas diversas. Durante los `80 comenzaron a utilizarse
herramientas gracas para el disen~o en Ingeniera en to das sus actividades, desde aviones y
barcos hasta circuitos integrados. En Arq uitectura e Ingeniera C iv il se utilizan sistemas
para la simulacion, el disen~o y la elaboracion y analisis de modelos. En Medicina
podemos mencionar desde el diagnostico por imagenes hasta la simulacion y planeam
iento de operaciones quirurgicas o el desarrollo de implantes. En animacion y v ideo
juegos se dio un desarrollo espectacular en la calidad e ima- ginacion con los que surgieron
universos de fantasa. Cada uno recordara pelculas famosas de Hollywoo d videoclips,
publicidades, video juegos para Sega, etc.
En la actualidad, el desarrollo tecnologico perm ite integrar multimedios con acceso
directo a redes, adquirir datos a traves de guantes y sensores y actuadores cinematicos, y
procesar en tiempo real la simulacion de un observador sumergido en una realidad v irtual.
Las posibilidades de los browsers para Internet estan resultando cada vez mas obsoletas, por
lo q ue no es aventurado pensar que la integracion de estas tecnologas signicara un nuevo
cambio de paradigm a en un futuro cercano.
To do este vasto cam po de aplicacion de la Computacion Graca es im posible de cubrir
en un libro intro ductorio. Sin em bargo, para cualquiera que desee especializarse en algun tema
especco, la base comu n es aproximadamente la presentada aq u. Esperam os cum plir con
las expectativas del lector al acercarle los fundamentos de la Computacion Graca de una
10
C laudio
Delrieux
Captulo 1.
Introduccion
manera clara y precisa, con el deseo de brindarle la m ayor motivacion y entusiasmo para
seguir recorriendo este cam ino.
11
C laudio
Delrieux
Algoritmos y
Conceptos
Basicos
Computacion Graca
11
2.1
Gracos
Disposit
ivos
Los resultados gracos de una aplicacion pueden m ostrarse en una gran variedad de
dispositivos de salida. Norm alm ente estos dispositivos son o bien de pantalla o bien de
impresion. Sin embargo, desde el punto de vista de la Computacion Graca, es
importante otra clasicacion, referida al mo do en que los mismos son manejados por la
computadora. De esa m anera, podem os ver que ex isten dispositivos de los siguientes tipos:
Disposi tivos de vectores, los cuales reciben de la com putadora la informacion
geometrica de la lo calizacion y tama~no de las primitivas q ue soportan, de las
cuales pro ducen una reproduccion \caligraca".
Disposi tivos de raste r, los cuales reciben de la computadora la informacion de una
serie de pix els, los cuales son posicionados en form a contigua.
Los dispositivos de vectores fueron los primeros en desarrollarse, pero luego del
vertiginoso descenso en el costo de la memoria volatil, a partir de la decada del 70 se
hicieron mas baratos los dispositivos de raster. C omo verem os en este C aptulo, esto im
plica un cambio en la manera de representar las primitivas gracas (usualmente dichas
primitivas son el punto, el segmento de recta y la circunferencia o el crculo).
2.1.1
vectores
Dispositivos
de
Actualmente estos dispositivos son mas caros, pero tienen ciertas ventajas que los hacen
unicos. Por ejemplo, tienen mucha mejor resolucion y precision que los dispositivos de
raster, y req uieren un ancho de banda de comunicacion mucho menor dado q ue no reciben la
discretizacion com pleta de las prim itivas sino solam ente su posicion.
Plotters: Gracan en una hoja (que en algunos casos puede ser de gran tam a~no) sobre la
cual se desliza una pluma movida por motores de pasos de gran precision. En los plotters
de tambor, la plum a se desliza en sentido horizontal y el papel en sentido vertical. En los
plotters planos (mas economicos), el papel esta jo y la pluma realiza todos los m ov im
ientos. Son usuales las resoluciones del orden de los 10000 10000. Es posible utilizar
colores por medio de varias plumas. Son ideales para la gracacion rapida y precisa de
planos.
Displays de almacenamiento: Al igual que televisores y m onitores, estos dispositivos
son pantallas de rayos catodicos, pero dieren en ciertos aspectos tecnologicos.
Esencialm ente, la pantalla tiene cierta \mem oria" electrostatica que mantiene visibles
los elementos gracados con muy alta precision y sin la necesidad de refresco. Por lo tanto,
una imagen muy compleja a la cual se van agregando elementos en orden es idealm ente
representada por estos dispositivos. Un elem ento se representa \pintandolo" por medio
de una serie de recorridas del ca~non electronico. El borrado, sin embargo, no puede
hacerse en forma selectiva, por lo que no se puede alterar la posicion de un elem ento
sin tener que borrar y redibujar to dos los dem as. Sin embargo, su precision y
velocidad sin necesidad de memoria volatil los hace ideales para la representacion de
imagenes de radares.
12
C laudio
Delrieux
2.1. Dispositivos
Gracos
2.1.2
raster
Disposit ivos
de
Impre soras de matriz: Era hasta hace poco el dispositivo de im presion mas comun.
Recibe de la computadora la inform acion graca com o una secuencia de lneas, las
cuales va reproduciendo con una cabeza impresora (por m edio del golpe de martillos o el
ro co de tinta).
I mp re soras Laser: Recibe de la computadora la informacion graca como una
secuencia de lneas, las cuales alm acena en una m emoria local. Dicha mem oria es
utilizada para com andar la intensidad de un haz laser q ue recorre lnea por lnea el
papel, mientras es expuesto al contacto del toner. Donde el haz incide con gran
intensidad, el papel se dilata por el calor y absorbe el toner.
Monitore s: Se han popularizado enormem ente a partir del descenso en el precio de la
memoria volatil y el incremento constante en la calidad de las prestaciones (resolucion,
color, precision). Esencialmente se comportan de una manera similar a un receptor de
telev ision, excepto por el hecho de que reciben la sen~al de video y sincronism o en form
a directa de la computadora y no a traves de una portadora de radio. Al igual que
con las impresoras de matriz, la imagen se construye lnea por lnea, en sentido
horizontal primero (de izquierda a derecha) y vertical despues (de arriba aba jo). Debe
existir un refresco de la imagen en m em oria, la cual es recorrida por la tarjeta graca
de la computadora para producir las lneas de barrido. Por lo tanto, el elem ento esencial
en estos dispositivos es la tarjeta graca, la cual verem os en detalle mas adelante.
Los monitores mas poulares pueden tener resoluciones de hasta
1200 1024 (aunq ue este lm ite avanza da a da), con una cantidad de colores
limitada por las prestaciones de la tarjeta graca. Esto representa una calidad m as que
aceptable para la m ayor parte de las aplicaciones.
2.1.3
onitores
14
C laudio
Delrieux
2.1. Dispositivos
Gracos
CPU
Ar
bi
tro
Frame Bu er
6
?
Generador
de Video
Monitor
mo do se utiliza un segundo bus (llamado bus lo cal), norm alm ente de 32 bits en vez de 16,
con la velocidad del relo j externo del m icropro cesador (50M hz. en vez de 8.33) y con capacidad
de acceso directo a memoria (ver Figura 2.2). Este tipo de conguraciones permite una mejor
utilizacion del ancho de banda marginal de la memoria del frame buer, y por lo tanto, en
determinadas aplicaciones, como por ejemplo animaciones, la prestacion de un mismo
hardware aum enta en un orden de magnitud solam ente al mo dicar la conguracion de
acceso.
La evolucion del hardware graco en PC siguio esq uemas sim ilares, utilizandose prim
ero el port PCI y actualmente el AGP. Las tarjetas gracas PCI tienen una conguracion
similar a las tarjetas ISA dado que el port esta pensado para dispositivos genericos. Sin
embargo, el acceso es en 32 bits, a frecuencia de relo j externo, y en algunos casos con
posiblidades de acceso directo a memoria. El port AGP, por su parte, permite un acceso en 64
bits a frecuencia interna del m icro (400Mhz. en algunos casos) directamente al bus interno y al
cach/'e. Por lo tanto es esperable un rendimiento cientos de veces mayor que con las tarjetas
ISA.
Por otra parte, como veremos a lo largo de los distintos captulos, muchas de las
operaciones matematicas necesarias dentro de la Computacion Graca siguen un
procesamiento disciplinado que puede en muchos casos implementarse directamente en el
hardware de la tarjeta. Es por dicha razon q ue han surgido tarjetas aceleradoras por
hardware (PC I o AGP) que perm iten que una aplicacion se deslinde del trabaj o de ef ectuar
las transformaciones geometricas, pintado de polgonos, el m apeo de texturas, etc.
Recapitulando, la clave del funcionam iento de la tarjeta graca no esta en los
requisitos de memoria, sino en la estructura del generador de video. El generador de video
debe recorrer la memoria del buer de pantalla y entregar las lneas de barrido al monitor dentro
Computacion
Graca
15
16
C laudio
Delrieux
@@
CPU
R AM
@
Bu s Loc al
Generador
de Video
Fram
e
buer
@@
M
on
i
ort
Ta rjet a Gr
afica
Figur a 2.2 Tarjeta graca basada en tecnologa local
bu s.
Arbitro
Generador
de Barrido
Vert.
ireccio
n
Direccio
n
Lineal
Hor.
M
e
m
o
r
i
a Datos
Tabla
de Color
9
M
S incro >
o
=
n
>; i
t
- V id eo
ro
-
r
r
g
b
color a setear, y r , g, b son las componentes en el m odelo RGB del color. En los m odos
gracos VGA y super VGA, los parametros r, g, b son de tipo w ord, pero se truncan los
dos bit menos signicativos, dado que el rango ef ectivo de cada componente es de 0 a 63.
Esto perm ite denir
256 colores simultaneos de entre 256K colores denibles. Por lo tanto es conveniente utilizar
una aritmetica dentro de dicho rango para representar los colores, y multiplicar por 4 en el
mom ento de la llamada.
El manejo se simplica en el modelo true color, en el cual cada pix el tiene alocada la mem
oria para representar las com ponentes en RGB del color en q ue esta seteado (ver Figura
2.5). Esto representa triplicar el taman~o del buer de pantalla y el ancho de banda de la mem
oria aso ciada, lo cual tiene un costo bastante elevado, pero perm ite representar 16.7M colores
simultaneos Como ya se dijo, en algunos casos puede ser necesario el costo, pero norm alm ente
un m odelo com o el de la Figura 2.4 puede ser suciente.
2.2
Tec nicas
iscretizacion
de
A partir de este punto, y en lo que resta del Captulo, nos vamos a comprom eter con el modelo
de dispositivo de raster. Para conseguir independencia de dispositivo, entonces, es necesario
adoptar un conjunto de prim itivas y establecer una serie de metodos q ue permitan
representar dichas prim itivas en nuestro dispositivo de raster satisfaciendo un conj unto de
especicaciones.
2.2. Tecnicas de
Discretizacion
1 byte/pix el
frame bu er
Tabla de C
olores
n 1
n pixel = n by tes
r
...
g
...
b
...
rc
gc
bc
255
...
...
...
ultaneos
True Color
0
3i
3i+1
3i+2
ri
gi
bi
9
=
>
;
>
pixel i
3n 1
n pixel = 3n bytes
(ej: 10241024 pix el = 3M
bytes)
224 =16.7M colores
simultaneos
2.2. Tecnicas de
Discretizacion
0
0
max x
- y
x; y
t
max y
?
x
Figura 2.6 Sistema de coordenad as fsic o junto al espacio de la escena.
2.2.1
fsico
2.2.2
gracas
el
espacio
m axy] ,
la
de
con
escena
pantalla
es
maxx , ma xy2
(eucldeo)
un
N,
(x; y)
espacio
discreto
el cual
2
R2
en
a
correspondencia
traves
de
las
P rimitivas
Es muy difcil escoger un conjunto de prim itivas gracas que sea adecuado para la
representacion de todo tipo de entidades gracas. Sin embargo, el siguiente subconjunto en
la practica resulta suciente:
Puntos: Se especican a partir de su lo calizacion y color. Su discretizacion es directa,
com o se m enciono mas arriba.
Segmentos de recta: Son esenciales para la m ayor parte de las entidades. Se especican
a partir de un par de puntos que representan sus extrem os.
C ircunferenc ias: En algunos casos representar entidades curvadas con segmentos
poligonales puede ser indadecuado o costoso, por lo q ue en la practica las
circunferencias o crculos se adoptan com o prim itivas. Se especican con la posicion de
su centro y su radio.
Polgonos: Son indispensables para representar entidades solidas. Se representan a partir
de la secuencia de puntos que determ ina la poligonal de su perm etro.
2.2.3
izacion
Espe cicaciones de
una discret
2.2. Tecnicas de
Simplicidad y velocidad de computo:
Com o losDiscretizacion
metodos tradicionales de
discretizacion de prim itivas se desarrollaron hace tres decadas, en momentos en que
las posibilidades del hardware y software eran muy lim itadas, los resultados eran muy
sensibles al uso de memoria u operaciones aritmeticas complejas. Por lo tanto, los
metodos tienden a no depender de estructuras complejas y a ser directam ente im plem
entables en hardware especco de ba ja complejidad.
2.2.4
tizacion
Metodos de
discre
Dada una primitiva graca a discretizar, debemos encontrar los pix els que la representen
de la manera mas correcta posible. Para ello, lo m as adecuado es caracterizar
matematicamente a dicha prim itiva, de modo que su discretizacion pueda efectuarse en
forma sencilla.
Entre los diversos metodos que pueden plantearse destacamos los dos
siguientes:
Eval uar su e cuacion diferencial a diferencias nitas: Este metodo, denominado
DDA (discrete diference analyzer) consiste en plantear la ecuacion diferencial de la
prim itiva a discretizar, y luego evaluar dicha expresion a intervalos adecuados.
Analisi s del error: Estos metodos fueron desarrollados por Bressenham [18] y se
basan en analizar, dado un pixel que pertenece a la discretizacion de la primitiva, cual
es el proximo pixel q ue minimiza una determinada expresion que evalua el error
q ue comete la dis- cretizacion.
2.3
Discretizacion
Rectas
de
Segm ent os de
El analisis
de los metodos de discretizacion de rectas
comportamiento es- perado en determinados casos particulares.
suposiciones especcas que simplican el problema, pero que al
generalizar a todos los dem as casos por medio de sim etras. Dado
va de (x0; y0 ) a (x 1; y1), se supone q ue
parte de considerar
el
Dichos casos surgen de
mismo tiem po se pueden
un segmento de recta q ue
x = (x 1 x 0 ) 0,
y = (y1 y0) 0, y
x y .
Esto equivale a traba jar en el \octavo" del espacio de pantalla sombreado en la Figura 2.7,
donde el origen es el pix el que corresponde a la discretizacion del punto (x0 ; y0 ) y la zona
sombreada a los lugares donde puede ubicarse el punto (x1 ; y1 ).
2.3.1
DDA
Segm entos de
rect a
Como ya se mencionara, los meto dos DDA evaluan la ecuacion diferencial de la primitiva a
inter- valos nitos. En el caso particular de los segmentos de recta, la ecuacion diferencial es
@y
y
=
= m:
@x
x
El metodo busca encontrar una secuencia de n + 1 puntos tales q ue (x0 ; y0 )
= (x0; y 0); (x1 ; y1 ); ; (xn ; yn ) = (x1 ; y1 ). L a discretizacion de cada uno de ellos son los
pixels de la discretizacion del segmento. Esta propiedad, si bien es trivial, es de gran
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@
@
@@@@@@
@
1
, podem os pasar de un
n
" determina la \frecuencia" de muestreo del segmento. Un valor muy pequen~o determina
q ue muchas muestras produciran puntos que seran discretizados al mismo pix el. Por el
contrario, un valor muy grande determinara que el segm ento aparezca \punteado" en vez de
ser continuo com o corresponde. Un valor practico es elegir "x = 1 y por lo tanto n = x, es
decir, la discretizacion tiene tantos pixels com o longitud tiene el segmento en la variable q ue
m as vara (mas uno, dado q ue la secuencia tiene n + 1 puntos). Al m ism o tiempo es facil
ver que
" y =
y
= m:
x
Discretizacion
de Segmentos
a x en el ciclo e iterar mientras no sea menor q ue x1 2.3.
(simetra
B). Por ultimo,
si no sede
cumple
Rectas
q ue
x y, entonces es necesario intercambiar los roles de las variables x e y (simetra C).
Cualquier
combinacion de situaciones se puede resolver con combinaciones de sim etras (ver Figura 2.10).
(x 0; y0)
u
H
H
H H
H H
1
H H H 6? m
H H
H
H H
H H
pro cedu re l inea( x0,x 1,y0 ,y1:r eal; col: integ er);
var x,y ,m:r eal;
beg in
m := (y1-y 0)/( x1-x 0);
x := x0; y := y0;
w hile x<=x 1 do beg in
pu tpixe l(ro und( x),ro und( y),c ol);
x := x+ 1;
y := y+ m;
e nd;
end ;
Figura 2.9 Algoritmo D DA para segmentos de recta.
H H
H H
H H
H H
HH u
(x1 ; y1 )
A+B+C
@
A+B
@
@
A+C
@
@
B+C
2.3.2
Segmentos
Bressenham
de
rectas
por
En el algoritmo DDA para segmentos de recta es necesario computar sumas entre las variables
en punto otante, y ademas se requiere una div ision en punto otante para com putar la
pendiente. El merito del algoritm o que vamos a presentar consiste en q ue todas las
operaciones se realizan en aritmetica entera por m edio de operaciones sencillas, y por lo
tanto, su ejecucion es mas rapida y economica, y es de facil implementacion con hardware
especco [18].
El punto de partida del analisis es el siguiente. Si la discretizacion de los puntos
extrem os del segmento debe pertenecer a la discretizacion del segmento, entonces es
conveniente efectuar la llamada al algoritmo luego de discretizar los extrem os. Esto signica
q ue (x0 ; y0 ) y (x1; y1 ), y por lo tanto x y y son enteros. Luego, si p es un pixel q ue
pertenece a la discretizacion del segm ento, entonces en las condiciones particulares
mencionadas mas arriba, el proximo pixel solamente puede ser el ubicado a la derecha (E o
\hacia el este"), o el ubicado en diagonal hacia la derecha y hacia abajo (D o \en diagonal",
ver Figura 2.11).
La decision de ir hacia el paso E o D se toma en funcion del error que se comete en cada
caso. En este algoritmo se considera que el error es la distancia entre el centro del pixel
elegido y el segmento de recta, medida en direccion del eje Y positivo del espacio de pantalla
(es decir, hacia abajo). Si el error en p fuese cero, entonces al ir hacia E el error pasa a ser m
(la pendiente del segmento), y en D el error pasa a ser m 1 (ver Figura 2.12).
En general, si en p el error es e, la actualizacion del error es
Paso E
e := e + m
t
@
p @
@
R
b
e= 0
e=m
b ?
b
b b
b b
b b
24
C laudio Delrieux
bb
b b
b b
b b
e
b b
b?
b
e+m
b b
b ?b
bb
Paso D
e := e + m 1
Por lo tanto, la eleccion del paso E o D depende de que el valor absoluto de e + m sea o no m
enor q ue el valor absoluto de e + m 1. Expresado de otra manera, sea e el error en un
determ inado pixel. Si e + m > 0:5 entonces el segmento de recta pasa mas cerca del pixel D,
y si no, pasa m as cerca del pixel E (ver Figura 2.13).
Una de las economas de com puto del metodo proviene de poder testear el error
preguntando por cero. Es facil ver q ue si se inicializa el error en
eo = m
0:5;
entonces en cada paso hay que chequear e > 0 para elegir D. L a otra economa prov iene de
realizar m anipulaciones algebraicas para ef ectuar un computo equivalente pero en aritmetica
entera. Com o se testea el error por cero, multiplicar el error por una constante no afecta el
resultado. Por lo tanto, multiplicamos el error por 2 x. A partir de dicho cambio, se
constatan las siguientes igualdades:
y
e o = 2x(
0:5) = 2y x.
x
Paso E
e := e + 2y.
Paso D
e := e + 2(y x).
2.4
Discretizacion
unferencias
de
Circ
2.4.1
DDA
Discretizacion de
circunferencias por
Sea una circunferencia de radio r centrada en el origen y sea p = (x; y ) un punto que
pertenece a la m ism a. Entonces, la ecuacion diferencial de la circunferencia en dicho punto
(ver Figura 2.16)
es
26
Claudio Delrieux
@y
x
= :
@x
y
Computacion
Graca
2.4. Discretizacion de
Circunferencias
27
(y; x)
t
(x; y)
(y; x)
t
t(x; y)
@
@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
(x; y)
t
@
@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
(x@;
y)
t
@
@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@
@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@
t
t
@@@@@@@
@@@@
(y; x)
@@@@@
(y ; x)
@
@@
x k+ 1 = xk "yk
(2.1)
yk +1 = yk + "x k
" determ ina la \frecuencia" de muestreo de la circunferencia. Valores pequen~os
determinan un computo redundante, y valores muy grandes determinan un cubrimiento
desparejo. Un valor
practico es elegir "x = 1 y por lo tanto "y =y (ver Figura 2.17). El prim er pixel de la
x secuencia
es p0 = (r; 0), el cual pertenece a la discretizacion de la circunferencia y ademas se com
puta en
form a directa.
28
Es importante tener en cuenta que el sistema de ecuaciones 2.1 puede representarse como
Claudio Delrieux
xk +1
yk+ 1
1
"
2.4. Discretizacion de
Circunferencias
xk
"
;
1
yk
1
"
:
" 1 " 2
Esta transformacion representa en realidad una elipse y no una circunferencia, pero la ex
centricidad de la m ism a es del orden de " 2 y por lo tanto la diferencia es mas reducida. Utilizar
dicha expresion
Computacion
Graca
29
X X
X X
X X
X XX
t(x; y)
(y; x)
altera la evaluacion de yk
+1:
yk +1
= yk (1 " 2)
"x k yk +1 = yk "("yk
+ x k ) yk +1 =
yk
"x k+1 :
Por lo tanto, la recurrencia para com putar la discretizacion de una circunferencia centrada
en el origen con DDA q ueda m odicada a
x k+1 =
xk "yk
yk +1 = yk + "x k+1
De todas maneras, la desventa ja m as importante de este algoritmo es q ue debe realizar una div
ision en punto otante para cada paso.
2.4.2
izaci
Discret
C omo en el caso planteado para segmentos de recta, este metodo se basa en analizar el error
entre la verdadera circunferencia y su discretizacion. Si p pertenece a la discretizacion, el
prox im o pixel de la discretizacion solo puede ser S (\ir hacia el sur") o D (\ir en diagonal",
ver Figura 2.18).
El error (en este caso la distancia al cuadrado) de un pixel p = (x; y) a una circunf erencia
e= x + y
2
r :
Si elegimos el paso S entonces el proximo pixel es pS = (x; y + 1), y el error pasa a ser
eS = (x)2 + (y + 1)2 r 2 = e + 2y +
1:
Si elegimos el paso D entonces el proximo pixel es pD = (x 1; y + 1), y el error pasa a ser
e D = (x 1)2 + (y + 1)2 r 2 = e S 2x
+ 1:
La eleccion de un paso S o D dependera de cual error tiene menor
modulo: Si je + 2y + 1j > je + 2y + 1 2x + 1j
entonces D:
Teniendo en cuenta q ue tanto en D com o en S se incrementa y, entonces se actualiza el error a eS
antes de la comparacion.
Si jej > je 2x + 1j entonces D:
Por ultim o,
que
x > 0; x > y ),
entonces:
teniendo
en
cuenta
que
2x + 1
es
siempre
negativo
(recordar
Si 2e > 2x 1 entonces D:
2.5
Discretizacion de Polgonos
2.5. Discretizacion de
Polgonos
s x 1 ; y1
@
@
@
s
@
a a
@
a a
@
x 0 ; y0
a a
@
a a
a a
@
a a
@
a a
@
a a
@
a a
a a
@
a a
@
a a
@
a a
@
a a
a a
@
a a
@
a a
a a @
a a@
x 2; y2
Figur a 2.20 Conversion scan de un p olgono.
31
Computacion Graca
2.6. Ejercicios
2.6
Ejercicios
Computacion
Graca
>Es necesario mo
33
2.7
endada
Bibliografa recom
La m ayor parte de los traba jos que dieron origen a los algoritmos presentados en este
Captulo pertenecen a publicaciones virtualmente inaccesibles (ex cepto en colecciones de repri
nts de trabajos clasicos, ver por ejemplo [36]).
Una descripcion interesante de los dispositivos gracos puede encontrarse en los Captulos
2y
19 del libro de Newm an y Sproull [66], y en el Captulo 7 del libro de Giloi [40]. Una
descripcion mas mo derna puede encontrarse en el Captulo 4 del libro de Foley et. al.
[33]. Los interesados en conocer arquitecturas avanzadas para sistemas gracos pueden
consultar adem as el Captulo 18 del mismo libro. La discusion relacionada con la
correspondencia entre el espacio de los objetos y el espacio de pantalla esta inspirada en las
conclusiones de un traba jo de J im Blinn [12].
La descripcion mas directa de los algoritmos de discretizacion de segmentos y
circunferencias puede encontrarse en el Captulo 2 del libro de Newm an y Sproull. Aunque
dieren de la presentada aqu por adoptarse distintas convenciones, los desarrollos son
similares. En el Captulo 3 del libro de Foley et. al. es posible encontrar una detallada
descripcion de varios algoritmos q ue generalizan los presentados en este Captulo (por ejem
plo, la discretizacion de segmentos de un determinado grosor, o el \llenado" de polgonos con
patrones repetitivos). La conversion scan de polgonos es tratada en el Captulo 16 del libro
de Newman y Sproull.
34
C laudio
Delrieux
35
Computacio
n
Graca en Dos
Dimensiones
Computacion Graca
3.1
itivas
Estructuras de
Datos y Prim
En lo que sigue de este libro suponemos que existe un procedimiento p utpix el(x ,y,c ) y
que ademas es posible determinar el rango de las coordenadas de pantalla ma xx, maxy y el
rango de deniciones de colores numc ol. De esa manera podem os denir estructuras de datos
para manejar los elementos de pantalla:
typ e
axx;
xr es =
0..m
yr es = 0..m axy;
c ol = 0..n umco l;
Una ventaj a de manejar las entidades de esta manera es que la estructura de tipos nos
protege de com eter errores en la llamada de los pro cedimientos. Por ej emplo, podemos olv idar
el signicado de los parametros de llamada del pro cedimiento l inea (>Era (x 0,x 1,y 0,y 1) o
(x0,y0,x1,y1)?). Pero el procedim iento gra fica r linea recibe un segmento de lnea
especicado por dos puntos, y entonces no hay error posible. Por otra parte, si el punto o la
linea se van fuera del area gracable, la estructura de tipos nos avisa en tiempo de ejecucion
sin q ue se genere un error por invadir areas de m emoria no asignadas. L a form a de manejar
estos problem as sin producir un error de tipo sera expuesta en la seccion 3.4.
3.2
Transform aciones
Homogeneas
Co
ordenadas
38
C laudio
Delrieux
3.2.1
anes
Transform aciones
Para utilizar una entidad varias veces, es decir, para que ocurran varias instancias de una
entidad, es necesario hacerla \aparecer" varias veces con distintas transformaciones. Por
ejemplo, en la Figura
3.1 aparecen dos instancias de casa, cada una con una traslacion distinta. C ada elemento
de la
casa esta denido tambien con transformaciones de otros elementos, las cuales deben
concatenar se con la transformacion correspondiente a cada casa para obtener el resultado
nal. Por lo tanto, las transformaciones desempen~an un papel decisivo en los modelos de la
Com putacion Graca, en particular las transformaciones rgidas o lineales.
Como es sabido, la traslacion, rotacion (alrededor del origen) y escalam iento, conforman
una base funcio nal para las transformaciones rgidas en un espacio lineal. Es decir, toda
transform acion afn o lineal puede ponerse en terminos de una aplicacion de estas tres
operaciones.
y 0 = ey
y:
p = E p, es decir,
x0
y0
ex 0
0 ey
x
y
Del mismo modo puede representarse para rotar un angulo alrededor del origen:
0
cos sen
x
x :
0
p = R p, es decir, y0 = sen cos
y
Es un inconveniente q ue no pueda representarse la traslacion com o preproducto por una
matriz:
Computacion
Graca
39
40
C laudio
Delrieux
3.2.2
homogeneas
Coordenadas
Es necesario tener en cuenta que los espacios lineales (Eucldeos) son conjuntos de valores
vecto- riales cerrados ba jo sum a y multiplicacion escalar (ver Apendice B). Por lo tanto, los
puntos en estos espacios no tienen una representacion que los distinga. Una de las
confusiones mas no civas en la Computacion Graca se debe a q ue la representacion de un
pu nto y un vector en un espacio Eucldeo de n dimensiones puede hacerse con una n-upla de
reales, en particular, representando a un punto p con un vector que va del origen a p. Uno de
los problemas de esta confusion es que, si bien la sum a de vectores es independiente del
sistema de coordenadas (al estar los vectores \libres" en el espacio), la \suma" de puntos pasa a
depender de la eleccion particular del origen (ver Figura
3.2).
rp0 + q 0
BM
B
p+ q
B
r
y
y0 B
6
6 B
p
qB
B
r
*
r
BM
- x
r
B
B
B
r
B
- x0
Figur a 3.2 La \suma" de puntos esta mal d enid a en un espacio vectorial dado qu e
depend e de la ele ccion particular de un sistema de coordenadas.
r = sp + tq;
donde s + t = 1. Si adem as tanto t com o s son no negativos, entonces la combinacion
afn se denomina convexa porque el punto resultante pertenece al segmento de recta que va de
p a q. Una
s 0
p + q0
BM
B
B
p+ q
s
*
B
6
Recta Afn
s
qB
s
s
B
BMB
B
B
- B
B
B
Bs
-
Figura 3.3 La combin acion afn de puntos esta bien den ida e n un subespacio afn del
espacio vectorial.
inspeccion mas detallada nos permite ex presar el resultado de una combinacion afn del
siguiente mo do:
r = sp + tq = (1 t)p + tq = p + t(q
p);
la cual es una expresion conocida para representar un segmento en forma parametrica.
Recpro camente, todo espacio E de n dimensiones puede hacerse afn dentro de un
espacio vectorial V de n + 1 dimensiones por medio de un procedim iento denominado hom
ogenizacion. Para ello se considera q ue E esta \inmerso" dentro de V como un hiperplano
para un valor no trivial (distinto de cero) de una nueva variable h llamada variable de
homogenizacion. En la Figura
3.4 se muestra la hom ogenizacion del espacio R 2 com o (hiper)plano h = 1 de un espacio
vectorial
R 3. Todo elem ento del espacio hom ogeneo debe considerarse proyectado sobre el plano h = 1.
De esa manera, la sum a de puntos se transforma en una combinacion afn.
Es importante observar q ue en un espacio afn de estas caractersticas la representacion
de un punto pasa a ser
3
x
p=4 y 5;
1
h
6
sp + q
[0; 0; 1]
s
q
3
h= 1
p s
3.2.3
Podemos solucionar el inconveniente mencionado en la subseccion 3.2.1 por m edio del uso
de co ordendadas homogeneas. De esa manera, una m atriz de escalamiento es:
2
3 2
32
3
x0
ex 0 0
x
p0 = E p, es decir, 4 y0 5 = 4 0 e y 0 5 4 y 5
1
0
0 1
1
Del mismo modo puede representarse la rotacion
2 0 3 2
x
cos
0
4
y0 5 = 4 sen
p = R p, es decir,
1
0
32
3
sen 0
x
cos 0 5 4 y 5 ;
0
1
1
y tambien la traslacion x0 = t x + x; y 0 = ty + y:
2 0 3 2
x
1
0
4
p = T p, es decir,
y0 5 = 4 0
1
0
0
1
0
32
3
tx
x
ty 5 4 y 5 :
1
1
3.3
Represent ac ion
ructurada
Est
Podemos ahora retornar a nuestro ejem plo de escena m ostrado en la Figura 3.1. La
representacion de objetos se realiza por m edio de una estructuracion jerarquica en forma
de grafo, de modo tal que cada objeto se com pone de una denicion y una transformacion \de
instancia" (es decir, donde debe aparecer el ob jeto denido), y cada denicion es una
coleccion de objetos. En la Figura 3.5 es posible ver parte de la estructura necesaria para
denir la escena de la Figura 3.1.
Es im portante tener en cuenta q ue si bien las estructuras son recursivas (un objeto es
un par denicion- transformacion, y una denicion es una coleccion de objetos), las m ism
as terminan indefectiblemente en objetos primitivos, en este caso, cuadrados. Para gracar la
escena, entonces, es necesario recorrer la estructura esc ena. Para cada objeto apuntado por la
m ism a, se guarda la transformacion en una pila y se recorre recursivam ente. La recursion
termina cuando la denicion no es una estructura de objetos sino un cu ad, en cuyo caso se
transforman los cuatro vertices del mismo por el preproducto de todas las matrices apiladas y
se gracan los segm entos de recta que los unen.
En la Figura 3.6 se observan las declaraciones de tipos y los procedim ientos q ue
implementan estos algoritmos.
Es importante notar que la denicion de un objeto se
realiza por medio de registros variantes, de m anera de poder guiar la recursion.
Una forma de hacer este computo mas eciente es utilizar una matriz de \transform
acion corriente", a la cual se multiplica cada una de las matrices que se van apilando.
Cuando
se agota una rama de la recursion es necesario desapilar la ultima
transformacion y recalcular la transformacion corriente. El trozo de codigo de la Figura
3.6 ilustra una implementacion posible de estas ideas, m ientras que en la Figura 3.7 se
muestra parte de la inicializacion de la estructura de informacion para representar una escena
com o la de la Figura 3.8.
u - cuad
?
T
cas a1
pu
c asa
erta
?
T
u
?
T
cua d
cua d
?
T
u
cas a2
u
te cho
u
cua d
?
Figur a 3.5 Estructuras de datos que repre sentan la escena de la Figura 3.1.
Es m uy importante destacar la exibilidad que tiene este esq uem a para el manejo de las
escenas. Mo dicar la transformacion de una de las instancias de ca sa m odica todo lo q ue
se graca para dicha casa, y m odicar la transformacion que dene uno de los elementos de la
casa mo dica com o se graca el mismo en tod as las casas (ver Figura 3.8).
Es necesario tener en cuenta que las matrices homogeneas de transformacion norm alm
ente son inversibles en forma muy sencilla (la inversa de la escala es escalar por la inversa, la
inversa de la rotacion es rotar por el angulo inverso, y la inversa de la traslacion es
trasladar por la distancia invertida). Esto hace que la actualizacion de la transform acion
corriente pueda hacerse posmultiplicando por la inversa de la matriz q ue se saca de la pila.
3.4
Windowing y Clipping
L a representacion estructurada de entidades gracas perm ite una cierta abstraccion del
dispositivo graco de salida, independizandonos del tipo de primitivas q ue soporta y de la
tecnologa del m ism o. Sin embargo, aun q ueda por resolver el problema del rango de valores
de los pixels representables. Puede suceder que los gracos que se acomodaban bien a la salida
en una situacion particular, al cambiar de resolucion se vean de m anera inadecuada. Esto
puede empeorar aun mas si nuestra aplicacion pro duce una salida graca sin utilizar la
3.4.porWmedio
indowing
yC
pantalla com pleta, por ejem plo en un sistem a cuya interfase trabaja
de ventanas.
lipping
procedure graficar;
var
cu:cuad;
t1, ... :transf; o1, ...
:objeto;
casa,sitio,puerta,escena:defi
;
begin
{inicializacion del cuadrado}
cu[0].x := -1; cu[0].y := -1; cu[0].w := 1;
...
{inicializacion objeto 1}
o1.t: =@t1;
o1.c:= @cu;
t1[0][0]:=2.2; t1[0][1]:=0;
t1[0][2]:=0;
...
{inicializacion objeto 2}
o2.t: =@t2;
o2.c:= @cu;
t2[0][0]:=2.2; t2[0][1]:=0;
t2[0][2]:=0;
...
{definicion de sitio como conteniendo objetos 1 y 2}
sitio[0]:=@o 1; sitio[1]: =@o2; sitio[2]:=nil;
{inicializacion objeto 3: sitio con su transformacion}
o3.t: =@t3;
o3.d:= @si tio;
t3[0][0]:=1;
t3[0][1]:=0;
t3[0][2]:=0;
...
{inicializacion objeto 4}
o4.t: =@t4;
o4.c:= @cu;
t4[0][0]:=1;
t4[0][1]:=0;
t4[0]
[2]:=0;
...
{idem objetos 5 y 6}
{definicion de puerta como conteniendo objetos 4, 5 y 6}
puerta[0]:=@ o4; puerta[1]:=@ o5; puerta[2]:=@ o6; puerta[3]:=nil;
{inicializacion objeto 7: puerta con su transformacion}
o7.t: =@t7;
o7.d:= @pu erta;
t7[0][0]:=1;
t7[0][1]:=0;
t7[0][2]:=0;
...
{idem para definicion de ventana}
{definicion de casa como conteniendo objetos 3, 7 y 9}
casa[0]: =@o3;
casa[1]:= @o7;
casa[2]:= @o9; casa[3]:=nil;
{inicializacion objeto 10: casa con su transformacion}
o10.t:=@ t10 ;
o10.d:= @cas a;
t10[0][0]:=100; t10[0][1]:=0;
t10[0][2]:=300;
...
{inicializacion objeto 11: casa con otra transformacion}
o11.t:=@ t11;
o10.d:= @cas a;
...
{definicion de escena como conteniendo objetos 10 y 11}
escena[0]:=@ o10;
escena[1]: =@o1 1;
escena[2]:=nil;
{inicializacion objeto 12: escena con su transformacion}
o12.t:=@ t12 ;
o12.d: =@e scen a;
...
graf_obj(o11,identidad);
end;
Figur a 3.7 Parte d e la inic ializacion de las estruc turas nec esarias p ara representar la
escena de la Figura 3.8.
3.4.1
Windowing
Las aplicaciones en Computacion Graca trabajan en sistem as de coordenadas adecuados
para cada caso particular. Por ejempo, un histogram a meteorologico puede estar en un
sistem a de co ordenadas en milmetros de lluvia vs. tiem po. El dispositivo de salida, por su
parte, traba ja en su propio sistema de coordenadas fsico. Para lograr una independencia de
dispositivo, es necesario traba jar en un espacio que tenga un sistema de co ordenadas norm
alizado. Por dicha razon se dene el sistema de coordenadas del mundo, dentro del cual la
porcion visible de la escena es la contenida en la ventana (en algunos casos se sugiere utilizar
una ventana normalizada 0.0|1.0 en x e y, denom inada NDC, Normalised Device
Coordinate, garantizando un estandar graco).
Sean x wi y x wd los lmites en x (izq uierdo y derecho respectivam ente), y ywa y ywb los
lmites en y (superior e inf erior respectivamente) del window. Dicha ventana debe ser mapeada
al subcon- junto de la imagen denominado viewpor t denido en el sistem a de co ordenadas de
la pantalla (ver Figura 3.9), cuyos lm ites son x vi y x vd para x (izquierdo y derecho
respectivamente), y yva y yvb para y (superior e inferior respectivamente). Por lo tanto, es
necesario encontrar los parametros de una transformacion de windowing que lleva un punto
pw del window a un punto pv del v iewport.
Po demos encontrar dichos param etros planteando semejanzas entre segmentos.
ejemplo, para la coordenada x de un punto pw en el w indow es posible encontrar
xw x wi
x v xv i
Por
xw d xw i
xv d x vi
xv i
yv a
yw a
pw
@@
xv d
viewp ort
window
pv
@u
@
yw b
xwd
xw i
yv b
de donde se sigue
xv =
L lam ando a al factor
constante
(x w xwi)
(x v d x v i) + x v i:
(xwd x wi)
(x v d x v i )
obtenemos
(xw d x w i)
xv = (x w xw i)a + x v i = a xw + b;
donde b = xv i ax w
i.
De haber utilizado el sistema NDC, la ex presion se simplica a
x v = x w(x vd x v i) +
x v i:
Por ultim o, es necesario discretizar el punto obtenido para transformarlo en pixel (por m edio
del
r ound de xv ).
Es necesario enfatizar un punto de gran im portancia en el analisis de la eciencia de los
algorit- m os utilizados en Com putacion Graca. Todas las primitivas que hem os utilizado
son invariantes frente a las transform aciones que se utilizan. Esto garantiza que es posible
aplicar to das las trans- form aciones (w indowing includa) a los puntos que denen a una
entidad graca, y luego aplicar la discretizacion sobre los puntos transformados. Es decir,
conmutan las operaciones de transform ar y de discretizar. De no haber sucedido as, no
hubiesemos tenido otro remedio que discretizar en el espacio de la escena, y luego transform ar
cada punto de la discretizacion, lo cual es evidentem ente de un costo totalmente inaceptable.
3.4.2
Clipping
1001
0001
p5r
t B
A t
r
p4 r
p0
p
1
0101
1000
1010
rp3
0000
r
0010
0100
0110
r
p2
Figura 3.10
directa de realizar esta tarea es modicar los algoritm os de discretizacion de primitivas para
que utilizen las coordenadas del viewport (por ejem plo, denidas con variables globales) y
graq uen un pixel solo si esta dentro del m ism o.
pro cedu re l inea cl ip(p 0,p1 :punt o;c:
col) ;
...
if (xvi <=x) and (x<=xvd) and
g
( yva<=y) a nd ( y<=y vb)
g
t hen putpi xel( x,y, col);
...
end ;
f xvi , xvd , yv a, y vb
f son var iable s gl obal es
Es muy probable que un m ecanismo de este estilo este im plem entado dentro de la tarjeta
graca para proteger el acceso a lugares de memoria inadecuados cuando se reclama un putp
ixel fuera del area de pantalla. De todas maneras, es facil ver que si gran parte de nuestra
escena esta fuera del window, un algoritm o por el estilo perdera cantidades de tiempo enorm
es chequeando pix el por pix el de entidades gracas q ue caen fuera del area gracable.
Una tecnica mucho m as practica fue propuesta por Cohen y Sutherland para el
clipping de segm entos de rectas. La losofa subyacente es clasicar los segmentos como
totalmente visibles o totalmente invisibles (en ambos casos no hay q ue aplicar clipping!).
Aquellos q ue escapan a la clasicacion son subdivididos, y luego se clasican los subsegm
entos resultantes.
La clave del meto do esta en etiquetar los pixels ex tremos de los segmentos con un
cuadruplo de booleanos. Cada uno de ellos es el resultado de preguntar si dicho ex tremo esta
fuera del view port por exceder alguno de sus cuatro lm ites, en un orden arbitrario. En la
Figura 3.10, por ejemplo, se observa como quedan etiq uetados los pix els extremos en
funcion del area de pantalla en que caen, al ser etiquetados en el orden originalm ente
propuesto por los autores (yv a,yvb ,xvd ,xvi ). El view port esta delim itado con una ca ja
punteada.
Podemos ver que el segmento de recta que va de p 0 a p1 cae totalmente dentro del viewport,
y por lo tanto cada pixel de su discretizacion puede gracarse en forma incondicional. En
cambio, el segm ento que va de p2 a p3 cae totalmente fuera del area gracable, y por lo tanto
ninguno de sus pixel debe gracarse. Una situacion mas compleja ocurre con el segm ento
que va de p4 a p5 , dado que tiene partes gracables y partes no gracables.
L as etiq uetas de los pixels ex tremos del segmento perm iten clasicar estos tres casos de m
anera sencilla:
Si el or de ambos extrem os es cero, el segm ento es totalmente gracable.
Si el and de ambos extremos no es cero, el segm ento no es gracable.
En todo otro caso el segm ento puede tener partes gracables y partes no gracables.
En el segmento de recta que va de p0 a p1, ambos ex tremos estan etiquetados con 000 0 y
por lo tanto estam os en el primer caso. En cambio, en el segmento que va de p2 a p3 tiene
etiquetas 0010 y 0110 y por lo tanto estamos en el segundo caso. Con el segmento que va de
p4 a p5 tenem os etiq uetas 0 001 y 1000 , cuyo or no es cero y cuyo an d es cero, por lo q ue
estamos en el tercer caso. Aqu es necesario subdividir el segmento y aplicar recursivamente a
cada subsegmento.
Para subdividir un segmento es posible encontrar la interseccion del mismo con alguno de
los cuatro \ej es" del viewport, dado que todo segmento parcialm ente visible intersecta por lo m
enos a uno de dichos ejes. Por ejemplo, se subdivide el segmento en el punto A, obteniendose un
segmento de p4 a A (totalmente fuera del v iewport) y otro segmento de A a p5 parcialmente
gracable, q ue se puede subdividir en B en dos segm entos, uno totalmente fuera del view port
y otro totalm ente dentro. Otra estrategia, que algunos pro claman mas rapida, consiste en
subdiv idir los segmentos por su punto m edio, el cual es sencillo de encontrar com o prom edio
de sus extrem os. Esta form a de subdividir es analoga a una busqueda binaria, y por lo tanto
la cantidad de subdivisiones es del orden del logaritm o de la longitud del segmento de recta.
3.4.3
L a \t ubera" de
gracos
pro cesos
C orresponde realizar en este punto una peq ue~na revision del captulo para tener una v
ision in- tegrada de los distintos procesos involucrados. El punto de vista mas importante
para tener en cuenta es que se denen las entidades gracas como compuestas por
primitivas discretizables, cuyos parametros geom etricos son puntos. Por ejemplo,
describimos una escena com o un conjunto de cuadrados transformados, y cada cuadrado es un
conjunto de segmentos de recta uniendo los vertices del m ism o. Por lo tanto, la tarea esencial
del sistema graco es indicarle al mecanismo de discretizacion la ubicacion de dichos
puntos.
De esa manera, po dem os pensar q ue los procesos del sistema graco se ubican en una
\tubera", q ue va tomando puntos de la denicion de las entidades gracas, los va transform
ando por las diver- sas transformaciones que ocurren, y los deposita en los algoritm os de
discretizacion de prim itivas. A dichos procesos se agrega lo visto en esta seccion, es decir la
transformacion de window ing q ue relaciona el sistema de coordenadas del mundo con el
sistema de coordenadas de pantalla, y el clipping de las partes no gracables de la escena.
Tambien es necesario agregar una transform acion mas, denominada transformacion del
mundo, q ue lleva a los objetos del sistema de coordenadas de la escena al sistem a de coordenadas
del mundo en el cual esta denido el window (probablemente en NDC). Esta ultima
transformacion es tambien importante porque permite alterar la ubicacion y taman~o de t
oda la escena, para realizar efectos
Co ords.
abstractas
Modelos
geometric
os
abstractos
?-
C oords.
de la
escena
Transform
a- ciones
de
instancia
?-
C oords.
de
pantalla
Windowing
-
?-
Co ords.
del mundo
Transformacion del
mundo
?-
Coords. del
viewport
Clipping
- ?
Pixels
Algoritmos
basicos de
?
discretizacio
n
En la Figura
3.5
Implem entacion de
Grac os
3.11 podemos
ver como se
Paquetes
51
Funci ones pri mitivas gracas: Son las entidades gracas mas sencillas, en funcion de
las cuales se estructuran todas las demas. Por ejemplo las funciones
52
C laudio
Delrieux
Computacion
Graca
53
3.6. Ejercicios
3.6
Ejercicios
1. Mo dicar los algoritm os del captulo anterior para utilizar los tipos de datos denidos en
este captulo.
2. Mo dicar los mismos algoritmos para utilizar las primitivas provistas por el
compilador.
Com parar los resultados.
3. Implementar la representacion de una escena con entidades gracas estructuradas.
Gracar la m ism a modicando las transform aciones de instancia y la transformacion del
m undo.
4. Implementar las rutinas de window ing y clipping. Gracar las escenas del ejercicio
anterior en una ventana que m uestre parte de la escena. Gracar las m ism as escenas
con toda la pantalla como viewport, sin y con clipping. Evaluar los tiempos.
54
C laudio
Delrieux
3.7
endada
Bibliografa recom
54
C laudio
Delrieux
55
Aproximacion
e Interpolacion
de Curvas
Computacion Graca
4.1
iones
Motivac
Hasta ahora hem os visto como elaborar gracos a partir de los com andos gracos mas
comunes en un lengua je de program acion (el punto y el segm ento de lnea recta). Estas
primitivas son sucientes en el sentido de que cualq uier otra construccion geometrica puede
ser convenientemente aproximada con puntos y segm entos, hasta el punto de ser indistinguible
para una resolucion graca dada. Muy pronto se comprendio en la C omputacion Graca
que las tecnicas de representacion de objetos estan muy lim itadas en las posibilidades
geometricas de las entidades gracas que se pueden m odelar y gracar.
Esencialmente, los modelos basados en la representacion de pu nt os destacados, los cuales
son unidos entre s por aristas, tienen la venta ja de q ue to das las operaciones
involucradas en la gracacion, excepto el clipping, se realizan por m edio de la transform
acion de dichos puntos. Los mismos son posteriormente unidos entre s por medio de
algoritmos ecientes de discretizacion de de segmentos de recta. Abandonar esta losofa de
traba jo implica un aum ento de varios ordenes de m agnitud en el costo de procesamiento.
Po demos describir un objeto determinado {una cuadrica, por ejemplo{ por medio de un
sistema de ecuaciones, Esto implicara que debemos muestrear dicho sistem a de ecuaciones
una cantidad suciente de veces para obtener un resultado graco adecuado, procesando luego
cada muestra por la m ism a tubera de transformaciones. Por otra parte, si dicho objeto ocupa
una porcion peque~na o muy grande de la pantalla, este esquem a de representacion permite
relacionar la cantidad necesaria de muestras para producir un resultado adecuado con el
taman~o o porporcion q ue el objeto o cupa en la pantalla.
Sin embargo, m antenernos dentro del m odelo de puntos y vertices puede tener grandes
desven- tajas a la hora de representar objetos con geometras mas variadas. Por ejemplo, para
representar objetos cuya descripcion ecuacional se desconoce, se puede utilizar un conjunto
determinado de puntos que conformen un \cuadriculado" del mismo. Dichos datos pueden
provenir de un scan- ner, de muestras, o de simulaciones procedimentales. Esto presupone
de por s un com prom iso com plejidad- calidad, es decir, representaciones mas eles
implican un mayor costo en tiempo y memoria.
En esta representacion \poligonal", podemos elegir un buen compromiso para garantizar
una apariencia adecuada del objeto gracado
en circunstancias normales.
Pero al
representarse el mo delo a muy grandes escalas, su naturaleza poligonal se volvera
evidente, pudiendo inclusive
\desaparecer" el objeto si en su proyeccion en la pantalla no aparece ningun vertice o
arista. Y
por el contrario, si la escala es muy peq uen~a, el objeto o cupa una parte reducida de la
pantalla pero para ser gracado requiere procesar la misma cantidad de puntos y aristas.
Pero no es esta la desventa ja m as importante de una representacion de objetos por
medio de polgonos. A com ienzos de la decada del 60 ya era posible comandar por com
putadora las maq uinarias necesarias para producir piezas en madera, plastico o acero, en lo
que se denomina Computer Aided Manufacturing (CAM) o manufactura asistida por
computadora. Dichas piezas pueden ser luego utilizadas en el desarrollo industrial, com o por
ejem plo la matricera o estam- pado de carroceras de autom oviles. Para ello es necesario
representar la forma de dichas piezas de mo do q ue la ejecucion del program a pro duzca el
resultado adecuado.
Con la representacion poligonal podemos llegar eventualm ente a
obtener una estructura de datos adecuada, pero, como puede suceder, si se requieren cambios o
modicaciones de ultimo mom ento, entonces es necesario acom eter la trabajosa tarea de
editar punto por punto en la base de datos q ue representa los polgonos.
56
C laudio
Delrieux
4.1. Motivaciones
Los sistemas com erciales se hicieron sensibles a estas dicultades. Los utilitarios de
dibujo y disen~o graco com enzaron a incluir la posibilidad de traba jar con crculos, arcos y
conicas, mientras
Computacion
Graca
57
C laudio
Delrieux
4.1.1
os
Especicaciones y requisit
Las curvas que buscamos deben tener ciertas propiedades geometricas que es necesario
especicar con claridad, del m ism o mo do que lo hicim os en el Captulo 2 con los metodos
de discretizacion. Como ya mencionaramos, la descripcion de estas entidades se realiza
por medio de puntos de control. La secuencia de puntos de control, unidos por segm entos
de rectas, se denomina grafo de control. Podemos m encionar, entre otras, las siguientes
especicaciones en el caso de curvas, aunque no es difcil extrapolar los requisitos para
supercies.
Interpolacion o aproximacion: Dado un conjunto de puntos de control, es posible q ue la
curva resultante pase por todos ellos (ver Figura 4.1(a)). En dicho caso el meto do que
encuentra la curva a partir de los puntos de control se denom ina metodo de
interpolacion. Puede suceder, en cambio, que la curva normalmente no pase por los
puntos, ex cepto tal vez por los puntos ex tremos (ver Figura 4.1(b)). Entonces estamos
frente a un metodo de aproxim acion.
Invariancia afn: Esta propiedad es indispensable si buscamos m antenernos dentro del
\modelo de tubera", con su eciencia computacional asociada. Basicamente, se espera
q ue sea indis- tinto aplicar una transformacion afn al grafo de control y luego
aproximar (o interpolar) una curva sobre el mismo, o aprox im ar una curva sobre el grafo
original y luego transform arla. Dicho de otra manera, las operaciones de aprox imar (o
interpolar) y de transformar co nmu - tan. Esta propiedad permite garantizar no solo que
la apariencia de una curva aprox im ante no vara si se la traslada, rota, etc., sino
ademas que es correcto encontrar un conjunto de puntos sobre la curva y aplicarle el
m ism o procesamiento que a las dem as entidades de la escena.
Entidade s mul tivaluadas: Si las curvas aproximantes son de la forma y = f (x) entonces
estan lim itadas a no poder representar entidades multivaluadas (ver Figura 4.2). Esta
limitacion es intolerable, dado que la mayor parte de las curvas o supercies tienen
caractersticas geometricas de esta naturaleza. Ademas, la representacion debe ser
necesariamente indepen- diente del sistem a de coordenadas.
Disminucion de variacione s: El grafo de control \sugiere" la form a general de la curva,
pero localmente esta podra tener variaciones u oscilaciones (ver Figura 4.3(a)). Esto es
4.1.2
La
parametrica
represent acion
La clave para poder satisfacer los requisitos planteados m as arriba consiste en suponer que la
curva resultante de aprox imar o interpolar el grafo de control es un conjunto de funciones
parametricas, donde el parametro u vara dentro de un intervalo cerrado (usualmente u 2
[0; 1]). Por ejemplo, para una curva en el espacio podemos encontrar tres funciones fx (u), fy
(u), y fz(u) que gobiernen la posicion de un punto sobre la curva para un valor dado de u.
8
< x(u) = fx (u)
y (u) = fy
C (u ) =
: (u) z(u) = f
z
(u)
En principio no hay nada que lim ite la form a que pueden asum
embargo, desde el punto de vista de la C omputacion Graca,
evaluacion de las mismas sea estable, economica y robusta. Otro de
entonces, es que dichas funciones norm alm ente son polinomios de grado
8
0
< fx (u) = cxn u n + xcn 1u n1 + +x c 1 u +
x c
0
1
C (u) =
f (u) = u +
u
+ + cy u + cy
n n
n 1 n 1
c
c
y
y
y
:
1
0
fz (u) = zcnu n +z cn1 un 1 + +
z c u z+ c
El grado y los coecientes de dichos polinom ios se extraen de la ubicacion de los puntos
de control. Por lo tanto, los meto dos de interpolacion y aproximacion tienen como objetivo
encontrar las funciones fx (u), fy (u), y fz(u) a partir de los datos geometricos de dichos
puntos.
4.2
Int erpolac ion
Curvas
de
Los metodos de interpolacion de curvas fueron por primera vez estudiados en el analisis m
atematico y se utilizan en la actualidad en el calculo numerico. Su aplicacion en la C
omputacion Graca, sin embargo, es muy limitada dado que en los ultimos 20 a~nos se
desarrollaron tecnicas mas especcas para dicho ambito. De todas m aneras, las ideas
basicas y terminologa utilizadas en los mo delos de aprox im acion de curvas se apoyan en
los m odelos de interpolacion. Por dicha razon es que dedicaremos una Seccion para
describir brevem ente los metodos de Lagrange y de Hermite para interpolar puntos.
4.2.1
Inte rpolacion de
Lagrange
Curvas de
f (x) =
Li(x)yi
;
i=0
donde
Li =
(x x0 ); (x x1 ); ; (x xi1 ); (x x i+ 1); ; (x xn )
:
(x i x0 ); (x i x 1); ; (x i x i1 ); (xi x i+1 ); ; (x i x n)
expresion q ue es
xx x 1
ident f
ica a (x)
=
x0 x 0
y0 +
x x
1
x1
y1;
4.2. Interpolacion de
Curvas
x x
f (x) = y0 + (y1 0y0 )
x
:
0 x1
Es decir, para un par de puntos de control, el interpolante de Lagrange coincide con el segmento
de recta que une a dichos puntos. Es posible dem ostrar que el interpolante de Lagrange siempre
ex iste
Figura 4.5 I nterpolacion de una secuencia de puntos de control por medio del
interpolante de Lagran ge.
y es unico, para un n nito, y que es el unico polinomio de grado n que satisface el problem
a de interpolar f (xi ) = yi. El procedimiento de la Figura 4.4 muestra una implementacion del
metodo, el cual es utilizado en la Figura 4.5 con un grafo de control dado.
control, las cuales se vuelven de m ayor am plitud cuando n aumenta o cuando se altera la
posicion de un punto de control (ver Figuras 4.5 y 4.6). Es decir, al m odicar o agregar un
punto de control para mejorar la interpolacion, en realidad lo que ocurre es que aumentan las
oscilaciones.
4.2.2
it e
Una solucion posible para el problema de las oscilaciones es la propuesta por Hermite.
En Hermite, la interpolacion se realiza entre pares sucesivos de puntos de control, de
m odo q ue no solo los valores son interpolados en los nudos, sino tambien un cierto
numero de derivadas. Por ejem plo, para interpolar una curva plana C i(u) q ue pase por pi
= (x i; yi) y por pi+1 = (x i+1; yi+ 1), con una determinada derivada p_i en el primer punto y
con una derivada p_i+1 en el segundo, necesitam os expresar a las funciones fx (u) y fy(u) como
polinomios cubicos en u. Esto es as dado q ue tenemos, para cada uno de ellos, cuatro
\datos" (las posiciones y derivadas al comienzo y al nal de la curva), y por lo tanto podem
os encontrar cuatro \incognitas" (los coecientes del polinom io).
Es decir, a partir de los datos de posicion (xi ; yi), (x i+1; yi+1 ), y de derivada
(x_ i; y_ i), (x_ i+1 ; y_i+1 ), existen dos unicos polinomios fx (u) y fy(u) tales q ue el interpolante
de Herm
f (u) = c 3 u3 + c2 u 2 + c1 u + c0
ite
x
x
x
x
x
C(u) =
fy (u) = c3 u 3 +0 c 2 u2 + c1 u +
c y
y
y
y
es un segmento de curva plana que pasa por los puntos con las derivadas establecidas.
Si bien los datos de posicion surgen de una m anera relativamente directa del problema
de disen~ o, no sucede lo mismo con los datos de derivada. Si querem os encontrar el modelo
de un objeto cualquiera, es posible estimar la posicion de un punto dado y de la pendiente en
el m ism o, pero la magnitud de la derivada puede ser difcil de estimar. Por lo tanto, trabajar
con estim adores de derivadas puede ser una tarea un tanto artesanal.
Para encontrar los co ecientes de los polinomios debem os primero asignar un dominio para
el parametro u. Normalm ente se utiliza u 2 [0; 1], con lo cual por ejemplo fx (0) = x i, fx (1)
= xi+1 , y tambien f_x (0) = x_ i, etc., y tambien podemos ex presar por ejemplo C i(0) = pi
y C_ i (1) = p_i+1 .
Adem as, Ci (1) = C i+ 1(0), etc. Esta asignacion de dominio para el param etro es
arbitraria, pudiendose encontrar una formulacion equivalente para cualquier otra asignacion
no trivial.
Po demos ahora expresar a los polinomios de Hermite como pro ducto escalar de un vector (la)
de funciones de u por un vector (columna) de coecientes:
u3
u2
2 3 3
cx
6 c2
1 4 1x 7
5:
cx
0
cx
(4.1)
u3 u2 u 1
y el vector de coecientes determina \las coordenadas" de fx (u) dentro de dicho espacio.
Esta base funcional es denominada la base polinomial, en este caso para funciones de orden
cubico, pero pueden existir otras bases. De hecho, en las Secciones siguientes utilizaremos
otras fam ilias de bases funcionales mas adecuadas que la base polinomial para la
interpolacion y aprox imacion de curvas.
Es posible expresar a las derivadas de la curva de una m anera similar:
2 3 3
cx
c2 7
3 2
2
1
2
f_6
3u
2u 1 0 x
:
x (u) = 3c u + 2c u + c + 0 =
cx1
c0x
Podemos ahora expresar todas nuestras restricciones de una m anera hom ogenea:
2
3
c x3
6 c2 7
fx (0) = c3 0x3 + c2 0x2 + c1x0 + c 0x = 03 02 0 1 4 c x1 5
x
c 0x
2 3 3
cx
6c2 7
fx (1) = 1 1 1 1 4 1x 5
cx
c 0x
2 3 3
cx
6 c 2 7
fx_ (0) = 0 0 1 0 4 1x 5
cx
c 0x
2 3 3
cx
6 cx2 7
_
f x (1) = 3 2 1 0 4 c1 5 :
x
c0x
Por n, podem os representar todas las restricciones en un unico sistem a de ecuaciones:
2
3 2
fx (0)
0 0 0 1 3 2 c3 3
6 fx (1) 7 6 1 1 1 1 7 6 cx2 7
6
x
7
4 f_x (0) 5 = 4 0 0 1 0 5 4 c1x 5 :
3 2 1 0
c0x
f_x (1)
Por lo tanto, para encontrar el arreglo de coecientes debemos encontrar la matriz inversa,
deno- m inada matriz de Herm ite M H :
2
0
6 1
MH = 4
0
3
0
1
0
2
0
1
1
1
3 1 2
1
1 7
6
5 =4
0
0
2 2
3
3
0
0
1
0
1
2
1
0
3
1
1 7
5:
0
0
Figur a 4.11 Interpolacion de Hermite de l mismo grafo de c ontrol que la Figura 4.7
modicando las restricciones d e derivadas en el cuarto pu nto de control.
4.3
L os modelos de interpolacion de curvas que v im os en la Seccion anterior cum plen con el req
uisito de encontrar una curva que pase por una secuencia de puntos de control obedeciendo
ciertas restricciones geometricas. Los resultados, sin embargo, son insatisfactorios desde el
punto de vista del CAD y del m odelado de primitivas gracas en general. El m odelo para
construir curvas q ue veremos en esta Seccion, denominadas cu rvas de Bezier es el prim er
meto do de aproximacion desarrollado exclusivamente para los objetivos de la Computacion
Graca, principalmente en las compa~nas fabricantes de autos en Francia, durante los
comienzos de la decada del 70. De alguna m anera, las curvas de Bezier com parten con los
polinomios de Lagrange el hecho de que todos los puntos de control participan de la forma nal
de las mismas, es decir, tienen control global. Sin embargo, como veremos, la contribucion de
cada uno de los puntos determina una suma convexa, por lo que la curva no puede tener las
oscilaciones indeseadas de Lagrange. Por el contrario, las curvas de Bezier suelen ser ex
cesivamente suaves, y se amoldan al grafo de control de una m anera perezoza.
El estudio de las curvas de Bezier es fundamental en este tema, porque provee los
elementos geometricos y analticos necesarios para comprender to dos los demas temas
en CAD. Esto es as dado q ue, como veremos a lo largo de este captulo, to dos los
metodos de aproximacion e interpolacion (excepto el de Lagrange) pueden plantearse como
un conjunto de casos particulares de aproximaciones de Bezier.
4.3.1
par
Construccion de
bolas
p1 r
p1 r
@
p0
p2
r
0
@
@ rp
@ 11
@
@@ rp2
l osn ue vosp untos p1 0(u) y p11(u). Por ultimo, mapeamos los mismos valores de u en el segm ento
p10(u); p11 (u), obteniendo un punto p20 (u) q ue pertenece a la parabola.
Utilizando la expresion parametrica para representar un punto a lo largo de un segm
ento de recta, podemos encontrar ex presiones para los puntos
p1 0(u) = (1 u)p0 +
p1
up1
1(u) = (1 u)p1 +
up2
1
p2 0(u) = (1 1 u)p0(u) +
up1(u);
donde p02(u) es la expresion parametrica de una parabola tangente a los segmentos p0 ; p1 y
p1; p2 en p0 y p2 , respectivamente. Si u 2 [0; 1], entonces la curva es el segm ento de dicha
parabola que va ex actamente desde p0 hasta p2 (ver Figura 4.13).
Es im portante tener en cuenta que el algoritm o sigue siendo correcto fuera del intervalo
u 2 [0; 1]. En dicho caso, se obtienen las partes correspondientes de la parabola por ext
ra polaci on lineal de los puntos de control (ver Figura 4.14). La dem ostracion de que dicha
curva es en efecto una parabola es un tanto indirecta y apela a la intuicion geometrica del
lector. Desdoblando las ecuaciones anteriores obtenem os
p2
0 (u)
lo cual es una ex presion de segundo grado, es decir, una conica. C omo es facil ver, la
curva no es un caso degenerado de conica, por lo que puede ser una parabola, una elipse o
una hiperbola. Pero analizando su derivada vemos q ue si u tiende a innito, la derivada tiende
a p0 2p1 + p2 , y si u tiende a menos innito, la derivada tiende a (p0 2p1 + p2 ). Por lo
tanto, la curva tiene una sola asntota, lo que excluye a las elipses (que no tienen asntotas) y
a las hiperbolas (que tienen dos asntotas).
Es importante notar sin embargo q ue si u 2 [0; 1], entonces el segmento de curva es una
suma convexa de los tres puntos que la determinan. Ademas, como todos los pasos
involucrados en la construccion de la parabola son combinaciones
lineales, una
transformacion afn aplicada a los puntos de control determina una nueva parabola que
coincide con el resultado de aplicar la
Figur a 4.13 Aproximac ion de una parabola con interpolacione s line ales.
Figur a 4.14 Aproximac ion de una parabola fuera del inte rvalo u 2 [0; 1].
m ism a transformacion afn a la parabola obtenida con los puntos sin transformar. Es
decir, el procedim iento de construir una parabola es invariante frente a transformaciones
anes.
4.3.2
El
Casteljau
algorit mo
C onsideraremos ahora
de
de
una generalizacion
(4.2)
con k = 1::n, e i = 0::(n k ) (ver Figura 4.16). Podemos ver el resultado de aplicar el
algoritmo de de Casteljau sobre el mismo grafo de control pero con distintos valores de u
entre 0 y 1 en la Figura 4.18.
Las curvas de Bezier se obtienen com putando la recurrencia de de Casteljau para una
cantidad suciente de valores de u entre 0 y 1. Normalmente se asigna un paso fraccionario,
se computa el valor de la curva incrementando dicho paso, y se unen dichos valores con una
poligonal (ver Figura 4.17).
Es posible demostrar geometricam ente que la curva de Bezier as denida tiene todas
las pro- piedades requeridas. Es invariante frente a transformaciones anes, dado q ue esta
denida ex- clusivamente en base a interpolaciones lineales. Tiene la propiedad de cont rol
global, dado que
p0
(1 u)
@
p1
@
p10 (u)
pn1
(1
u)
.
@
u
pn2
(u)
0
(1 u)
@
u
@R p1 (u)
n1
@
@@R
(1 u)
@
pn
(1 u)
@
u
pn2
(u)
1
pn1
(u)
0
(1 u)
(1 u)
@
(1 u)
@
u
pn2
(u)
2
u
pn1
(u)
1
u
C (u) = p0 n(u)
(excepto en los ex tremos), todos los puntos de control ejercen inuencia sobre su form a. Tiene
la propiedad de armazon convexo, dado que cada punto de la curva se obtiene com o
combinaciones anes convex as de los puntos de control. La curva com ienza en p0 con
tangente p1; p0 y termina en pn con tangente pn1 ; pn (ver Figura 4.19).
Es posible hacer coincidir los puntos de control extremos para obtener una curva cerrada.
Es m as, si p1; p0 es colineal con pn1 ; pn , entonces la curva es continuamente derivable en dicha
union. Tambien se muestra en dicha gura q ue es posible repetir consecutivamente la
posicion de un punto para que este ejerza una m ayor inuencia en la forma de la curva (ver
Figura 4.20).
4.3.3
Bernstein
L a
base de
Figura 4.18 Algoritmo de de Casteljau efe ctuado con distintos valores d el parametro u.
Bezier
73
Computacion Graca
puntos de control:
3
p0
p
C (u) = [B n (u); B n(u); ; B n(u)] 1 7 ;
6
4
5
0
1
n
pn
(4.3)
donde el vector [B n(u); B n (u); ; B n (u)] es un conjunto de funciones que debe conformar
una
0
1
n
base funcional para los polinomios de grado n, diferente a la base polinomial de Hermite vista en
la Seccion anterior.
Otra forma de interpretar esta formulacion es como una sumatoria:
n
X
C (u) =
Bi n (u)pi
;
i=0
n!
i
u (1 u) ni :
i!(n i)!
C laudio
Delrieux
75
Computacion Graca
con C (u) = p0n(u), coincide con la Ecuacion 4.3 a traves de un analisis cuidadoso de la
Figura
4.21, donde se puede ver por ejem plo el graco de la base de polinomios de B ernstein
cubicos.
Dejam os como ejercicio para el lector que constate geometricamente, en la Figura 4.19, q ue
puntos interpolados sucesivamente con el algoritm o de de C asteljau para distintos valores de u
son identicos a los obtenidos por medio de la Ecuacion 4.3.
L a base de Bernstein posee varias propiedades:
Pn
i=0
4.4
aci
Aproxim
L as curvas de Bezier son de grado muy alto para grafos de control complejos. Ademas
tienden a suavizar excesivam ente la geometra del grafo de control, es decir, se v uelven
\insensibles" a pequen~os cambios locales. Este efecto se puede constatar al considerar la
escasa im portancia q ue tiene un punto de control intermedio en una curva de grado 20 (ver
Figura 4.22). Ademas, en determinadas circunstancias es simplemente preferible no tener
control global. Por dicha razon, otra de las alternativas usuales en Com putacion Graca
Computacion
75
Graca
76
C laudio
Delrieux
p4
p2 A
t
A p3
A
t
AA
p1
t
t
@
p5
@ t
p
6
p7
Los Splines deben su nombre a las herramientas curvilineas utilizadas por los dibujantes para
el trazado de guras curvas. En m atematica se utiliza el termino para referirse a funciones
denidas com o uniones de segmentos polinomiales. Por lo tanto, el metodo de Hermite
visto hace un par de Secciones es im plcitamente un Spline cubico. L os Splines mas usados
en Computacion Graca, sin embargo, utilizan formulaciones semej antes a la de las curvas
de Bezier vista en la Seccion anterior. Es decir, son Splines determinados por bases
funcionales, y por lo tanto se los denomina B-Splines.
La diferencia entre Bezier y B-Splines es que las bases de esta ultim a formulacion tienen
soport e local, es decir, son no nulas solamente para un subconjunto de la secuencia de puntos
de control. La curva, entonces, es una combinacion afn convexa de un subconjunto localm
ente determinado de los puntos de control. El grado de los polinomios en un B-Spline esta
determinado por la cantidad de puntos que localm ente afectan a la curva, y determina el orden
de continuidad de la misma, es decir, la cantidad de veces que es continuam ente diferenciable
en las uniones. El grado usual de una curva B-Spline es n = 3, lo que determ ina que cada
segm ento q ueda denido por n + 1 puntos de control sucesivos, y q ue en las uniones el orden
de continuidad es n 1.
4.4.1
Una forma de entender la mecanica en la denicion de una curva B-Spline es partir del caso
triv ial en el cual la \curva" aproximante es de prim er grado. Podemos pensar que la
poligonal es la
\curva" resultante de unir los puntos de control con segmentos de polinomios de grado n = 1,
denidos entre n + 1 = 2 puntos sucesivos, y con un orden de continuidad n 1 = 0 en las uniones
(ver Figura 4.23).
Cada segm ento esta denido como
C i(u) = (1 u)pi +
upi+1;
C (t i) = C i(0)
C i(u i)
tC (ti+1 ) = C i(1)
C i1 (ui1 )
tC (ti1 )
C(t i+2)
Figur a 4.24 Relacion entre segmentos d e curva, parametros locales y parame tro global.
k[
1
i:
i=0
El problema es que todos los segmentos estan denidos para un m ism o parametro u. Por lo
tanto, es necesario utilizar algun m ecanismo q ue permita describir a la curva con un
unico parametro global, el cual esta relacionado con los parametros lo cales en cada segm
ento polinom ial.
Observem os q ue los segm entos polinomiales se unen entre s en ciertos puntos denidos
para form ar la curva. Dichos puntos, por analoga con Lagrange, se denom inan nudos . El
parametro global u asume el valor t i al pasar por cada uno de dichos nudos. La secuencia
t 0; t1 ; ; t k de valores del parametro global asociados a cada uno de los nudos es no decreciente.
Se dene entonces un parametro local u i para cada segmento polinomial de curva C i . ui
vara entre 0 y 1 mientras u vara entre t i y t i+1. El punto que ocupa la curva cuando el
valor del parametro global es el valor del nudo ti tiene que coincidir con el comienzo del iesimo segmento de curva, es decir, C (t i) = C i (0), y tambien con el nal del i 1esim o segmento, es decir, C (ti ) = C i1 (1) (ver Figura 4.24).
El calculo del valor del parametro lo cal en funcion del valor del parametro global y de los
valores en los nudos se efectua por interpolacion lineal:
ui =
u ti
:
i+1
ti
6
1
Ni
Ni+1
ui 1
@
@
ui
@
@
@@ u i+1
u i+2 u
polinomial \activo" es C i , donde i es la parte entera de u, y el valor del param etro local u i
es la parte fraccionaria de u, es decir u i.
4.4.2
Splines
La
base de
Buscarem os ahora una formulacion en term inos de una base funcional para nuestro ejem
plo de poligonal com o \curva" polinomial a trozos, y luego extenderemos dicha formulacion
para grados superiores. Cada C i es una combinacion convexa de los puntos pi y pi+1 :
C i(u i) = (1 u i)pi +
u ipi+1:
Recordando la relacion entre param etro global y parametros locales podemos reescribir la
combi- nacion convexa como:
t
u
u ti
C i(u) = i+1
pi +
pi+1 ;
ti+1 t i
ti+1 t i
con t i u
t i+1:
El punto pi contribuye al segm ento de curva C i 1(u) con un f actor
u ti1
;
t i t i1
y al segmento de curva C i(u) con un factor
ti+1 u
:
t i+1 t i
El factor que aporta p i puede pensarse como una funcion Ni(u), la cual es, en efecto, una
base funcional para funciones lineales con soporte local, es decir, distinta de cero solo en un
subconjunto conex o del dominio. La denicion de Ni(u) es entonces la de una funcion lineal a
trozos (ver Figura
4.25):
8
>
> u t i 1
ti ti1
<>
Ni (u) =
t i+1
> u
>
> ti+1
ti
0
si t i1 u ti ;
si t i u i+1;
t
en to do otro caso:
(4.4)
n
X
Ni(u)pi:
i=0
u ti
t
u k 1
N
(u);
N k 1(u) + i+k
ti+k ti+1 i+1
ti+k1 t i i
con
1
i (u)
=u
(4.5)
t i+1;
si t i
N i1(u) es identica a la funcion Ni(u) v ista en la ecuacion 4.4. Un ej emplo de curva B-Spline de
grado quinto se puede observar en la Figura 4.26.
Por el mom ento asum im os que la secuencia de nudos t i es uniform e, en particular q ue t i
= i, aunq ue luego veremos los efectos de alterar esta unif orm idad. Para obligar a la curva a
pasar por el primer y ultimo punto de control, se repiten los mismos la cantidad necesaria de
veces (segun el grado de la curva), por m edio de asignar un valor t i = 0 cuando i < 0, y un valor
t i = n g ra do + 2 cuando i > n. Tambien luego verem os los efectos de alterar estas
restricciones.
Figura 4.27
Los siguientes procedim ientos muestran las implementaciones necesarias para computar
las curvas B- Splines a partir de un grafo de control (asumimos vigentes muchas de las
declaraciones de tipos de los trozos de codigo ya mostrados). En la Figura 4.27 podemos
encontrar las funciones necesarias para computar los nudos para una parametrizacion
uniforme, y la base recursiva de B-Splines, mientras que en la Figura 4.28 encontramos el
procedimiento que utiliza las bases y la secuencia de puntos de control para com putar la
curva.
Po demos ver en la Figura 4.29 las funciones base de Splines de grado cubico y de grado
10 utilizadas para aproximar un grafo de 11 puntos de control (com parar con los polinom
ios de Bernstein). Observar que para un grado k dado, desde i = k 1 hasta i = n k
+ 1 la baseifuncional N k (u), para distintos valores de i, es la misma f uncion pero desplazada
en u. El efecto del aum ento del grado de la curva es pro ducir una dism inucion de la
inuencia local de los puntos de control (ver Figura 4.30).
Es importante considerar el efecto q ue tiene aum entar el grado de una curva B-Spline
con respecto a variaciones lo cales en las posiciones de los puntos de control. En la Figura
4.31 se puede observar de que m anera el aumento del grado de la curva dism inuye la
inuencia de un desplazamiento lo cal (com parar con el metodo de Bezier).
Figur a 4.29 La base funcional de Splines de grados 3 y 5 p ara 11 pu ntos de control (n = 10).
Figur a 4.32 Bases de Spline de primer grado mod icando el valor d e un nudo.
4.4.3
uniformes
B-Spline s
no
>Cual es el resultado de alterar los valores en los nudos, respecto de la asignacion unif orm e t i
= i? El efecto pro ducido es el de alterar la velo cidad parametrica en la curva, es decir, cuanto
se desplaza un punto p(u) respecto de un cambio en el valor de u. Supongam os tener una
\curva" B-Spline de grado 1 con la parametrizacion uniform e mencionada mas arriba. Las
bases funcionales de esta
\curva" son las funciones triangulares de la Figura 4.25. Modicar el valor t i asociado al i-esim
o punto de control implica desplazar el valor donde ocurre el maximo de la i-esim a base
funcional
(ver Figura 4.32).
En este caso, el resultado de asignar a t i un valor menor que i (pero mayor que i 1,
dado q ue la secuencia de nudos es no decreciente) es q ue la \curva" es recorrida mas
rapidam ente q ue
\lo normal" (el caso uniforme) con respecto al param etro entre los puntos de control pi 1 y
pi ,
y m as lentamente entre los puntos de control pi y pi+1. Pero el aspecto geometrico se
mantiene
constante. Sin embargo, cuando la curva es de un grado mayor, entonces es posible apreciar
un efecto en las bases, dado que estas prov ienen en denitiva de un prom edio o integracion
ponderada de las bases lineales (ver Figura 4.33).
Figura 4.33 Bases de Sp line de tercer grado (con n = 10) modi cando el valor de un nudo.
Figura 4.34
...
v ar t: arr ay [ 0..pt s_ct rol- grado +2] of r eal;
...
f uncti on n udo( i:int eger ):re al;
b egin
if i < g rado then nud o:=t
[0]
els e if i > pts_ ctro l th en nu do:= t[pt s_ctr ol-g rado +2]
e lse nudo :=t[i -gra do+1
]
e nd;
...
Figur a 4.35 I mplementacion d e parame trizacione s no uniformes por medio de un
arreglo d e nudos.
Esta claro que pueden asignarse valores totalmente arbitrarios a los nudos, (inclusive a
los q ue corresponden a la parte que antecede y sucede a los nudos aso ciados al grafo de
control), siem pre q ue se respete la condicion de que la secuencia de nudos sea no
decreciente. Una form a de implementar computacionalmente dicha secuencia es por m edio de
un arreglo auxiliar en vez de una funcion, como se muestra en la Figura 4.35.
R ecordamos que el valor de un nudo t i es el valor q ue debe asumir el parametro u
cuando la curva pasa de un segmento polinomial al siguiente. Por lo tanto, la secuencia de nudos
de una curva se denomina usualmente la para met rizacion de la curva, y permite obtener una
gran variedad de resultados a partir de un mismo grafo de control. Sin embargo, no siem pre es
predecible o intuitivo el efecto q ue pro duce una determ inada param etrizacion.
Figur a 4.36 Curva B-Spline de tercer grado disminuyendo y au mentan do el valor de u n nudo.
Figura 4.37 La base func ional Ni 3 (u) ignorando las primeras y ultimas tres.
4.4.4
uniformes
B-Splines
cubicos
1
X
b k(u i)pi+k :
k= 2
Figur a 4.38
Para encontrar las sub-bases podemos plantear las siguientes condiciones de continuidad.
b1 (0) = 0
b1 (1) = b0 (0)
b0 (1) = b1 (0)
b 1(1) = b 2(0)
b_1 (0) = 0
b_1 (1) = _b0(0)
b_0 (1) = _b1 (0)
_ 2 (0)
b_ (1) = b
1
(1) = 0
1 (0)
=0
b1 (1) = b0(0)
b0 (1) = b1 (0)
1 (1)
2 (0)
b_2
(1) = 0
2 (1)
=0
b0 (u)
b1 (u)
b2 (u)
1 3
u ;
6
1
(1 + 3u + 3u 2 3u3 );
6
1
(4 6u 2 + 3u3 );
6
1
(1 3u + 3u2 u3 ):
6
De esa manera, cada punto de control pi tiene asociada una base com puesta por cuatro sub-bases
no nulas, que determinan su inuencia en la curva C (u). Dados n + 1 puntos de control p0; p1;
; pn , la representacion de la curva de B-Splines cubica es:
n1[
C(u) =
C
i(u);
i=2
lo cual es equivalente a una expresion como sumatoria (al estilo de la formulacion de Bezier):
C (u) =
n1
X
Ni3(u)pi:
i=2
Por otra parte, teniendo en cuenta que las funciones base tienen soporte solamente en
cuatro segm entos polinom iales, la expresion como sumatoria es ineciente, siendo
preferible expresarla com o union de los segm entos
1
X
C i(u i)
b k(u i)pi+k :
k= 2
cubicas uniformes. En la Figura 4.40 se observan curvas B- Spline cubicas uniformes donde
cada segm ento polinomial fue computado con el algoritmo m ostrado mas arriba (y gracado
en distinto color),
tom ando como ejemplo una curva cerrada utilizando asignacion periodica, y un grafo de
control con puntos de control repetidos.
Es posible observar que las curvas B- Spline no pasan por el prim er y ultimo punto de
control. En efecto, dada una secuencia de puntos de control p0 ; p1 ; ; pn, el segmento de
curva
C 2 (u) = b 2(u)p0 + (u)p + b (0)p + b (u)p
b
1
1
0
2
1
3
comienza en
1
C 2(0) = b 2(0)p0 + b1 (0)p1 + b0 (0)p2 + b 1(0)p3 =
4
1
p0 + p1 + p2 + 0p3:
6
6
6
no esta denido porque no tenem os punto de control
1 . L o mismo sucede con
El segmento C 1
p
C n (u). En general, estan denidos los segmentos C 2 a C n1 (ver Figura 4.41).
Para garantizar que la curva comience en p0 podemos repetir dicho punto. Repitiendo una
sola vez, es decir, haciendo que la secuencia comienze con p 1 = p 0, obtenem os la posibilidad
de q ue C 1 (u) este denida, y
6
1
4
p
C 1(0) = b 2(0)p0 + (0)p + b (0)p + b (0)p =
+
p
b
6
6
1
p
1
+ 0p
de p0 y a
:
0
de p1 . La unica forma de q ue la
Figura 4.41 Los segmentos de nid os de una curva B-S pline cubica uniforme.
4.4.5
cubicos
Evaluacion de
B-Splines
1
:
n
`P ` `
PP ` `
@
P
` `
2(0)
1(0)
p(0)
` ` `
` `
` ` `
P P
@
P P
` ` `
P P
@
P P
` ` `
@
` ` `
P P
``
P
@@RPq
2 ()
2(2)
2 (3)
@
@
@
@
@
@
@
@
@
@
@
@
@@
@@
@@
1 ()
1(2)
1 (3)
RRR@
@
@
@
@
@
@
@
@
@
@
@
@@R p()
@@R p(2)
@@R p(3)
-
@@
R@
@@R
De esa m anera, conociendo y 2((i 1)) podemos obtener 2(i), para to do i tal q ue
0 i n. Igualmente, con 2(i) y 1 ((i 1)) obtenemos 1(i), 0 i n, y con 1 (i) y
p((i 1)) obtenem os p(i), 0 i n.
Por lo tanto, solamente es necesario conocer p y los distintos en u = 0. Un rapido
analisis nos perm ite encontrar
p(0) =
1(0) =
2(0) =
3 =
d;
p() p(0)
= a 3 + b 2 + c ;
1() 1 (0) = 6a 3 + 2b 2;
2() 2 (0) = 6a 3:
4.5
Ejercicios
4.6
endada
Bibliografa recom
93
El Color en
Computacion
Graca
Computacion Graca
5.1
duccion
Int ro
5.2
Color
El color es una sensacion siologica producida por la accion de ondas electrom agneticas
especcas en los receptores nerviosos de la retina. Es decir, su origen prim ario es en una
distribucion de energa electrom agnetica en el espectro visible. Sin embargo, es una
magnitud relativa, dado que dicho espectro en general no depende de la radiacion lumnica
propia de los obj etos. En general el color de un objeto no depende solo de este, sino
tambien de las fuentes de luz que lo iluminan y de otras consideraciones que veremos en
detalle en el Captulo 7:
Iluminantes ! Objetos ! Observador
El observador, al mismo tiempo, impone sus caractersticas propias, dado que el estmulo
pro- ducido por una misma distribucion espectral de energa no siempre produce la misma
percepcion visual:
Estmulo ! Sensacion ! Percepcion
As, pese a estar originado en una magnitud fsica objetiva (la longitud de onda de las
radia- ciones del estmulo) no es posible encontrar una denicion intrnseca del color de un
objeto, sino que todas las descripciones deben ser relativas a una condicion ambiental y
siologica dada. Una de las caractersticas menos problematicas de comprender en el color es
su componente acromatica o intensidad lum inosa (tambien llamada luminancia o lum
inosidad). La luz acromatica es la pro- ducida, por ejemplo, en un telev isor blanco y negro,
en el cual cada punto v isible tiene un unico atributo (su luminosidad, variando entre 0 =
negro y 1 = blanco). Un telev isor tiene un continuo de niveles entre 0 y 1, m ientras que un
monitor de computadora tiene una cantidad limitada (por ejemplo, 2, 16, 256) y una impresora
de puntos o laser corriente tiene solo 2.
94
C laudio
Delrieux
95
Computacion Graca
ro jo, verde y azul, o espacio cro matico RGB. En las Artes Plasticas se asum en otros
colores primarios y tambien otros nombres referirse a los primarios.
En algunas ramas de la fsica (as como en TV color), sin embargo, los atributos
considerados son la luminosidad, la crom inancia y la saturacion. La crom inancia distingue la
caracterstica de
\color" propiamente dicho en una determinada distribucion (a que \color puro" se parece el
color), m ientras que la saturacion se reere a la pureza del color. En term inos fsicos la
luminosidad es analoga a la amplitud de energa de la onda lum inosa (o a la cantidad de
fotones) por unidad de tiem po. La crominancia es analoga a la longitud de onda dominante y
la saturacion a la relacion entre la energa de la longitud de onda dominante y la energa
total.
5.3
Los aspectos fsicos del color mencionados mas arriba y los aspectos siologicos
humanos se relacionan a traves de la teora triestmulo del color. Segun esta teora,
existen en la retina tres tipos de receptores en los conos (celulas nerv iosas sensibles a la luz)
con sensibilidades centradas a los 650nm . (ro jo), 530nm . (verde) y 425nm. (azul)
respectivamente, y cuya sensibilidad relativa responde a las curvas de la Figura 5.2, obtenidas
ex perimentalm ente.
ultimos se encuentran
Com putacion
Graca
97
Figur a 5.4 Renamiento de las curvas de sensibilidad relativa, teniendo en cuenta la resp uesta
\negativa" de los receptores.
muy saturados. Esto quiere decir que un objeto de color magenta muy puro produce un
estmulo cromatico que no puede sintetizarse exactamente con luz ro ja y azul; con dichos
ilum inantes so- lamente se podra pro ducir un estmulo cromatico de la misma longitud de
onda dominante, pero con saturacion m enor. Sin embargo, si el objeto magenta es iluminado
con luz levem ente saturada con verde, entonces la sntesis puede efectuarse. Esto es eq
uivalente a restar luz verde a la m ezcla. Del mismo mo do un amarillo saturado podra
sintetizarse sumando
roj o y verde, y restando una pequen~a proporcion de azul.
Evidentemente la resta de luces no puede realizarse con los dispositi- vos actuales (televisores o
m onitores), por lo que algunos colores muy saturados de la gam a de los complementarios a los
iluminantes primarios no pueden reproducirse con total delidad con dichos dispositivos.
Experimentalmente, sin embargo, esta deciencia demuestra ser de una importancia m enor.
Conociendo la proporcion de sum as y restas necesarias para sintetizar cualquier color,
(segun la teora triestmulo) la respuesta de los receptores especializados en la retina
contiene una parte negativa cuando la longitud de onda del estmulo corresponde aprox im
adam ente a la longitud de onda de su color com plementario. Por ejemplo, los receptores
del ro jo tienen un maxim o a los 650nm . y un maxim o negativo aproximadamente a los
470nm . (correspondiente al color denominado cyan). Esto puede deberse a que los receptores
especcos realicen una asimilacion anabolica en un caso y catabolica en el otro. Las
curvas que intentan reproducir este fenomeno se muestran en la Figura 5.4 y fueron obtenidas
por medio del analisis de la sensibilidad de sujetos v identes normales y con problemas de
percepcion visual en uno o mas de los receptores (daltonicos y otros cinco casos posibles).
5.4
El
aticidad
Diagrama CIEXY de
Crom
C laudio
Delrieux
Com putacion
Graca
99
C laudio
Delrieux
Com putacion
Graca
101
por medio de su suma vectorial (ver Figura 5.8). Dicha suma vectorial proyectada sobre el
plano X+Y+Z=1 representa la cromaticidad de la suma de ambas fuentes. Esto quiere
decir que la cromaticidad resultante yacera sobre la recta que una a las cromaticidades de los
distintos com- ponentes de la sum a, estando mas cerca de uno o de otro segun sean las
intensidades respectivas (ver Figura 5.9).
Esto equivale a int er polar cromaticidades. La extrapolacion de colores es tambien
factible. Supongamos que hem os estim ado la crom aticidad de un estmulo en el punto X y que
lo suponem os
10
2
C laudio
Delrieux
iluminado por el iluminante C (al cual consideram os entonces como luz blanca). Entonces
podemos estimar la longitud de onda dominante del color X trazando una recta desde C,
pasando por X y prolongandola hasta intersectar la frontera del diagrama (ver Figura 5.10). L a
razon de la distancia de X a C con respecto a la longitud total del segmento es tambien
una buena estim acion de la saturacion del color X. Es importante destacar q ue esta
determinacion depende de la condicion de iluminacion en q ue ocurre el estmulo, es decir,
si el iluminante tiene una tem peratura cromatica diferente, entonces la percepcion de
colores com plem entarios se modica.
Com putacion
Graca
103
10
4
C laudio
Delrieux
Figura 5.9
X+Y+Z=1.
5.5
os
105
10
6
Figura 5.13 Representacion de los colores saturados d el espacio RGB e n el e spacio LXY.
Una representacion similar a la RGB se utiliza en las im presoras color, donde los primarios
son los com plem entarios a RGB, es decir CMY. El pasaje de RGB a CM Y es sencillo: R es KC, G es K-M y B es K- Y y viceversa, donde K es el negro. Esta conversion no se utiliza en la
practica por dos motivos. Primero, la gama de grises no es estable con respecto a los
pigmentos. Esto quiere decir q ue a distintas intensidades dominan distintos pigmentos.
Segundo, la mezcla de pigm entos no tiene las propiedades de la mezcla de luces. Esto quiere
decir q ue la gama crom atica puede no ser convexa, el \blanco" en el m onitor puede no
coincidir con el color del papel. Por ello las impresoras utilizan pigm ento negro para
estabilizar la combinacion de pigmentos, denom inandose espacio C YMK al m odelo de color
resultante.
Dado que la estructuracion psicologica de los estmulos cromaticos parece realizarse en
funcion de la crominancia, luminancia y saturacion, resulta natural utilizar a dichas dim
ensiones para re- presentarlos. Esto da origen al sistema CSV. C (de crominancia) es un
angulo que generalmente esta medido en una escala de 0 a 360 grados, con origen en el rojo
y m edido en sentido antiho- rario. Por ejemplo un verde tiene crom inancia 120 grados. El
color com plem entario de C tiene crom inancia C + 180 grados. S (de saturacion) es una
magnitud de 0 a 1, donde 0 representa un color neutro (un gris) y 1 representa un color
saturado (ver Figura 5.14). V (de \valor" o lum inancia eq uivalente) es una magnitud de 0 a
1, donde 0 es negro en cualquier condicion de los otros param etros, y 1 es la maxima
intensidad.
Por ejemplo, el verde q ue en RGB se representa (0; n 1; 0), en se representa (120; 1;
1). De esta form a, todos los colores representables se ubican en un cono, cuyo vertice inferior
es el negro y el crculo superior contiene todas las cromaticidades. El eje del cono es la escala
de grises.
Para pasar del modelo CSV al RGB es necesario aplicar un algoritmo sencillo que
aprovecha las simetras en dicho espacio. Si el color en CSV tiene saturacion cero, entonces
devuelve el valor eq uivalente de L en cada uno de los primarios RGB (es decir, un gris). Si el
color tiene saturacion mayor que cero, entonces, como vimos, es posible descom ponerlo en
un primario principal, uno secundario y uno opuesto. La determinacion de cual de los prim
arios RGB cumple cada uno de esos roles se determina segun el \sexto" del crculo de crom
inancias en que esta el color. As, una crom inancia de 70 grados, por ejemplo, tiene al verde
Com putacion
Graca
107
10
8
C laudio
Delrieux
5.6
Representacio n de Color en
Graca
Com putacio n
El color en las tarjetas gracas, como vimos, se representa por m edio del espacio cromatico
RGB (ver la Seccion 2.1). Esto signica q ue el color de cada pixel se representa por m edio de
Com putacion
Graca
109
11
0
C laudio
Delrieux
cambio, si el pix el guarda un ndice a una entrada en una tabla de colores donde esta
denido el color del cual esta pintado el pixel, estamos en modos gracos mas economicos.
En dichos modos, el seteado del ndice del color de un pixel se efectua por medio de la
sentencia put pixe l(x, y,c), m ientras que asignar una entrada en la tabla de colores se realiza
por m edio de la sentencia setrg bpal ette (c,r, g,b) . En dicho mo delo se utiliza la sentencia
putp ixel (x,y ,c) para acceder al buer de pantalla y setear el pixel en la posicion x, y
con el ndice de color c, con x, y, c de tipo wo rd. En los mo dos gracos VGA y super
VGA, los parametros r, g, b son de tipo w ord, pero se truncan los dos bit menos
signicativos, dado q ue el rango efectivo de cada com ponente es de 0 a 63. Por lo tanto es
conveniente utilizar una aritmetica dentro de dicho rango para representar los colores, y
multiplicar por 4 en el m omento de la llamada.
Los mo dos gracos VGA y SVGA perm iten denir en general 256 colores simultaneos
(la
\paleta" graca) de entre 256K colores posibles. Estas posibilidades pueden ser, en algunos
casos, poco satisfactorias, no solo porq ue la paleta sea lim itada, sino porq ue los colores son
denibles con poca precision en algunos casos.
Si bien el o jo humano detecta
aproximadamente 350.000 colores diferentes (y es capaz de distinguir aproximadam ente 50.000
en form a simultanea), esta sensibilidad no es uniforme en todo el espacio crom atico, sino q ue
es mucho m ayor en ciertas areas (por ejemplo en el eje naranja-v ioleta) y mucho menor en
otras (por ejem plo en el eje magenta-verde).
Com putacion
Graca
111
5.7
Palet as Estat icas y Dinam
ic as
En muchas circunstancias la capacidad de manejo de colores en las tarjetas gracas esta
restringida a una paleta de 256 colores simultaneos. Esto puede deberse a varios factores. Por
ejemplo, puede ser necesaria la m ayor resolucion posible, y sin una cantidad de m emoria
adecuada para el frame buer puede no ser suciente para soportar el m odelo true color .
Puede ocurrir tambien por limitaciones tecnologicas (tarjetas o monitores obsoletos, falta de
driver s, etc.). La lim itacion en la cantidad de colores simultaneos se sobrelleva, en general,
con un esq uema crom atico que utiliza una paleta con los 256 colores m as signicativos de
la imagen. Estos 256 colores son obtenidos durante la generacion de la m ism a (generalm
ente con histogramas y tecnicas de separacion), por lo q ue las paletas se denominan di
namica s.
Sin embargo, en un sistem a graco de proposito general el esq uem a dinamico de paletas
puede ser inadecuado cuando se desea manejar dos o mas imagenes desarrolladas
independientem ente, porque cada una de ellas reclamara lo que considera que son los colores m
as adecuados. El sistem a tiene que llegar a una solucion de compromiso, sacricando algunos
de los colores de cada una de las imagenes. Esto produce como resultado un deterioro
impredecible en la calidad graca. Al m ism o tiem po, una paleta dinam ica resulta
inaceptable en aplicaciones interactivas, porque al modicar cualquier propiedad de la escena
(el agregado de un nuevo objeto, los atributos de un objeto ya dibujado, las condiciones de
iluminacion, etc.) se req uiere el recalculo de los histogram as de la escena completa, y el
redibujado completo de la m ism a, lo cual insume un tiempo muy grande.
En las paletas estaticas, por su parte ex iste un esquem a cromatico predenido. Es
decir, se dene de antemano un conjunto de colores adecuados para gracar cualquier escena, en
cualquier condicion de ilum inacion y bajo cualq uier algoritm o. L os resultados gracos
tienden a ser de m enor calidad. Sin embargo, la calidad de las im agenes, una vez gracadas,
no se deteriora con el ulterior agregado de otras im agenes. Al mismo tiempo, la referencia al
ndice de color q ue corresponde a cada pixel puede calcularse a partir del color que debera
corresponder al mismo. De esa forma, la imagen es gracada al mismo tiempo que es
computada, sin un costo adicional debido al m anejo de color.
11
2
Com putacion
Graca
113
graca. Al mismo tiem po, los valores de (R ,G,B) deben estar asociados a uno de los
ndices de color disponibles.
Una forma de disen~ar paletas estaticas proviene de las siguentes consideraciones.
Normalmente las tarjetas representan la intensidad de cada primario con una precision de 6
bit en una escala entera de 0 a 63, lo cual perm ite 256K combinaciones de colores. De
dichos 256K colores, es necesario elegir los 256 mas representativos para un uso general.
Mas aun, deben ser elegidos de manera tal que cualquier aplicacion graca que reclam a un
color no existente en la paleta, pueda encontrar rapidam ente el ndice de un color
perteneciente a la paleta que sea el m as adecuado para reemplazarlo. Es necesario,
entonces, elegir un subconjunto de las 64 intensidades permitidas para cada prim ario, de mo do
tal que el producto de la cantidad de elementos en cada conjunto sea menor o igual que 256. En
los m odos gracos de 64K colores (conocidos como hi-color), se utiliza una particion en 32
64 32, asignandole mayor resolucion crom atica al prim ario verde, dada la gran sensibilidad
del ojo al mismo. Pero en nuestro caso, combinaciones como 8 8 4 quedan eliminadas,
porque 4 intensidades posibles para un primario es un valor demasiado pequen~o, aun para
el primario azul. La combinacion que empricamente resulto ideal f ue 6 7 6, ya
que su producto es 252, es decir, desaprovecha solamente 4 ndices de color, y representa una
buena solucion de compromiso.
De esa forma, se eligen 6 intensidades perm itidas para los primarios ro jo y azul, y 7 para
el prim ario verde (que es para el cual el o jo hum ano es m as sensitivo). De esa manera, el
espacio RGB de la tarjeta queda \cuantizado" en 150 prism as rectangulares, y todos los
colores repre- sentables que caen dentro de un mismo prisma se coercionan al valor del
vertice m as cercano. La determinacion de los 6x7x6 valores se debe realizar en forma ex
perimental, teniendo en cuenta la correccion- del m onitor utilizado. En un determinado
monitor (un NEC MultiSync 3D) para una posicion adecuada en las perillas de brillo y
contraste, los resultados elegidos f ueron roj o = (0,
20, 32, 45, 55, 63), verde = (0, 15, 22, 30, 40, 50, 63) y azul = (0, 25, 35, 45, 55, 63). Debemos
recordar que en este m odo graco, es posible dar un valor entero de 0 a 63 a la intensidad en
cada prim ario (ver Captulo 2).
La estructura de la cuantizacion del espacio RGB elegida resulta ser muy practica en el
mom ento de encontrar el color con el cual pintar un pixel. Antes de ejecutar la gracacion,
es decir, como paso de inicializacion de la interfase, se alm acena la paleta en la tabla de
colores de la pantalla. Esto se efectua con el procedim iento mostrado en la Figura 5.16.
11
4
C laudio
Delrieux
Com putacion
Graca
115
5.8
1.
Ejercicios
Implementar tipos de datos para representar colores en los espacios RGB y CSV en
precision real, y en el espacio RGB con la precision de la tarjeta graca. Im plem
entar los algoritmos de conversion entre espacios cromaticos.
2. Determinar experimentalmente en
sensible a cam bios crom aticos.
diferencias apenas perceptibles, es
un color hasta que se distinga que
5.9
endada
Bibliografa recom
Los aspectos fsicos y siologicos del color as como los elementos de la teora de color, las
deter- minaciones experimentales y los diagramas cromaticos pueden consultarse en [17] o en
[65]. Una referencia adecuada para colorim etra, espacios cromaticos CIE, sensibilidad del o
jo, etc. es [81]. La descripcion del manejo de colores en el hardware, la representacion de los
espacios cromaticos y los algoritmos para convertir colores de una representacion a otra guran
en el Captulo 13 del libro de Foley et. al. [33]. En [31] se describe la relacion entre el espacio
C LS y los nombres aso ciados a los colores. Pueden conocerse y com pararse los diversos
espacios crom aticos y sus venta jas en el traba jo de Schwarz et. al [75].
Es interesante consultar algunas tecnicas para el disen~o de secuencias de colores, porq ue
muchos de los problemas discutidos en este Captulo deben resolverse tambien en esos
casos. R ecomen- damos consultar los traba jos de P. Robertson [72, 73] y M. Stone [76, 77].
En [47] se discute el problema del m uestreo en los espacios cromaticos. Tambien se pueden
conocer los detalles para la calibracion de monitores en el trabajo de W. Cowan [22].
La paleta estatica aq u descripta f ue presentada en [25]. Hay otros acercamientos
posibles, por ejemplo el presentado por P. Heckbert [49] o el de M. Gervautz [39]. La
construccion de paletas dinamicas es una tecnica com pleja, donde cada autor presenta
ideas de un m odo diferente. Re- com endamos consultar el traba jo de A. Voloboj [82]. Otros
principios relacionados con la eleccion de colores pueden consultarse en [64].
11
6
C laudio
Delrieux
111
Computacio
n
Graca en Tres
Dimensiones
6.1
Ob jetivos de la Computac ion Grac a Tridim
ensional
Como mencionaramos en la Introduccion, la C omputacion Graca tridimensional
represento el prim er cambio de paradigm a en la disciplina. Se paso del objetivo de la
obtencion de \gracos" al objetivo de representar un \mundo virtual" como si fuese visto
desde una ventana determinada por el monitor de la com putadora. Por lo tanto, la idea esencial
en este C aptulo es comenzar el estudio de las tecnicas q ue perm iten representar gracam
ente las imagenes con un grado de realism o que permita la percepcion o visualizacion de
objetos tridimensionales.
La busq ueda del realism o tridimensional produjo durante la decada del `70 el desarrollo
de un conjunto de tecnicas que permiten, gradualmente, una representacion mas adecuada
de entidades gracas en un mundo tridimensional virtual en el que ocurren efectos de
iluminacion, atmosfera, interacciones, etc. (consultar en [2] un panorama de dichas tecnicas
y las referencias bibliogracas a los trabajos originales). Podem os citar, por ejemplo:
Proyeccion perspectiva: Es una tecnica geometrica q ue representa
dimension (pro- fundidad) como un factor de escala que afecta a las
dimensiones, en funcion de la posicion de un observador o \camara". Se
modelo simplicado del compor- tamiento geometrico de la luz en el
desarrollada en el Renacim iento por pintores com o Durero, q ue buscaban
odelo artstico medieval.
Uso
la tercera
otras dos
basa en un
o jo. Fue
salir del m
del color: Tambien es una tecnica desarrollada por pintores. Es otra de las
maneras de representar profundidad, alterando el color de los objetos alejados en
funcion de la misma (por ejemplo, haciendo que se vean m as grises y oscuros).
Elimi nacion de l as l neas y caras ocultas: Es una tecnica indispensable, dado que las
partes
\no visibles" de las entidades gracas molestan y confunden si son gracadas. Sin
embargo,
dada la enorme dicultad para encontrar algoritmos ecientes de cara oculta, los
sistemas gracos tridimensionales se valen usualmente de tecnicas a d hoc y
simplicaciones.
Mode los de i luminacion y sombreado: Aqu la palabra \sombreado" se reere al
ingles shading que representa la alteracion de los tonos crom aticos para dar idea de
mayor o menor iluminacion, y no a shadowing que representa la proyeccion de sombras
de un objeto sobre otro. Los m odelos de iluminacion plantean la existencia de fuentes
de luz ubicadas en el espacio, y de un mo delo de reexion por parte de los objetos.
Esto determina que el color de los mismos vara en funcion de su posicion y de la
ubicacion de la cam ara.
Visi on estereoscopica: Se producen dos perspectivas, levem ente desplazadas, de m
odo que los ob jetos sean percibidos por cada ojo como si estuviesen \detras" de la
pantalla. En la mayora de las personas esto produce q ue el sistema v isual reconstruya
la percepcion
de una situacion tridimensional (como tambien sucede con los
estereogram as de punto aleatorio).
Mode los cineti cos y animacion: Es la culminacion del modelo paradigmatico de
la C om- putacion Graca 3D con realism o. Se programan caractersticas cineticas
para los objetos de modo q ue se vean con la ilusion de un movimiento. Esto tambien
ayuda a la interpretacion y comprension adecuada de la escena.
112
Claudio Delrieux
6.2
Generalizando lo visto en 2D, un punto en el espacio 3D hom ogeneo sera un vector columna
3
x
6 y 7
p=4 z 5:
1
2
ex
0
0
0
0 0
ey 0
0 ez
0 0
32
3
0
x
0 76 y 7
54
5:
0
z
1
1
Ahora debemos tener en cuenta que nuestro espacio puede rotar alrededor de tres ejes
(la rotacion en 2D es implcitam ente rotar el espacio bidimensional del plano xy alrededor
del eje z). La rotacion un angulo alrededor del eje x se representa como
2 0 3 2
32
3
x
1
0
0
0
x
0
6 y 7 6 0 cos sen 0 7 6 y 7
54
5:
p0 = R x p, es decir, 4 0 5 = 4
z
0 sen
cos 0
z
1
0
0
0
1
1
La rotacion un angulo alrededor del eje y es:
2 0 3 2
x
cos 0
6 y0 7 6 0
1
0
p = R y p, es decir, 4 0 5 = 4
z
sen 0
1
0
0
32
sen 0
0
0 76
54
cos 0
0
1
3
x
y 7
5:
z
1
3 2
x0
cos
6 y0 7 6 sen
0
p = R z p, es decir, 4 0 5 = 4
z
0
1
0
32
3
sen 0 0
x
cos 0 0 7 6 y 7
54
5:
0
1 0
z
0
0 1
1
x 0 = tx + x; y 0 = ty + y; z0 = t z + z
0 tx 3 2 x 3
0 ty 7 6 y 7
54
5:
1 tz
z
0 1
1
Toda otra transform acion afn puede representarse en terminos de una composicion de
estas transform aciones basicas. Por ejem plo la transformacion T q ue rota por alrededor
de un eje paralelo al eje x se representa por una m atriz que se obtiene con los siguientes pasos
(ver Figura
6.1):
Com putacion
113
Graca
1. Se trasladan los ob jetos con una matriz de traslacion Tt de m odo que el eje de rotacion
sea el eje x = 0.
2. Se rota un angulo con respecto al nuevo eje x con una matriz Tr .
3. Por ultimo se trasladan los objetos a su posicion original cont T
=
t
T .
4. La transformacion buscada es T = Tt Tr Tt .
Si debe hacerse una rotacion alrededor por un angulo alrededor de un eje arbitrario,
entonces la secuencia es un poco mas compleja:
1. Se trasladan los ob jetos con una m atriz de traslacion Tt de modo que el eje de rotacion
pase por el nuevo origen de coordenadas.
2. Se rotan los objetos un angulo x con respecto al nuevo eje x con una m atriz Trx de
mo do que el eje de rotacion pertenezca al nuevo plano xz.
3. Se rota un angulo y con respecto al nuevo eje y con una m atriz Try de modo q ue el eje
de rotacion se transforme al eje z.
4. Rotar un angulo alrededor del nuevo eje z (que, como vimos, coincide con el eje de rotacion)
con una matriz Trz
5. Se rota un angulo y con respecto al nuevo eje y con una matriz ryT = Try .
1
Objeto
u
Plano de
proyeccion
0(x ; y ; z )
Proyector
o o
o
P(x ; y )
u
p
Proyeccion
6. Se rota un angulo x
.
7. Por ultimo se trasladan los objetos a su posicion original con T 1
=T
t
t
8. La transformacion buscada es T = T t Trx T ry Trz Try Trx Tt:
6.3
tiva
Proyecciones y Perspec
antengan una escala uniforme en todas sus dimensiones y que por lo tanto sean m as faciles
de interpretar y utilizar (por ejemplo en planos). El sistema multivista consiste en hacer pasar
ejes paralelos a los ejes del sistem a de co ordenadas entre las entidades a proyectar y planos
paralelos a los planos del sistem a de coordenadas.
Com o veremos, esto eq uivale a ignorar la coordenada respectiva. Por ejem plo, hacer pasar
ejes paralelos al eje z por un plano paralelo al plano xy , conserva las com ponentes en x e y
de las
Proyecciones
geometricas
planares
H H
Proyecciones
paralelas
J
Perspectiva
J
J
1
pu o
nt
Ortogracas
Oblicuas
Multivista
(Monge)
B
B
H H
puntos
puntos
B
B
B
BN
BN
Axonom
etricas
(Iso,di,trimetricas)
Cavallier
Cabinet
co ordenadas del
window:
xp
y
;
y = p;
h
h
y por ultimo al viewport por medio de la transformacion de windowing adecuada.
x=
y
6
H H
H
H H
p(xt
p ; yp )
t
l
o(x ot
; yo ; z o)
H H
H
- z
Q
Q
Q
l
Plano de
ll
proyeccion
=
window
yp =
+1
y
H
H H
o(xo ; yo; z ot
)
( ((
(
(
(
( ( (
( ( (
(
(
(
( ( (
( ( (
6
HH
H
H H Hp
H
HH
( (
xp ( ( ( ( (
(
(
( ( ( (
t
( ( ( (
(
(
t
( (
t
6yp
Q
(0; 0; 1)
Q
l
ll
- z
Plano de proyeccion
=
window
Figura 6.5 Eleccion particular del plan o de proyeccion y del foco para la proye ccion
perspec- tiva.
xo
;
zo + 1
y=
yp
h
yo
zo + 1
porque los planos de clipping del nuevo espacio son paralelos a los ejes. Es necesario efectuar
clipping con el plano z = 0 a n de elim inar las partes que q uedan \por delante" del plano de
proyeccion, lo cual pro ducira un efecto inadecuado.
Al retener la coordenada z de los puntos transformados, es posible utilizar esta inform
acion para los algoritm os de cara oculta. Por ejem plo, los algoritmos basados en prioridades
utilizan el
6.4
as
L a manera de estructurar las entidades gracas en 3D sigue los mismos lineam ientos
generales q ue en 2D. Es posible realizar m odelos de ob jetos relativamente complejos (m
obiliarios, edicios, etc.) utilizando solamente instancias de cubos. La unica diferencia, de
gran importancia, es q ue es necesario observar una meto dologa mas disciplinada para
describir los objetos prim itivos.
Com o ya mencionaramos, la eliminacion de lneas y caras ocultas es indispensable para
lograr el realismo, y segun veremos al nal de este captulo, los algoritmos q ue realizan estas
tareas requieren una rapida y correcta identicacion de determinadas caractersticas
geometricas de las entidades gracas. Lo mismo sucede con los modelos de ilum inacion y
sombreado. De esa manera, en el m omento de gracar una entidad, puede ser necesario
ubicar el normal de sus caras, las aristas y vertices que concurren a las mismas, etc. Si to das
estas determinaciones debieran realizarse por busq ueda, el tiempo de ejecucion sera
prohibitivo.
Por lo tanto, se recurre a describir las prim itivas segun un orden arbitrario pero estricto.
Por ejem plo, dado el cubo de la Figura 6.6, numeram os sus vertices de modo q ue su
ubicacion en su propio espacio intrnseco este relacionado con el ndice del vertice. L
uego buscamos que cada cara contenga la secuencia de vertices (ordenada por ejem plo en
sentido antihorario si es vista desde afuera). Esto permite encontrar rapidamente la
secuencia de aristas para dibujar la cara, y tambien permite encontrar el vector norm al, dado
que el m ism o es el producto vectorial de dos aristas cualesquiera. Por ejemplo, el normal a la
cara 1 es (v7 v5) (v8 v7). Otra posibilidad es precalcular los normales y utilizar las
matrices de transform acion corriente para transform ar los norm ales. Por ultim o, puede ser
de gran utilidad poder determ inar cuales son las caras q ue concurren a un vertice sin tener
q ue recorrer la estructura.
v4
v2
v v8
v
v6
v
v1
nc1
Cara 1
v v7
v3
vv
typ e
c ubo
tra nsf
en tida des
d efi
obj eto
Figura 6.7 Declaraciones d e tipos para representar ob jetos estructu rados en 3D.
del cubo (donde debe aparecer, con que tama~no, rotacion, etc.) por la matriz de
transform acion
\corriente", recibida por parametro. Esta ultima transform acion actua como pila, segu n
verem os.
Con la matriz producto obtenida, se transforman los o cho vertices del cubo, y se gracan las
doce aristas del m ism o, siguiendo el orden correspondiente a su denicion (por ejem plo, la
mostrada en la Figura 6.6).
Si el objeto no es un cubo, entonces esta estructurado a partir de subobjetos. En dicho
caso, la parte recursiva del algoritmo aplica la matriz de instancia del objeto a cada subobjeto,
Para inicializar una estructura como la m ostrada, debemos prim ero inicializar el cubo,
dandole coordenadas a cada uno de sus vertices. De acuerdo a la Figura 6.6 utilizam os la
asignacion
v1 =
v
3 =
-1,
-1,
v
5 =
v7 =
(
-1, -1,
(
-1, 1,
( 1, -1, -1,
( 1, -1, 1,
1)
1)
1)
1)
v2
v4
v6
v8
=
=
=
=
(-1 ,
(-1 ,
( 1,
( 1,
1, -1,
1, 1,
1, -1,
1, 1,
1)
1)
1)
1) .
t 1[0] [2]:= 0;
=0;
t1[0 ][3]:
De esa manera, el algoritm o que graca el cubo debe gracar las aristas que van del
vertice 1 al 2, del 2 al 3, etc. Tambien es necesario inicializar la m atriz \corriente" con la
tranform acion
\del mundo", la cual puede ser en principio la matriz identidad. Una vez establecidos estos
datos,
debem os comenzar a asociar a cada obj eto con su matriz y denicion correspondiente, la
cual, com o en 2D, es una lista de punteros a objetos, cada uno con su transform acion y
denicion, y as recursivamente hasta llegar a los cubos. Una vez inicializada la estructura,
se llam a al algoritmo de gracacion pasandole la referencia al objeto \tope" de la estructura,
y con la matriz \corriente" (ver Figura 6.9).
Po demos ver en la Figura 6.10 el resultado de denir una escena como objeto
estructurado. Prim ero se denio la mesa como cinco instancias de cubos, cada uno con su
transform acion corres- pondiente. Luego se denio la escena como cuatro instancias de mesa,
cada una con su transfor- macion.
6.5
Clipping y Transform acion de
iewing
detras del plano de proyeccion para q ue el m odelo de \cam ara" tenga sentido. Al m ism o
tiem po, suele agregarse un plano adicional con un z muy lejano, para no perder tiempo
gracando objetos que no inuyen en el resultado nal de la escena. Como vimos, el primer
paso antes del clipping es aplicar la transformacion perspectiva (sin proyectar), para
transformar el f rustum o area visible (ver Figura 6.11) en una \ca ja" rectangular delim itada
por planos paralelos y ortogonales.
HH H
H
H
H H
H H
(( (( (
(
(
(
(
(( (((
( ((
( (( (( (
(
(
(
((
( (( (
(( (( (
((
l
( (((( ((
(ll (( (
(
(
( (
( ( ( ( (
h h h
h h h
l
ee
h h h h
l
h
h h ehh
l
hh hh hh
hh hhh
l
Punto
de vista
h hh hh h
Plano de
h hh hh h
l
hhhhh hh
l
proyeccion
hh hhhh
h hhhhhh h
l
h hh hhlhlh
h
Plano
alejado
Figur a 6.11
Entonces se introduce un nuevo espacio \del f rustum ", el cual esta denido como el
espacio rectangular que se obtiene luego de aplicar al m ism o la transf orm acion perspectiva
(sin proyectar). L a caracterstica mas importante de este nuevo espacio es que los planos de
clipping dejan de ser oblicuos y pasan a ser paralelos (ver Figura 6.12).
Un algoritmo de clipping en dicha area procede de forma similar al C ohen-Sutherland en
H H
H
H H
(
(
(
( (
( (( (
ll ( ( ( ( (
e
l
eh h
l
h h
h h h
l
h h h
l
h h h h
h h h
QQ
J
necesario recorrer algun camino para po der asimilar su importancia, por lo que
recomendamos al lector que releea esta Seccion luego de haber ledo la Seccion siguiente):
1. El pasa je de coordenadas hom ogeneas a comunes y la perspectiva se \enganchan" en
una unica operacion que involucra solamente dos div isiones por cada punto procesado.
2. La m atriz de transformacion perspectiva puede premultiplicarse a todas las demas
transfor- maciones corrientes en una unica m atriz de 4 4 que procesa todos los
puntos del modelo de la escena de una manera eciente.
3. Luego de la perspectiva, el clipping es mucho mas sencillo porque solo hay que m
odicar levemente el algoritmo de Cohen- Sutherland ya implementado.
4. La eliminacion de caras o cultas tambien es mas sencilla porque si hay dos o mas
partes de la escena que \caen" en el mismo lugar de la pantalla, esto se puede descubrir
porq ue tienen el m ism o valor de x e y luego de la perspectiva.
5. Luego del clipping y de la cara o culta, la proyeccion es ahora una proyeccion paralela, la
cual en denitiva es descartar la coordenada z.
Po demos en este punto intercalar una nueva transformacion y un nuevo espacio, los cuales
seran redundantes pero simplican enorm emente la descripcion de determinados efectos, en
particular al realizar animaciones.
Cuando denimos la posicion del observador o
\camara" y su plano de proyeccion asociado, utilizamos un caso particular en el cual se
simplicaban los aspectos matematicos de la transformacion perspectiva. Particularm ente,
se eligio en la Seccion anterior que el observador este en (0; 0; 1), y q ue el plano de
proyeccion sea el plano z = 0.
Sin embargo, un observador puede m overse en el espacio, y/o modicar la direccion
hacia la cual esta observando la escena. Por lo tanto, podemos considerar la existencia de un
espacio del observador, en el cual el mismo esta siempre en (0; 0; 1) y el plano de proyeccion
es el plano z = 0. Los cambios en la posicion del observador se representaran con una
transformacion de v iewing que mo dica el espacio del mundo de m odo tal que el punto (0; 0;
1) del mundo pase a ser la posicion del observador, y que el plano z = 0 pase a ser el plano
de proyeccion.
Esto se podra representar movi endo la escena, por lo cual estrictamente no es necesaria
una nueva transformacion y un nuevo espacio. Sin embargo, mover la escena para acom
odarse al
6.6
Cara O culta
L a eliminacion de las partes de una escena que no deben verse es una tarea esencial en un
sistem a graco tridimensional con pretensiones de realismo.
Pero por otra parte no
existen soluciones generales que funciones con costos tolerables. Por ello existe una gran
diversidad de metodos y tecnicas ad hoc que se utilizan solos o en combinacion y para
casos particulares determinados. Entre las tecnicas relativamente sencillas po demos
mencionar las siguientes:
Orientacion de caras: Es una de las prim eras en utilizarse, y suele acom pan~ar a otros
metodos para reducir la complejidad. Cada cara tiene una orientacion que determina
cual es la parte
\exterior" de un objeto. Esto queda determ inado por la direccion del normal de la
cara
(recordar el cuidado que tuvimos para denir los norm ales del cubo en la Figura 6.6)
Por lo tanto, si una cara es mirada \desde atras" es porq ue no debe ser visible. Este
test puede realizarse de m anera sencilla y rapida, dado que es el resultado del signo del
producto escalar entre el norm al a la cara y un vector que va de un vertice de la misma al
observador. Si el signo es positivo, el normal apunta \hacia el mismo lado" que el
observador, y la cara es v isible. Este test se denomina \backface culling" (ltrado de las
caras posteriores). Estrictam ente, el metodo es correcto solo si la escena esta
compuesta por un unico objeto concavo y de caras planas, aunq ue en la practica se
aplica ant es de utilizar otros metodos mas complejos, para reducir el computo en un
factor de dos o tres.
Algori tmo de l pintor: Debe su nombre a q ue se basa en una tecnica utilizada por los
pintores (en este punto debem os reconocer que la C omputacion Graca le debe
varias cosas a los pintores renacentistas). Por ejemplo, Leonardo no puede tener a
Mona sentada frente a un paisaje durante el tiem po necesario. Entonces va hacia el
paisa je y lo pinta con toda tranquilidad, y luego va a la casa de Mona y la retrata
encima del lienzo pintado con el paisa je. En terminos de lo estudiado aqu, lo que
Leonardo ha hecho es ordenar las entidades por su coordenada z y luego pintarlas de
atras hacia adelante.
Este metodo tiene varias desventajas. Primero, es de
complejidad O(n2 ), donde n es el nu mero de caras. Segundo, no siempre es posible
decidir cual cara esta delante. Tercero, es muy ineciente porque se pintan pixels
varias veces.
z-buer: Es un algoritmo de gran popularidad por ser muy sencillo e implementable en
hardware.
C oords.
abstractas
Modelos
geometrico
s abstractos
?-
Coords. de
la escena
Transformaciones de
instancia
Transformacion
de viewing
?-
Transform
a- cion del
mundo
?-
?-
\Frustum"
(A rea
visible)
Co ords.
del
observador
Co ords.
del mundo
Perspectiva
?-
C lipping 3D
Co ords. del
v iewport
Cara Oculta
Proyeccio
ny
Windowing 2D
?-
Pix els
Algoritmos
basicos
?-
Ray tracing: Para cada pix el se enva un \rayo" desde el observador hacia la escena.
Si el rayo intersecta mas de un objeto, se debe pintar con el color del objeto mas
cercano. Si no intersecta ningun obj eto, entonces se pinta con un color \de fondo" (ver
Figura 6.15). Estos algoritmos son sencillos y ecientes, y pueden aplicarse recursivamente
para computar un mo- delo de iluminacion hbrido pero de buenos resultados visuales,
aunq ue las entidades gracas representables deben ser de una geom etra lim itada [41].
Por dicha razon los considerarem os con cierto detalle en la Seccion 7.5.
6.6.1
Eliminacion de
funcionales
lneas ocultas e n
supercies
Este algoritmo fue desarollado por Wright [86] y es muy im portante no solo por su
aplicabilidad, sino porq ue es el prim ero en proponer un orden front to back com o solucion
al problema de las entidades ocultas. El metodo esta pensado primariamente para gracar
funciones de dos variables, pero puede utilizarse tambien para representar arreglos
bidimensionales de valores, lo cual es de gran utilidad en Com putacion Graca. Cada la de
dicha m atriz representa el valor de y = f (x; z) a un valor constante de z.
Es posible determinar cual de los cuatro vertices de la matriz es el m as cercano al
observador, y se recorren las las en orden, comenzando por dicho vertice. Al tiem po que se
gracan las las, se actualizan dos arreglos donde se alm acena, para cada x de pantalla, el
maximo y mnimo valor de y. Los valores de estos arreglos determinan la \silueta" de lo ya
dibujado, la cual es un area dentro de la cual no debe dibujarse (ver Figura 6.16).
Es muy importante observar que para que el algoritmo funcione correctamente, las las deben
dibujarse de adelante hacia atras. La im plementacion de este algoritmo es sencilla, dado
q ue solamente debe mo dicarse el algoritmo de discretizacion de segmentos de recta para
inclur la condicion de no invadir la silueta de lo ya dibujado. Para mejorar el aspecto de
lo gracado, normalmente se dibujan tambien las lneas a x constante (es decir, la poligonal q
ue une los valores de las columnas). Una estrategia posible para hacerlo es \marcar" los valores
que fueron visibles en la recorrida por las y luego unirlos. Esto, sin embargo, tiene algunos
problemas, dado que entre dos valores visibles puede haber una porcion no visible. Otra
solucion es ej ecutar el algoritm o por
las y por columnas
utilizando
siluetas
independientes.
maxy
miny
4 8 8 8 8 8 8 9 9 9 9 9 9 10 12 14 17 17 16 15 14 12 11 10 10 10 11 11 11 12 12 12 4
4 4 4 4 5 5 5 6 6 7 7 8 9 10 12 14 17 17 16 15 14 12 11 9 8 7 6 6 5 5 5 5 4
Figura 6.16 Estado inte rmedio du rante e l computo del algoritmo de Wright para
supercies funcionales.
6.6.2
Clasicacion de
generales
los
me todos
metodos pro duce resultados aptos para la animacion en tiempo real, pero la
asignacion de prioridades debe hacerse en f orm a estatica y compilarse dentro del
programa.
Wolfenstei n: Com
enz
Las escenas en estos juegos suelen ser polgonos con texturas, las cuales tienen un
signicado indispensable para el juego. El algoritmo consiste en trazar un rayo desde el
observador a un punto dado de cada polgono, para determinar el punto de entrada al
mapa de texturas. De esa manera, si bien se comete un error geometrico (mas
importante cuanto mas proximo es el polgono al observador), es posible determ inar
rapidam ente el orden de gracacion, y acelerar el uso de mapas de tex turas.
M todos en 2D: Traba jan en el espacio de la im agen, recorriendo por lnea de barrido.
Por dicha razon se los denomina meto dos scan- line. Son los mas ecientes en tiempo,
aunque la precision depende del dispositivo graco de salida. Ademas trabajan bien en
relacion con los algoritmos de ilum inacion y sombreado. Podem os citar trabajos de
varios autores (Wilye, Rom ney, Watk ins), pero to dos coinciden en pro cesar la escena
por lneas a y constante. En cada lnea es posible determinar las caras activas, es decir,
aquellas que tienen por lo menos un pixel con dicha coordenada y. Para todas las caras
activas se realiza la conversion scan (como la vista en la Seccion 2.6 pero para solo una
lnea, denom inada span). Durante dicha conversion es posible computar el z de cada
uno de los pix el del comienzo y nal del span (ver Figura 6.17). Por lo tanto, es posible
determinar de una m anera sencilla cuando un span esta por delante de otro, sim plem
ente teniendo en cuenta que son segmentos de recta y que su interseccion es facil de
calcular (ver Figura 6.18).
y1 y
z1
6
A
A
y1 ys
z a = z1 (z1
A
y1 y2
A
z 2)
A
y ys
za
z
ys
span
s
z b = z 1 (z 1 z 3)1
A b
y
1 y3
y2 z2 s
HA
H
A
H H
A
H
A
H H
A
H
H H
A
H
H H
A
y3
H
A
H
z HA z 3
Figura 6.17 De terminacion de l valor de z de cada pixel en un span.
z
6
z b0
uzb
1
uz
a
1
Pu P
PP
zc 0
P P
P P
P P P
P
PP
- x
z a0
uz
6.6.3
I
El algorit mo SPII
minz
donde minz y ma xz son las prof undidades del vertice mas cercano de la cara mas cercana y
de la m as lejana, respectivamente (ver Figura 6.20).
Idealmente, si las caras estan unif orm emente distribuidas en profundidad, es posible que
cor- responda una sola cara a cada lugar del arreglo. En la practica pueden existir lugares
vacos y
Figura 6.19 Resultado de gracar dos triangulos con el algoritmo SPI II de cara oculta.
lugares con varias caras. Lo importante es que las m ism as pueden procesarse por orden, y en
el caso de tener varias caras en una misma profundidad, de acuerdo al tipo de escena y de los
obje- tos que se dibujan (supercies funcionales como las que veremos en el C aptulo 8, por
ej emplo), norm alm ente no hay que ordenarlas entre s. De todas m aneras, en caso de tener
que ordenarlas, se tratara siem pre de un subconjunto muy peq ue~no del conjunto total de
caras, y la com plejidad del ordenam iento no se alejara de O(n) [27].
Con respecto al dibujado de las caras con areas de invisibilidad, la idea se basa en el algoritmo
de Wright para supercies funcionales, pero acom odada para traba jar en forma sim ilar a los
algoritmos scan-line. Esto se hace as dado q ue es posible utilizar el mismo computo para
implementar los algoritm os de iluminacion y sombreado que estudiaremos en el Captulo
7. Esta es una de las razones principales de la practicidad y ecacia del algoritmo SPIII, dado
que los demas algoritmos de cara oculta no estan pensados para facilitar el sombreado de las
caras.
Las areas de inv isibilidad se computan manejando una lista de pares para cada lnea de
barrido. Dichos pares contienen el menor y m ayor x de cada cara dibujada en una lnea
y dada (ver Figura 6.21). Durante la conversion scan de cada polgono, entonces, es
necesario chequear que para un dado y, el x del pixel a pintar no este comprendido
dentro del area de invisibilidad detrminado por cada uno de los pares ex istentes en dicho y,
especcam ente, q ue no sea menor que el mayor x y m ayor q ue el menor x de alguno de los
pares.
Como puede verse en la Figura 6.21, cuando las areas de invisibilidad de dos
polgonos se solapan, es posible utilizar un unico par.
Esta tecnica pro duce una
disminucion notable en el tiempo de ejecucion, dado que la cantidad de tests de inv
z
6
maxz
@@ s
minz
- x
21
s-
18
27
Figur a 6.21 Mantenimiento de las areas de invisibilid ad (se muestran solo algun as).
22 24
134
Claudio Delrieux
6.7. Ejercicios
6.7
Ejercicios
Com putacion
Graca
135
Captulo 6.
ensiones
6.8
endada
Bibliografa recom
136
Claudio Delrieux
137
Modelos de
Iluminacion y
Sombreado
7.1
El
Graca
Realismo en
Com putacion
7.2
ion
Mo delos de Iluminac
140
Claudio Delrieux
Una de las primeras simplicaciones consiste en om itir del mo delo la interaccion luminosa
entre objetos, la cual, sin duda, es la parte m as compleja del calculo de una ecuacion de
iluminacion. Este tipo de m odelos se denominan locales, dado que resuelven la ecuacion
de ilum inacion de un punto solamente a traves de la inform acion geometrica local a
dicho punto. Los mo delos que estudiaremos en esta Seccion son de estas caractersticas,
dejando para la Seccion 7.4 una breve resen~ a de las ecuaciones de iluminacion basadas en
modelos fsicos, para la Seccion 7.5 el tratamiento de modelos no locales basados en
aplicaciones recursivas ray tracing y para el proximo Captulo una introduccion a los m
odelos de refraccion.
Los modelos de ilum inacion q ue presentaremos en esta Seccion representan la
combinacion de diversos factores, com o por ejemplo la radiacion lum inosa de cada objeto,
la reexion de luz proveniente de fuentes de iluminacion, etc. Una caracterizacion el de las
m ism as desde el punto de vista de la teora del color signicara representar completamente la
interaccion para cada frecuencia visible del espectro. En la practica esto es innecesario, porque
como vimos en el Captulo 5, el ojo transforma dicha informacion espectral a una
representacion cromatica simplicada. Por lo tanto, es solo necesario com putar el m odelo de
ilum inacion en ciertas frecuencias espectrales, por ejemplo en el modelo RGB.
El m odelo de ilum inacion m as sencillo es considerar que los objetos radian su propia
energa lum inosa, sin interactuar con fuentes de luz. Por lo tanto, cada objeto se muestra
con un color constante propio
I = ki ;
donde I es la intensidad resultante, y ki es la intensidad luminosa propia del objeto i. En el
modelo RGB debem os com putar tres veces esta ecuacion, una para cada primario, donde
tendramos tres intensidades resultantes y tres intensidades propias de cada objeto, que
determinan especcamente su color. Este mo delo es obviamente muy simplicado, pero tiene
la ventaja de que se evalua solo una vez por objeto.
Para poder comprender de q ue manera se representan los demas factores en un m odelo de
ilumi- nacion en su correspondiente ecuacion, necesitamos previamente conocer y clasicar los
mecanismos por medio de los cuales es transportada la energa luminosa. En particular, nos
concentraremos prim ero en la reexion.
Fsicam ente existen dos posibilidades cuando un foton incide sobre un objeto: el
mismo es absorbido y por lo tanto su energa se disipa en forma de calor, o bien es vuelto a
emitir. Este u ltimo fenomeno reconoce otras dos posibilidades: o bien el foton no encuentra
un lugar en el espacio de energas del objeto, y por lo tanto \rebota" balsticamente, o bien
es absorbido temporalmente ex citando la orbita de un electron en un centro de color, para
luego ser reem itido.
Estos tres fenomenos se denominan, respectivam ente, absorcion, reexion especular y
reexion difusa, y la energa luminosa incidente total debe repartirse entre los tres. L os
adjetivos \especular" y \difuso" se reeren a que en el primer caso los fotones literalmente
\rebotan" y por lo tanto la geom etra del rayo luminoso reejado puede conocerse a partir de
la geom etra del rayo incidente y de la supercie del objeto, mientras q ue en el segundo
caso dicha relacion se pierde, debiendo utilizarse factores estadsticos para simularlo.
Por su parte, las fuentes de luz pueden pro ducir un haz lum inoso geometricam ente
coherente, en cuyo caso hablam os de \iluminacion puntual" dado que la direccion de un rayo
lum inoso en un punto puede computarse como la direccion entre la fuente luminosa y dicho
punto. Sin embargo, al existir fenomenos de reexion difusa, es posible que la coherencia
geometrica se rom pa, y que por lo tanto la energa luminosa en un punto deba computarse
con una funcion m as com pleja. Una aproxim acion a este fenomeno es considerar que en to
do punto y en toda direccion existe una intensidad lum inosa determ inada, a la cual se
incidente. Esta ultima solo depende del angulo que forman la direccion L que va de p a
la fuente de luz
6N
L
@
@ x
p
plano tangente
1
fatt = min
;1 ;
c1 + c2 dL + c3 dL2
donde las constantes c 1; c2; c3 , determinadas por el usuario, simulan algun efecto atm
osferico. La ecuacion de iluminacion es, entonces:
I = Ia ka + fatt IL kd (N
L):
Este m odelo resulto ser poco satisfactorio, porque las caras \invisibles" desde la fuente de
luz no reejan energa luminosa, lo que le da una apariencia muy articial a las escenas,
Por ello, Bouknigth tambien incluy o un termino ambiente para mo delar la iluminacion de
las partes de un objeto que son visibles al observador pero inv isibles para la fuente de luz.
Si el modelo de ilum inacion fuese el de un objeto especular puro, el 100% de la energa
luminosa incidente se reejara en la direccion R (ver Figura 7.3). En cambio, si el
objeto es reector Lambertiano puro, el coseno del angulo entre el normal N y la
direccion V hacia la cual se encuentra el observador no se aplica para la energa reejada.
Es decir, la intensi dad lum inosa de un reector Lambertiano puro, vista desde cualq uier
direccion, es constante. Esto se debe a que, si bien la energa lum inosa radiada hacia el
observador depende de la ubicacion del observador,
Figur a 7.4 Una su percie normalmente reeja una c ombinacion d ifusa y espe cular.
tambien el angulo solido subtendido por un diferencial de area alrededor del observador
depende de dicha direccion. Como la energa es la integral de la intensidad por unidad de
area, al variar la direccion del observador, vara la energa pero tambien vara el area en
f orm a identica, con lo cual ambos factores se cancelan y la intensidad permanece constante.
En la practica es facil ver que ningun reector es L am bertiano puro. Los objetos
tienden a reejar mayor intensidad hacia el angulo de la reexion especular predicha por la
ley de Snell (ver Figura 7.4). Phong Bui-Tuong propuso un m odelo de reex ion en el cual es
posible separar una componente difusa (Lambertiana) de una especular, cada una con su
coeciente especco. De esa m anera, es posible determinar una ecuacion de ilum inacion en
la cual interviene tambien el angulo q ue forman el normal y la direccion del observador.
El modelo de Phong es el que mas se usa en Com putacion Graca. En el la
reectividad de una supercie esta dada por la contribucion de dos factores. El primero es
esencialmente un factor L ambertiano, que depende de un co eciente denido para el
material, y del coseno del angulo de incidencia. El segundo es un factor que tiene en
cuenta la reexion especular, y depende de un coeciente del material y del coseno del
angulo entre la direccion de reex ion ideal R y la direccion V al observador.
Pero la observacion crucial de Phong es q ue en la reex ion especular, el \brillo" que se pro
duce aparece del mismo color que la luz (con excepecion de los metales), y en general no
depende del color de la supercie. Por lo tanto nuestras ecuaciones deben ahora tener en cuenta
la distribucion espectral (el color) del iluminante y del objeto por separado. Designaremos,
entonces, con I a la intensidad resultante del m odelo a cierta longitud de onda , (que
normalmente es alguno de los primarios R , G, B), Ia es la intensidad de la ilum inacion
ambiente a dicha longitud de onda, y I p es la intensidad del iluminante puntual. Tambien
designaremos con O al color del objeto, de modo q ue ka O corresponde al coeciente de
reexion ambiente a una determinada longitud de onda.
Otro problem a es que la ecuacion de la refex ion especular predicha por la ley de Snell
implica q ue toda la energa se reeja especularmente en una u nica direccion (ver Figura
7.3):
R = 2N (N L)
L:
L
@
@ x
p
plano tangente
Figura 7.5 El angulo entre el rayo ree jado ide al y la direccion del observador.
Phong propone entonces una funcion emprica para determinar en forma efectiva y
sencilla la distribucion geometrica de la energa luminosa reejada en form a especular.
Dicha funcion parte
de considerar el angulo entre el rayo reejado ideal R y la direccion del observador V
(ver
Figura 7.5).
Utilizar el coseno de dicho angulo determina funciones de reex ion especular que
\decaen" lentam ente a medida que la direccion de observacion se aparta de la del rayo
reejado. Esto es caracterstico de supercies poco pulidas, como el papel com un, la m
adera, y algunas telas. Pero en supercies m as pulidas, dicho decaim iento es mas abrupto, o
dicho de otra form a, la inuencia de la reexion especular es intensa pero m uy lo calizada.
Por dicha razon, la funcion de glossiness o pulimiento propuesta por Phong es cosn , donde
donde
I aka O d: Ilum inacion ambiente.
fatt Ip kd Od cos : Termino de reex ion dif usa.
fatt Ip W() cosn : Term ino de Phong (iluminacion especular no ideal).
n: factor de glos siness.
Com o antes, si L, V , R y N estan norm alizados, entonces cos = (N L) y cos = (R
V ). W () es utilizada para mo delar funciones de reectividad que varan con el angulo de
incidencia, aunq ue normalmente una constante ks (coeciente de reexion especular) k s 2
[0::1] da resultados aceptables.
De esa manera, la ecuacion de iluminacion de Phong, en funcion de los coecientes (crom
aticos) de reexion ambiente, difusa y especular, y de la intensidad (crom atica) de la ilum
inacion ambiente y puntual, es
I = I aka O d + fa ttIp [kd O d (N L) + ks (R V )n ]
(7.1)
Es importante observar que ks no depende de la longitud de onda, haciendo que el color
del brillo sea el mismo que el de la fuente de luz (dado por I p). Ademas, segu n se
propuso, el exponente n controla el \brillo" del material. Sin embargo, el efecto q ue resulta
al variar n es simular que la fuente de luz vara su tam a~no. Reduciendo n hace q ue la
fuente luminosa parezca m ayor; pero no reduce el brillo del objeto (ver Figura 7.8 [84]).
Blinn [8] propone una manera de simplicar el costo com putacional de la ecuacion
7.1. Basicam ente propone un vector H el cual esta a mitad de camino entre R y V (ver Figura
7.6):
H =
(L + V )
:
jL + V j
i
i
I = I aka O d +
k dO d (N L i) + W () (Ri V )n :
fatt
Ip
i=l uces
Podemos ver en la Figura 7.9 el resultado de com putar un objeto con varias fuentes de luz.
Sin embargo, la interreexion no puede determinarse, por lo cual el mo delo sigue siendo
local.
7.3
Polgonos
Sombreado
de
7.3. Sombreado de
Polgonos
Si alguna de las dos suposiciones deja de ser verdadera, es decir,
o bien la fuente de luz o
el observador esta proximo al polgono, entonces el esquema comienza a ser mas y mas
articial. El color de cada polgono dependera de donde se efectue la muestra, dado q ue
con un mismo normal,
H H
A
A
BM
B
BNp
B
B
Bu
H H
H H
H H
H H
H
Scan Line
A
A
A
H H
A
H H A
A
H HA
Y1
Ys
Y2
I2
I1
Ia
u
H
H
H
A
A
Is
u
H H
H H
H H
H H
Ib
Au
A
A
A
H H
H
Y3
Scan Line
A
A
A
H H
A
H A I
H HA 3
en distintos puntos de la cara el mo delo de ilum inacion arrojara colores diferentes. Puede
tomarse una muestra en cada vertice, y pintar cada polgono con el prom edio de los colores de
los vertices. Sin embargo, se seguira obteniendo el desagradable facetado resultante.
La prim er tecnica de sombreado suave, que soluciona este problem a sin aumentar la
cantidad de muestras, se debe a Gouraud [29]. C omo en el sombreado constante, se calcula
el m odelo de ilum inacion en cada vertice (es decir, en prom edio una evaluacion por
polgono). Durante la conversion scan del polgono, se interpola el valor de ilum inacion
a lo largo de las aristas. Por ejem plo, dado un triangulo con vertices 1; 2; 3, se computa
el modelo de iluminacion en dichos vertices, obteniendose I1 ; I 2; I3 (ver Figura 7.12). Para
una linea de scan, interpolando entre I1 e I 2 po demos obtener I a, y entre I 1 e I 3 podemos
obtener I b . Luego, para todo pix el en la lnea de barrido, se interpola nuevamente entre Ia e
Ib para obtener el valor de Is.
Y1 Ya
I a = I1 (I1 I2 )
Y
;
1 Y2
Y1 Ya
I b = I1 (I1 I3 )
;
Y 1 Y3
Y Y
Is = Ib (Ib b Ia ) s
Y
:
b
Ya
N1
6
Y1
Y
6
N2
BM
B
B
B
YN
s
b
Y
Na
B
B u
H
H
H H
u
A
A
Ns
A
A
A
H H
H H
H H
A
A A
A
A
H
H
Y3
Scan Line
Au
H H
A 3
A
H
H H A
A
H HAu
Norm alm ente los norm ales en los vertices estan mal denidos, porque dependeran con
respecto a que cara se los considere. Sin embargo, es posible promediar los norm ales denidos
segun cada cara, lo cual dara una m edida consistente. Si los polgonos fueron construidos
de manera disciplinada, tal cual se sugiere en la Seccion 6.4, entonces encontrar los norm
ales es bastante directo. Es muy im portante destacar q ue to das estas operaciones que se
realizan durante la conversion scan del polgono, pueden efectuarse con tecnicas
aritmeticas q ue posibilitan su implementacion por hardware. Tal es as q ue en la
actualidad las PC poseen tarjetas gracas q ue reciben directamente los puntos e ilum inaciones
de los polgonos, y efectu an la conversion scan y sombreado de Gouraud, miles de polgonos
por segundo!
Esta tecnica realiza una aproximacion muy grande, y por lo tanto puede tener
resultados insatisfactorios. El ejemplo caracterstico es el som breado de un polgono
ilum inado por una fuente de luz cercana, ubicada sobre su centro. L a evaluacion de la
iluminaciona en cada vertice
ser aproximadamente similar, por lo que todo el polgono sera pintado de un color constante!
Una
solucion para este problem a y para varios otros consiste en subdividir los polgonos.
Practicamente en to dos los meto dos derivados del scan-line, la solucion por \fuerza bruta" es
7.4
ing
Ray Trac
escena compuesta
Figur a
7.16
A rb ol de ray tracing.
por tres esferas rodeadas por tres espejos. Trazando los arboles de ray tracing con profundidad
1 se computa solam ente el mo delo de iluminacion lo cal, por lo que los espejos aparecen como
supercies oscuras y pulidas. Con profundidad 2, aparecen las reexiones directas de las esferas
en los espejos del costado, y con profundidad 3 aparecen las reexiones (indirectas) de dichas
reexiones en el espejo de aba jo.
L os rayos se consideran innitesimalmente delgados, y la reex ion y refraccion son
ideales, sin dispersion, como si se tratara de supercies idealmente suaves. Por dicha
razon, las imagenes sintetizadas con ray tracing tienen una caracterstica especial, siem
pre se trata de escenas con objetos geometricamente simples y brillantes que exhiben reex
iones multiples de una agudeza levemente sobrenatural (ver Figura 7.19).
Un prototipo de trazador de rayos recursivos sigue aproximadam ente los siguientes pasos.
Dado un punto p de donde parte el rayo, en una direccion d , y una profundidad de recursion r
, se deben encontrar todos los objetos de la escena que intersectan al rayo, calcular el punto de
interseccion en cada caso, y elegir el mas cercano de los puntos de interseccion. En dicho
punto se encuentra un m odelo de ilum inacion local, y se calculan las direcciones del rayo
reejado y del rayo refractado. L uego se com puta recursivam ente un ray tracing sobre dichos
rayos (con un nivel menos de re- cursion), y con el color resultante de los dos rayos m as el
color resultante del modelo de ilum inacion local se computa el color nal del pixel (ver Figura
7.17).
Pese al costo computacional, es una caracterstica muy atractiva que se combinen tantos
efectos de iluminacion en un unico algoritmo. Por dicha razon es q ue el tem a se ha
desarrollado de una m anera impresionante en los ultimos 10 an~os.
En particular,
podemos mencionar q ue se han estudiado una gran cantidad de metodos para acelerar la
ejecucion del ray tracing, o para permitir una representacion m as versatil de objetos.
El control adaptativo (dependiente de la escena) del nivel de recursion es la optimizacion
m as directa. Hall y Greenberg [47] sen~ alaron que el porcenta je de una escena que contiene
supercies muy transparentes y reexivas es, en general, pequen~o y es por lo tanto ineciente
7.4. Ray
Tracing
Sugieren entonces usar
un control de
pro cedu re t razar rayo (p:p unto; d:ve ctor ;r:in tege r;va r col :col or);
...
beg in
if d < MAX RECUR S th en b egin
{no lleg o al limi te d e rec ursi
on}
r:=r -1;
{un nive l men os d e re cursi on}
inte rsec ta(p, d,ob jeto ,inte rsec );
{pri mer objet o qu e in terse
cta} if o bjet o=nil the n co l:= C OLOR FOND O;
{no inte rsect a ni ngun
obje to} els e be gin
ph ong( objet o,in ters ec,co lloc al);
{ ilum . loc al d el o bjeto }
re flej ado(p ,d,o bjet o,int erse c,re fl);
{ dire c. re flej ado}
re frac tado( p,d, obje to,in ters ec,r efr);
{ dire c. re frac tado }
tr azar rayo( inte rsec ,refl ,r,c olre fl);
{ colo r ray o re flej ado}
tr azar rayo( inte rsec ,refl ,r,c olre fr);
{ colo r ray o re frac tado}
co lorg lobal (obj eto, collo cal, colr efl,c olre fr,c ol); {mo delo hibr ido}
end ;
el se c ol.r :=col .g:= col. b:=0
{sup ero recur sion -> color neg
ro}
en d;
end ;
Figura 7.17 P rototip o de un trazad or de rayos.
Figur a 7.19 Una e scen a compleja elab orada con ray tracing.
q ue dependa de las propiedades de los materiales con los cuales intersectan los rayos, hasta
una profundidad max im a prejada. C uando un rayo se reeja en una supercie se atenua de
acuerdo al coeciente de reexion especular de esta. De la misma form a, cuando es refractado
es atenuado por el co eciente de transmision global de la supercie. La atenuacion nal del
rayo sera el producto de las atenuaciones en cada interseccion. Si este valor cae por debajo de
un cierto nivel no tendra sentido seguir propagando el rayo.
Otra estrategia es reducir el numero de objetos con los que debe intentarse la
interseccion con un rayo. De esa manera, cada objeto (especialmente los muy com plejos) se
consideran encerrados por un volumen sencillo, por ejemplo un cubo, con el cual se chequea
la interseccion. Para un objeto representado por un gran num ero de polgonos esto evita el
calculo de interseccion con cada uno de ellos. Las esferas han sido usadas casi siem pre
como volumenes debido a la simplicidad de calculo de intersecciones entre esferas y rayos.
Sin embargo su conveniencia depende mucho de la naturaleza del objeto. Por ejemplo, para
objetos largos, angostos y curvados resultara en una situacion donde la mayor parte de los
rayos que intersectan la esfera no intersectan el objeto.
Otra estrategia es el uso de coherencia espacial. El espacio o cupado por la escena se
subdivide en regiones. En lugar de intersectar el rayo con to dos los objetos o conjuntos de ellos,
determinam os q ue regiones del espacio atraviesa el rayo y consideram os solam ente los
objetos
que ocupan
esas regiones.
Esta aproximacion ha
sido desarrollada
independientemente por muchos
autores.
Todas las aproximaciones involucran
un
preprocesamiento del espacio para preparar estructuras de datos auxiliares. Entre las soluciones
que se basan en la coherencia espacial encontramos:
Dividir el espacio en una grilla ja de regiones iguales. La dicultad consiste en
determinar el taman~o de las regiones y guardar la gran estructura resultante.
Dividir el espacio en forma binaria, metodo cono cido com o B SP (B inary Space
Partitioning).
Div idir el espacio en octrees. El oct ree es una estructura de datos representada por un
arbol en el que cada no do, llam ado voxel , tiene 8 hijos, asociados a particiones de un
cubo por tres planos ortogonales que pasan por su centro. La profundidad de una rama
del arbol puede variar.
Tambien se puede considerar el trazado de rayos de un grosor dado o de un conjunto
de rayos paralelos, porq ue en la mayora de las escenas, muchos grupos de rayos adyacentes
siguen practicamente las mismas trayectorias. El algoritmo descripto en [50] se denomina
Beam Tracing y esta basado en este tipo de coherencia. Es indicado para escenas q ue solo
posean supercies poligonales, ya q ue en ellas las reexiones son lineales. Es esencialm ente un
algoritmo de supercie oculta recursivo q ue encuentra to dos los polgonos visibles dentro de
una piram ide arbitraria. Para cada piramide de rayos, comenzando por el plano de
proyeccion de la imagen com pleta, se crea una lista ordenada por prof undidad de los
objetos de la escena. Estos objetos se prueban uno a uno con la piram ide. En el caso que la
intersecten, la piramide se divide en la porcion q ue hizo la interseccion y la que no
intersecto, que seguira su recorrido contra los objetos restantes. Se simula reex ion y
refraccion lanzando recursivam ente nuevas piramides, que son deformaciones de la original
por medio de transformaciones lineales.
Po demos m encionar, por ultimo, q ue en la gracacion de la escena es posible encontrar
zonas com pletas de la pantalla en la cual los pix els adyacentes estan fuertemente
correlacionados, tienen intensidades similares e historias muy sem ejantes de interseccion con
ob jetos. En [1] se aprovecha esta correlacion al elaborar un algoritmo que, en regiones con po
cas variaciones de iluminacion y con la misma historia de rayos, reduce el tiem po de
calculo lanzando solam ente algunos rayos e interpolando el resto. Esta tecnica se cono ce
com o sub-muestreo. El algoritmo procede recursiva- mente de una m anera sim ilar al de
Warnock. Se empieza calculando las intensidades en una m alla
de pixels separados entre s. Luego los clasica n la diferencia de intensidad entre rayos vecinos
seg
y sus historias de rebotes en la escena. Los pix els interm edios se calculan por
interpolacion.
7.5
Radiosidad
As como el ray tracing parte del m odelo de ilum inacion local de Phong y busca mejorar la
inter- reex ion especular, sombreado y refraccion, el metodo de radiosidad busca una
solucion global a los terminos de iluminacion e interreexion dif usa. La creacion de
imagenes con reexion difusa req uiere el calculo de la ilum inacion de todas las supercies
para un conjunto de posiciones y di- recciones discretas del entorno que estan determ inadas
por criterios independientes de la ubicacion del observador. La discretizacion del entorno
tridimensional (las supercies a visualizar) reduce en gran medida el numero de puntos
muestreados independientem ente de la resolucion de la imagen
nal. Para supercies con alto gradiente de intensidad, en los bordes de las sombras por
ejemplo,
no es suciente una discretizacion uniforme, por lo que se usa una discretizacion que se a
justa adaptativam ente por el gradiente de intensidad [21].
Ray tracing selecciona aspectos particulares de la interaccion luz-objeto: reex ion
especular y transm ision; aprox im a estos y excluye otras consideraciones. Radiosidad, toma
en algun sentido el punto de vista opuesto, favorece la interaccion de supercies con reex
ion difusa y excluye la reex ion especular. M as aun, el metodo tradicional de
radiosidad asum e comportamiento difuso ideal en to das las supercies y expresa las
El algoritmo de
7.6
Podemos dedicar en este punto unos parrafos a comparar los tres grandes meto dos de
rendering v istos hasta ahora: scan- line, ray tracing y radiosidad.
Velo cidad: L os metodos scan- line tienen siempre la ventaja con respecto a la velocidad
de ejecucion. El tiempo de ejecucion de ray tracing puede acelerarse con alguna de las
tecnicas v istas en Secciones anteriores, pero siempre sera un orden de magnitud mayor
que scan-line. Los tiempos de radiosidad son aun m as lentos, dado que el computo de
los factores de form a y la subdiv ision adaptativa involucra algoritm os de com plej idad
potencialmente ex ponencial.
Resultados: Tanto radiosidad como ray tracing producen resultados superiores a scan-line.
El m odelo de iluminacion de radiosidad es fsicamente correcto, y por lo tanto las im
agenes son las m as verosmiles realizadas hasta la fecha. La falta de iluminacion
puntual y reexion especular es una lim itacion. R ay tracing, por su parte, pro duce
resultados que im presio- nan pero no son siempre crebles. El m odelo de iluminacion
es incorrecto porque considera separadamente la componente lo cal y la recursiva.
Algori tmos: Los algoritm os para ray tracing son sin duda los mas sencillos y
adaptados a una meto dologa de desarrollo. Scan line utiliza un m odelo conceptual
uniforme (la tubera de pro cesos), pero para determ inados problem as (por ejemplo,
cara oculta) este mo delo se interrumpe y es necesario intercambiar informacion entre
distintos bloq ues del programa, con lo cual las implementaciones se van tornando mas y
mas desordenadas. Radiosidad necesita recurrir a algoritmos para computar el factor
de forma y subdividir adaptativamente la escena, los cuales son enormemente complejos
y problematicos.
Primitivas geometricas: En scan-line es posible representar objetos de una forma
arbitraria, o bien se puede trabajar con poligonizaciones. En ray tracing es indispensable
contar con ob- jetos cuya interseccion con rayos sea facilmente computable. Poligonizar
objetos puede tener un costo prohibitvo porque incrementa enormemente la cantidad de
tests de interseccion. Ra- diosidad debe traba jar con poligonizaciones, por lo que en
principio tam po co esta limitado en la geometra de los objetos.
Aliasi ng: Es un problema derivado del muestreo de la escena. En scan-line, un objeto
q ue al proyectarse se vuelve pequen~o o delgado, siempre es dibujado porq ue su
Com putacion
Graca
157
discretizacion encuentra por lo menos un pix el. En cambio en ray tracing puede
suceder que un objeto (o parte de un objeto) peque~no se encuentre entre dos rayos
trazados y por lo tanto no se dibuje.
158
Claudio Delrieux
7.7
os
Mapas de atribut
159
160
Claudio Delrieux
por lo que aparece abollada sin estarlo (no po dra aplicarse un mapa de desplazam ientos
porq ue el ray tracing no puede encontrar la interseccion rayo-esfera abollada).
159
7.8
Ejercicios
Testearlos con
2. Generar una escena con iluminantes, encontrar los valores de ilum inacion por medio
del modelo de Bouk night (ambiente+Lam bertiana) y sombrear con la tecnica de
Gouraud.
3. Repetir el ej ercicio anterior con el m odelo de iluminacion de Phong y el sombreado de
Phong.
Comparar tiempos y resultados.
4. Implementar el Ray Tracing recursivo y gracar una escena sencilla en la q ue ocurran
inter- reexiones.
5. Agregar a los ejercicios 3 y 4 un mapa de texturas y de normales.
6. Discutir los pasos necesarios para encontrar un mapa de entorno (pauta: utilizar las
caras de un cubo que rodea al objeto).
7.9
endada
Bibliografa recom
La m ayor parte de las referencias originales a los trabajos se fueron dando a lo largo del
Captulo. Sin embargo, com o las mejoras en los mo delos han sido objeto de estudio
intensivo, siempre es preferible recurrir a un texto mo derno que presente los resultados en
form a ordenada y con una notacion sistematica. Pocos son los libros en los q ue se aborda
este tema com o unico asunto. Entre ellos recom endam os leer el libro de Hall [46]. R
ecomendam os consultar tambien [9, 54, 48] para mayores detalles.
Los m odelos basicos de ilum inacion y sombreado se pueden consultar en el Captulo
25 del libro de Newman-Sproull [66] y en el Captulo 16 del libro de Foley et. al. [33].
Los lectores interesados en una presentacion rigurosa y concisa pueden consultar el
Captulo 2 del libro de Watt y Watt [84]. Los algoritmos de R ay Tracing han generado
una copiosa bibliografa.
Es preferible acercarse a traves de un enfoque gradual, como el
presentado en el libro de Glassner [41], aunque la introduccion al tema en los C aptulos 8, 9
y 10 del libro de Watt y Watt es bastante satisf actoria. Una presentacion de los detalles de
implementacion de radiosidad puede consultarse en [21] y en el Captulo 11 del libro de Watt
y Watt. Las tecnicas de mapeo de atributos estan descriptas en varios artculos. Aq u
recomendamos consultar [44, 51].
160
Claudio Delrieux
161
Aproximacion
de Supercies con
Puntos de Control
8.1
duccion
Int ro
8.2
162
Aproxim ac
i
Curvas
Claudio Delrieux
n de Sup ercies I:
Com putacion
Graca
163
8.2.1
Supercies de Bezie r
R ecordem os que una curva de Bezier se encontraba com o producto de una familia de
funciones base por el arreglo de puntos de control:
2
3
p0
6 p1 7
C (u) = [B0n(u); B1n(u); ; Bnn(u)]4 5 :
pn
2
3
p0 (u)
7
7 6
7
7 = 4 p1 (u) 5
;
5
pn(u)
pn(u)
Reemplazando una ex presion en la otra
obtenem os
p00
6
p01
m
n
6
S(u; v) = [B0m (v); B1m (v); ; B
(u);1B n (u); ;nB n (u)]
m (v )][B
0
4 .
p0m
m X
n
X
i=0 j=0
m
pjjiB n (u)B
(v):
i
p10
p11
.
p1m
3
pn0
7
pn0
7 :
7
..
.
. 5
pnm
Norm alm ente esta expresion se evalua unas 5 5 veces, y con los valores resultantes se arm
an
\caritas" (ver Figura 8.3).
de control (ver la bibliografa recom endada para el Captulo 4). Es posible ver que los
resultados son mucho mas satisfactorios en el sentido de que la curva se adapta a la form a del
grafo de control dandole peso adecuado a los puntos (ver Figura 8.7).
Figur a 8.8 Sup erc ie de Bezier aplic ando cara oculta y un modelo de iluminacion.
8.2.2
bicubicas
Supercies
B-Spline
Sk l (u; v) =
p10
p11
p12
p13
p20 p30
p21 p31
p22 p32
p23 p33
para obtener terminacion con repeticion de puntos de control debemos utilizar una matriz
p00
p00
p00
p01
p00
p00
p00
p01
p00
p00
p00
p01
p10
p10
p10
p11
p20
p20
p20
p21
p30
p30
p30
p31
p30
p30
p30
p31
p30
p30
p30
p31
p02
p03
p03
p03
p02
p03
p03
p03
p02
p03
p03
p03
p12
p13
p13
p13
p10
p10
p10
p11
p12
p13
p13
p13
p20 p30
p20 p30
p20 p30
p21 p31
p22 p32
p23 p33
p23 p33
p23 p33
En el tercer caso, la supercie es toroidal, lo cual permite modelar objetos que tengan
un agujero, como por ejemplo jarras con m anija. Para obtener esta term inacion 1-periodica
debem os utilizar una matriz
p00 p10 p20 p30 p00 p10 p20
p01 p11 p21 p31 p01 p11 p21
p02 p12 p22 p32 p02 p12 p22
p03 p13 p23 p33 p03 p13 p23
p00 p10 p20 p30 p00 p10 p20
p01 p11 p21 p31 p01 p11 p21
p02 p12 p22 p32 p02 p12 p22
Podemos ver en la Figura 8.9 un ejem plo de gura con topologa cilndrica, modelado
con 40 puntos de control, cuyo grafo se tambien se muestra.
8.3
aci
Aproxim
L as supercies obtenidas por medio del producto tensorial de curvas son una solucion
170
Claudio Delrieux
los modelos resultantes esta limitada a tres casos posibles. Por dicha razon se estudian
tambien supercies que provengan de un mo delo genuinamente bivariado, es decir, donde la
prim itiva de aprox im acion sea directam ente la supercie.
Una de las formas de realizar dichas aproximaciones se basa en el uso de dominios
triangula- res. De esa manera, la formulacion de curvas de Bezier basada en polinomios de
Bernstein o del algoritmo de de Casteljau se generaliza a parches triangulares.
8.3.1
A lgoritmo de
bivariado
de
Cast eljau
L os puntos de control deben asumir una conguracion triangular. Para poder denotarlos,
necesi- tam os utilizar una notacion especial, basada en multindices. Un multindice ~ =
(i1 ; i 2; ; i k+1 )
k+ 1
X
es una tupla de k + 1 enteros no negativos. La norma j~j de un multindice es j~j =
ij .
Tambien
j =1
p004
p013
p022
p103
p031
p112
p040
p121
p202
p130
p211
p220
p301
p310
p400
Un punto p~k (u) de la supercie q ue aproxima al grafo de control p~ con profundidad k es:
k
k1
k 1
k1
p~ (u) = up~+e1 (u) + vp~+ e2 (u) + w p~+e3 (u):
con p~0(u) =
p~ .
8.3.2
Polinomios
multivariados
de
Bernste
in
C omo en el caso de las curvas de Bezier, en las supercies triangulares existe la posibilidad
de encontrar una ex presion polinomial equivalente al algoritmo de de C asteljau, de menor
costo com- putacional. Sea un vector de k+1 variables u = (u 1; u2 ; ; u k+1 ), tales q ue u 1+u 2
Com putacion
171
Graca
d!
i 1!i 2! ik +1!
172
Claudio Delrieux
ij
uj ;
k ki
X
X0
i0 =0 i1 =0
(u; v ; (1 u v))p(i
(i0 ;i1 ;k i0 i1 i
)
;i ;k i ) :
0 1
172
Claudio Delrieux
8.4
Ejercicios
8.5
endada
Bibliografa recom
Gran parte de las referencias recomendadas para el Captulo 4 son adecuadas tambien para
este Captulo, en especial el libro de Farin [30] y el de Bartels et. al. [6]. L as discusiones
relacionadas con la lim itacion topologica de la aproximacion con supercies obtenidas con
productos tensoriales, as como el desarrollo de los parches de Bezier triangulares, y B- Spline
triangulares (no vistos aqu), puede consultarse en [58, 59, 45, 23].
174
Claudio Delrieux
Temas Avanzados
Captulo 9. Tem as
Avanzados
9.1
ion
Mo delos de refracc
Claudio Delrieux
raccion
177
Captulo 9. Tem as
Avanzados
9.2
acion
Anim
Por anim acion en C omputacion Graca entendemos bastante mas que modelar el
movimiento de los objetos y la camara dentro de la escena.
Una animacion por
computadora normalm ente in- volucra, ademas, cambios en la forma y color de los objetos,
en la iluminacion, en las texturas o en las estructuras. Actualmente es posible reconocer las
grandes posibilidades de la animacion por com putadora en las publicidades y en los video
juegos y aplicaciones interactivas. Sin embargo, las aplicaciones de la animacion van mas
alla, dado que es posible encontrarla en sistem as educa- cionales, simuladores de v uelo, usos
industriales, v isualizacion cientca, y hasta en los cascos de realidad virtual.
Las tecnicas basicas de anim acion por computadora se basan en la m etodologa
convencional de los dibujos animados. Esencialmente se parte de lo que se denom inan key
frames o cuadros clave, donde cada cuadro es exactamente una de las tantas im agenes por
segundo q ue se generan. To do lo que sucede entre dos cuadros clave sucesivos puede
interpolarse. Por lo tanto, dados dos cuadros clave sucesivos, y el tiempo que debe transcurrir
entre ellos, es posible computar los cuadros interm edios por m edio de tecnicas de
interpolacion. A esta operacion se la denom ina in betweening [61], (ver Figura 9.3).
La tecnicas que computan los estados interm edios de la escena reciben de los cuadros
claves una descripcion de cada elemento de la escena (objetos, iluminantes, posicion de la
cam ara, etc.) por medio de una lista de parametros, y su tarea consiste en calcular los
valores de dicha lista para los cuadros intermedios, y luego gracar la escena con dichos
valores. Esta interpolacion no es necesariamente lineal, dado que los objetos pueden tener
leyes de movimiento para conseguir determinados efectos. Por ejem plo, un objeto en cada
libre describe una parabola en el tiem po, por lo q ue su ley de movim iento del primer cuadro
clave al siguiente debe ser una parabola. Una aplicacion im portante de las curvas de Bezier
es, entonces, la descripcion de las leyes de movimiento en animacion.
En los sistemas comerciales ex iste una estandarizacion de los param etros que pueden
animarse, y de las leyes q ue se utilizan. Nacen, de esa manera, los lenguaj es para descripcion
de animaciones. Recomendamos al lector interesado que consulte el libro de N. MagnenatThalmann y D. T halmann [61] o el Captulo 21 del libro de Foley et. al. [34].
Las tecnicas avanzadas de animacion por computadora, sin embargo, no pueden q
uedarse en un nivel tan supercial de descripcion. Por ejem plo, si en la anim acion de un
objeto modelado con NURBS, la forma del mismo debe modicarse, lo logico es m odicar
adecuadam ente la posicion de sus puntos de control cuadro por cuadro. Sin embargo,
resulta im posible pensar que nuestro lengua je de animacion este preparado para contemplar
la interpolacion de este tipo de parametros.
Otros problema propios de la animacion por com putadora son la animacion de objetos
arti- culados y la anim acion de obj etos no rgidos. Una tecnica que ha ganado gran
popularidad es la anim acion por medio de sistem as de partculas. Todos estos temas son de
un nivel de com plejidad considerable. Recomendamos al lector interesado q ue consulte los
Captulos 15, 16, 17, y 18 del libro de Watt y Watt [84].
9.3
Cientc a
Visualizacion
179
Captulo 9. Tem as
Avanzados
180
Claudio Delrieux
ientca
9.3. Visualizacion C
Captulo 9. Tem as
Avanzados
datos de las capas se van desplazando una determ inada distancia en x e y a m edida q ue
estas son mas distantes en el eje z. Esta tecnica es bastante primaria, pero por esa m
ism a razon es implementable directamente con hardware especco. Su mayor limitacion
consiste en q ue, al
182
Claudio Delrieux
182
Claudio Delrieux
Captulo 9. Tem as
Avanzados
pantalla esta pensado com o para brindar soporte a este tipo de operaciones, es decir, se opta
por la solucion m as natural del hardware dedicado. En m aquinas PC, sin embargo, el buer
de pantalla no tiene capacidad para soportar estos computos intermedios, por lo que hay q
ue recurrir a la memoria de proposito general (R AM), con la consiguiente com plicacion en
la programacion, y los tiempos de computo mayores.
El procesamiento por celdas puede pensarse en forma diferente si se considera que los
datos estan formando voxels o formando celdas. El vox el es la mnima cantidad de
informacion en 3D y vendra a ser lo que es el pixel en 2D. En cambio, la celda esta formada
por 8 datos q ue seran los vertices, entonces se puede realizar un prom edio o bien una
interpolacion (trilineal) para obtener la informacion dentro de la celda y de esta form a
evitar que en la imagen se perciban los pequen~os cubos que la componen, cuando la matriz de
datos es pequen~a. La resolucion de los gracos esta dada por el tama~no de la m atriz de
datos. Las etapas mas im portantes de este proceso son:
Prepro cesam iento de datos, etapa que comprende la generacion y acondicionamiento
de la matriz de datos o buer volum etrico (V-Bu er ).
Adecuacion a las transform aciones de proyeccion. De acuerdo con el punto de
observacion se elige el orden en que se van a ir tomando los datos para su proyeccion
y se tom a el dato correspondiente.
Voxeliz acion, etapa q ue consiste en armar un vox el con una cierta ubicacion en el
espacio, de acuerdo a la posicion que tiene el dato en la matriz.
Mapeo de color y transparencia, es decir, cada voxel va a tener un color y una
transparencia asignada, de acuerdo al valor numerico del dato de la matriz q ue ha sido
tomado.
Proyeccion de las caras de cada voxel q ue son visibles sobre la pantalla com
putando la contribucion de color y transparencia que aporta el voxel sobre la imagen.
En la Figura 9.4 podemos ver el resultado de procesar matrices volumetricas de datos con
este pro cedimiento.
Deseam os dedicar en este ultimo C aptulo por lo m enos un par de hojas a cada uno
de los tem as que consideram os de gran importancia. De esa manera, el lector interesado puede
consultar la bibliografa recomendada. Un tratamiento mas profundo de estos temas puede
Com putacion
Graca
183
Captulo 9. Tem as
Avanzados
ser motivo para la segunda parte de este libro.
184
Claudio Delrieux
9.4
Mo delos no
Fractales
Determinstic os y
Una de las razones mas importantes de la gran difusion de las tecnicas de mo delado con
objetos fractales reside en su capacidad para pro ducir una representacion economica en tiempo
y espacio de modelos o fenomenos naturales. El inconveniente clave de la geom etra
tradicional q ue se utiliza en la Computacion Graca para representar objetos naturales es
su falta de simet ra a escala. Una costa po dra describirse m ediante segm entos, y si se
tomara un num ero grande de ellos, se vera bastante real. Sin embargo, cuando nos
acerquem os lo suciente, esta costa revelara su aspecto geometrico subyacente. Es por
este motivo que los objet os fract ales [62] estan teniendo un uso creciente en la computacion
graca, especialm ente aquellos basados en el m odelo del ruido Browniano fraccional (fBm )
[63].
Existen principalmente dos tipos de fractales: los determ insticos y los no determ
insticos. L os prim eros resultan generalmente de iterar sistemas de ecuaciones, y no incluyen
al azar en su calculo. Es decir, cada vez q ue se gracan, su aspecto es el mismo. Po demos citar
muchos ejemplos notables, aunque el mas popular es sin duda el conjunto de Mandelbrot (el
m apa de complejos c cuyo conjunto de Julia al iterar z z 2 + c es conexo).
L os fractales no determinsticos, en cambio, utilizan explcitamente num eros aleatorios
en de- terminadas etapas del calculo. Por lo tanto, el resultado nal es imprevisible. En la
representacion de fenomenos naturales, com o por ejem plo relieves montan~ osos, costas,
nubes, etc., suelen usarse los fractales no determ insticos. El calculo de los mismos
depende solamente de un parametro denominado dimension fract al D, que intenta reejar el
aspecto global del resultado. Los dem as aspectos quedan librados a lo que el generador de
numeros aleatorios entregue en cada paso.
Una de sus caractersticas interesantes es q ue satisfacen la propiedad de a utosim ilit ud, o
sea, se ven estadsticam ente similares (esto es \parecidos a primera vista") a s m ism os a
diferentes escalas. Un zoom a un objeto fractal no causara una perdida de naturalidad de su
aspecto, sino q ue, por el contrario, incorporara nuevos detalles no visibles a menor escala. La
autosimilitud puede concebirse como una sim etra a escala. Si el objeto es un fractal no determ
instico, esta similitud se da en terminos estadsticos, es decir, las propiedades geometricas
del objeto tienen distribuciones semejantes a diferentes escalas. En algunos casos particulares
pueden existir modelos matem aticos para determinados f enom enos naturales cuya fractalidad
es un fenom eno emergente. El interes de la C omputacion Graca en los fractales, sin
embargo, no es realizar una simulacion exhaustiva de dichos fenomenos, sino en producir
herramientas com putacionales que los im iten adecuadam ente en un tiempo razonable.
Un modelo matem atico de gran
es el mo vimiento Browniano fra ccional
medio de la transform ada rapida de
adecuados los metodos en el dominio
dichos calculos son
185
C ortes Se cuencial es: Es una variacion del anterior que tiene la ventaja de po der ser
calculado en secuencia, sin requerir calcular to do el arreglo. Por ello es aplicable a la
generacion de num eros aleatorios que sigan una distribucion fraccional. C onsiste en
tener un acumulador al q ue en cada tirada se le agrega una cantidad aleatoria. Esta
cantidad tiene componentes proporcionales a pero dos irracionales, cuyas am plitudes
son inversamente proporcionales a los pero dos. Una m etafora para entenderlo mej or
es suponer q ue tenem os varios dados,
186
Claudio Delrieux
Captulo 9. Tem as
Avanzados
Figura 9.5
punto medio.
algunos con numeros peq ue~nos, otros medianos y otros grandes. En cada tirada se arro
jan ciertos dados. La probabilidad de que un dado sea arrojado es inversam ente
proporcional a los numeros que guran en el.
Desplazamiento Al eatorio del Punto Medi o [35]:
Este metodo es com
putacionalmente mas eciente que los anteriores, y algortm icamente es mas sencillo
de entender. Se tom a como com ienzo y como nal dos puntos dados V (0) y V (1). Se
calcula el V promedio en el punto medio, y a ese valor se le agrega un V proporcional al
t segun la ecuacion ya v ista. L uego, cada mitad es tratada recursivamente de form a
similar.
La extension del algoritm o del punto medio a dos dimensiones puede aplicarse para
generar una distribucion bidimensional fractal de alturas. En este caso el punto medio
tiene en cuenta las alturas de sus cuatro vecinos. Es decir, cada punto medio esta en el
centro de una cara, cuyos vertices son tenidos en cuenta para calcular su altura esperada.
Esta altura es desplazada aleatoriamente en funcion de la escala. Con los puntos medios en el
centro de cada cara es posible ahora calcular la altura en los puntos medios de cada arista.
Estos dos pasos permiten pasar de una retcula de 1 1 y cuatro puntos a una retcula de
2 2 caras y nueve puntos. A cada cara de la retcula generada se le aplica recursivamente el
mismo algoritmo.
La Figura 9.5 muestra dos m apas de alturas fractales desarrollados con el meto do de
desplaza- miento del punto m edio. Estos resultados, ademas de perm itir la simulacion de
terrenos, pueden utilizarse como mapas de texturas para otro tipo de objetos. Por ejemplo,
en la Figura 5.17 se utilizaron fractales como mapa de desplazamientos en un algoritm o scanline, y en la Figura 7.19 se utilizaron como mapa de norm ales en un algoritmo de ray tracing.
184
Claudio Delrieux
A
p; q
x; y ; z
h
x,y
s; t
T ; T 1 ; T2
r ,g,b
Ck
C (u)
C (_u)
p_
S (u; v)
u
u; v
C i(u)
ui
pi
p; q
pki
B ni
Nin
b 2(u)::b 1(u)
I; Ia ; Ip
k a; kp ; kd
N; L; R
Notacion
Com putacion
Graca
185
Apendice A. Notacion
186
Claudio Delrieux
B
B.1
Elementos
Matem aticos de
la
Computacio
n Graca
a ij :
a1n
a2n
.
.
amn
3
7
7
7
5
2
6
6
c=6
4
c1
c2
.
.
cm
3
7
7
7
5
cij =
ail blj
l=1
jAj =
(1)
j:
i+j
aij jA ij
i=1
(a a) t
:
jAj
B.2
Claudio Delrieux
Com putacion
Graca
189
v w =k v kk w k cos();
3
(v
w
v
w
)
2
3
3
2
v w = 4 (v w v w ) 5
3 1
1 3
: (v1w2 v2w1 )
Es tambien util la
identidad
v w =k v kk w k sen();
donde
es el angulo entre ambos
vectores.
B.3
Anes
Transformaciones
Lineales y
190
Claudio Delrieux
REFERENCIAS
Referencias
[1] T. Akimoto, K. Mase, and Y. Suenaga. Pixel-Selected Ray Tracing. IEEE Co mputer
Graphics and Applica tions, 11(4):14{22, 1991.
[2] John Amanatides. Realism in C omputer Graphics: A Survey. IEEE C omput er Graph ics
and
Applicati ons, 7(1):44{56, January 1987.
[3] Brian Barsky. A Description and Evaluation of Various 3D Models. IEEE Com puter
Graphics and Applica tions, 4(1):38{52, January 1984.
[4] Brian Barsky and John Beatty. L ocal Control of Bias and Tension in Beta Splines. AC
M Compu ter Graphics, 17(3):193{218, July 1983.
[5] Brian Barsk y and Tony DeRose. Geom etric Continuity of Parametric Curves: Three Eq
uiv- alent Characterizations. IEEE Compu ter Graphi cs and Applica tions, 9(6):60{68,
November
1989.
[6] R. Bartels, J. Beatty, and B. Barsky. An Introduction to Splines for Use in C omput er
Graphics and Geometric Modelling. Springer- Verlag, New York , 1987.
[7] J. F. Blinn and M. E. Newell. Tex ture and Reection in Com puter Generated Images.
Com- municati ons of the ACM, 19(10):542{547, October 1976.
[8] James F. Blinn. Models of Light Reection for Computer Synthesized Pictures. ACM
Com- put er Grap hics, 11(2):192{198, 1977.
[9] James F. Blinn. Light Reection Function for Simulation of Clouds and Dusty Surfaces. AC
M Compu ter Graphics, 16(3):21{29, 1982.
[10] James F. Blinn. Where am I? Where am I Looking at?
Applicati ons, 8(4):76{81, July 1988.
[11] James F. Blinn. A Trip Down the Graphics Pipeline: Line C lipping. IEEE C omput er
Graphics and Applica tions, 11(1):98{105, January 1991.
[12] James F. Blinn. A Trip Down the Graphics Pipeline: Pixel C oordinates. IEEE Comput
er
Graph ics and Applicat ions, 11(4):81{85, July 1991.
[13] James F. Blinn. A Trip Down the Graphics Pipeline: Grandpa, What Does \Viewport"
Mean?
IEEE Comput er Grap hics and Applications, 12(1):83{87, January 1992.
[14] James F. Blinn. A Trip Down the Graphics Pipeline: The Homogeneous Perspective
Trans- form. IEEE Compu ter Graphics and Applications, 13(3):75{80, May 1993.
Com putacion
Graca
191
192
Claudio Delrieux
REFERENCIAS
[16] W . K. Bouknight and K. C. Kelley. An Algorithm for Producing Half- Tone Com puter
Graphics
Presentations with Shadows and Movable Light Sources. In Proceedings of the AFIPS, vol.
3 6, 1970.
[17] P. J. Boum a. Phys ical Aspects of Colour . Philips R esearch Lab., 1947.
[18] J ack Bressenham. Algorithm for Computer Control of a Digital Plotter. IBM Syst em s J
ournal,
4(1), 1965. R eimpreso en [36], paginas 106{111.
[19] I. C arlbom and J. Paciorek. Planar Geom etric Pro jections and View ing
Transformations.
ACM Com puting Reviews, 10(4):465{502, 1978.
[20] Silvia C astro, C laudio Delrieux , and Andrea Silvetti.
Una Interfase Amigable
Orientada a Desarrollos en Com putacion Graca. In INFOCOM `9 5, Buenos Aires,
Argentina, 1995. C ongreso Internacional de Inform atica y Telecomunicaciones.
[21] M ichael F. Cohen, Donald P. Greenberg, David S. Im mel, Philip J. Brock, S. Casey,
and N. Reingold. An Ecient Radiosity Approach for Realistic Image Synthesis. IEEE Co
mputer Graphics a nd Applicati ons, 6(2):26{35, 1986.
[22] W illiam Cowan. An Inexpensive scheme for Calibration of a Color Monitor in terms of
CIE Standard Coordinates. Com puter Graphics, 17(3):51{72, 1983.
[23] T . de R ose and R. Goldman. Functional Composition Algorithms v ia Bloosoming.
ACM Transactions on Grap hics, 12(2):115{135, 1993.
[24] T . A. Defanti, M . D. Brown, and B. H. McCormick. Visualization: Ex panding Scientic
and Engineering R esearch Opportunities. In G. M. Nielson and B. D. Shriver, editors,
Visualizati on i n Scient ic Compu ting, pages 32{47. IEEE Com puter Society Press, Los
Alamitos, C A, 1990.
[25] C . Delrieux, S. Castro, A. Silvetti, and S. Anchuvidart. Paletas Estaticas para
Gracos de Alta Calidad en PC. In XXII CL EI - Latin American Conference o n Infor
matics, Gramado, B rasil, 1995. SBC.
[26] C laudio Delrieux. C urvas y Supercies para Com putacion Graca y CAD. Technical
Report
Escuela de Ciencias Inform aticas, UBA-FCEN, Departamento de Computacion, 1998.
[27] C laudio Delrieux, Daniel Formica, Fernando Caba, and Esteban Pedroncini. Una
Solucion
Eciente al Problema de la Cara Oculta. Revista Telegraca Elect ronica, 934, 1991.
[28] R . Drebin, L. Carpenter, and P. Hanrahan. Volum e Rendering. ACM Compu ter Gra
phics,
22(4):65{74, 1988.
[29] Gouraud F. Continuous Shading of C urved Surfaces.
ers,
20(6):623{629, 1971.
[30] Gerald Farin. Cu rves and Surfa ces for Comp uter Aided Geometric Design. Academ ic
Press, New York , 1988.
[31] Hamid Faroosh and Gunther Schrack. CNS-HLS Mapping Using Fuzzy Sets. IEEE Co
mputer
Graphics a nd Applicati ons, 6(6):28{35, June 1986.
Com putacion
Graca
193
REFER
ENCIAS
[32] J . Farrell. Colour Display and Interactive Interpretation of Three-Dim ensional Data.
IBM J ournal of Research and Development, 27(4):356{366, 1983.
[33] J . Foley, A. Van Dam, S. Feiner, and J. Hughes. Compu ter Grap hics. Pr inciples and Pract
ice.
Addison- Wesley, Reading, Massachussetts, second edition, 1990.
[34] T . Foley, D. Lane, G. Nielson, and R . Ram araj. Visualizing Functions over a Sphere.
IEEE C omput er Grap hics and Applications, 10(1):32{40, 1990.
194
Claudio Delrieux
REFERENCIAS
[35] A. Fournier, D. Fussell, and L. Carpenter. Com puter R endering of Stochastic Mo dels.
Com- municati ons of the ACM, 25(6):371{384, 1982.
[36] Herbert Freeman. Tut orials a nd Select ed Readings in Intera ctive C omput er Graphics .
IEEE Press, 1980.
[37] H. Fuchs, M . Levoy, and J. K. L am. Interactive Visualization of 3D Medical Data. In G.
M.
Nielson and B. D. Shriver, editors, Vi sualization in Sci entic Comp uting, pages
140{146. IEEE Com puter Society Press, Los Alam itos, C A, 1990.
[38] S. Ganapathy and T . Dennehy. A New General Triangulation M etho d for Planar
Contours.
ACM Comput er Gra phics, 16(3):69{75, 1983.
[39] Michael Gervautz and Werner Purgathofer. A Simple Method for Color Quantization:
Octree
Quantization. In Andrew S. Glassner, editor, Graphics Gem s. Academic Press, 1990.
[40] W. K. Giloi. Interacti ve Com puter Graphics - Data St ructu res, Algorit hms, Langua
ges.
Prentice-Hall, Englewo od Clis, New Jersey, 1978.
[41] A. Glassner. An Introdu cti on t o Ray Tracing. Academ ic Press, Cambridge,
Massachussets,
1991.
[42] Jonas Gomes, Lucia Darsa, Bruno C osta, and Luiz Velho. Warping and Morphing of
Graphical
Objects. Morgan Kaufm ann, San Francisco, 1999.
[43] Cindy M. Goral, Kenneth E. Torrance, Donald P. Greenberg, and Bennett Battaile. Mo
deling the Interaction of Light Between Diuse Surfaces. AC M Com puter Graphi cs,
18(3):213{222,
1984.
[44] Ned Greene. Environm ent Mapping and Other Applications of Word Projections.
IEEE Compu ter Graphics and Applications, 6(11):21{29, 1986.
[45] G. Greiner and H. Seidel. Mo delling w ith Triangular B-Splines.
Graphics and Applica tions, 14(2):56{60, 1994.
[46] Roy Hall. Illu mination and Co lor in Compu ter Generated Imaginery. Springer-Verlag,
New
York , 1988.
[47] Roy A. Hall and Donald P. Greenberg. A Testbed for Realistic Image Synthesis.
IEEE Compu ter Graphics and Applications, 3(8):10{20, 1983.
[48] X. D. He and K. E. Torrance. A Comprehensive Phy sical Model for L ight Reection. AC
M Compu ter Graphics, 25(4):175{186, 1991.
[49] Paul Heckbert. C olor Image Quantization for Fram e Buer Displays. ACM Com puter
Graph- ics , 16(3):119{127, 1982.
[50] Paul Heckbert and Pat Hanrahan. Beam Tracing Poligonal Objects. ACM Compu ter
Graphics,
18(3):119{127, 1984.
[51] Paul S. Heckbert. Survey on Texture Mapping. IEEE Comp uter Graphics and
Com putacion
Graca
195
REFER
ENCIAS
Applications,
6(11):56{67, 1986.
[52] Max Herzberger. Modern Geometrical Optics. Interscience Publishing, 1958.
[53] W. Hibbard and D. Santek. Visualizating Large Meteorological Data. In G. M. Nielson
and B. D. Shriver, editors, Vi sualization in Scient ic Com puting, pages 147{152. IEEE
Computer So ciety Press, L os Alamitos, CA, 1990.
[54] James T. Kaj iya. T he Rendering Eq uation. ACM Co mputer Graphi cs, 20(4):143{150,
1986.
196
Claudio Delrieux
REFERENCIAS
[55] J ames T . Ka jiya and B. Von Herzen. R ay Tracing Volume Densities. ACM Comput er Gra
phics,
18(4):91{102, 1984.
[56] T . L. Kay and D. Greenberg. Transparency for Computer Sinthetized Images. AC M Co
mputer
Graphics ( Proc. SIGGRAPH '79), 13(3):158{164, 1979.
[57] Donald Knuth. The Art of Comput er Program ming, volume 2. Addison-Wesley,
Reading, M assachussetts, 1973.
[58] C . T. L oop and T . de R ose. A Multisided Generalization of Bezier Patches. ACM
Transactio ns o n Graphics, 8(3):204{234, 1989.
[59] C . T. Loop and T. de Rose. Generalized B-Spline Surfaces of Arbitrary Topologies.
ACM C omput er Grap hics, 24(4):347{356, 1990.
[60] W . Lorensen and H. Cline. A High Resolution 3D Surface Construction Algorithm.
ACM C omput er Grap hics, 21(4):163{169, 1987.
[61] N. Magnenat- Thalmann and D. Thalm ann. Compu ter Animation: Theory and Pract ice.
Springer-Verlag, Tokyo, segunda edition, 1988.
[62] B . Mandelbrot. T he Fractal Geometr y of Natu re. W . H. Freeman, New York , 1983.
[63] B . Mandelbrot and J. van Ness. Fractional Brownian Motion, fractional noises and
applica- tions. SIAM Review, 10(4):422{437, 1968.
[64] G. Murch. Phy siological Principles for the Eective Use of Color. IEEE Com puter Graphi
cs a nd Applicati ons, 4(11):49{54, 1984.
[65] H. D. Murray. Colou r i n Theory and Practi ce. C hapman- Hall, New York, 1952.
[66] W . Newm an and R. Sproull. Princip les of Interactive C omput er Graphics. McGraw- Hill,
New
York, second edition, 1979.
[67] Gustavo A. Patow and Claudio A. Delrieux . On Low Cost R efraction Models. Co
mputer
Net wor ks and ISDN Systems, forthcoming:Elsevier Science, 1997.
[68] H.-O. Peitgen and D. Saupe. T he Science of Fra cta l Im ages. Springer-Verlag, New
York,
1986.
[69] B ui-Tong Phong. Illumination for Computer- Generated Pictures. Commu nica tions of t
he
ACM, 18(6):311{317, 1975.
[70] L es Piegl. Interactive Data Interpolation by Rational Bezier Curves. IEEE Com puter
Graphi cs a nd Applicati ons, 7(4):45{58, 1987.
[71] L es Piegl. On NUR BS: A Survey. IEEE C omput er Graphics a nd Applicat ions,
11(1):55{71,
1991.
[72] P. K. Robertson. Visualizing C olor Gamuts: a User Interface for the Eective Use of
Perceptual
C olor Spaces in Data Displays. IEEE Com puter Graphics and Ap plicat ions , 8(5):50{64, 1988.
[73] P. K. Robertson and J. O'Callaghan. The Generation of Color Sequences for Univariate and
Com putacion
Graca
197
REFER
ENCIAS
B ivariate Mapping. IEEE Comput er Gra phics and Appli cations, 6(2), 1986.
[74] L . Rosenblum. Scientic Visualization at R esearch Laboratories. IEEE Comput er ,
22(8):68{
100, 1989.
[75] M ichael W. Schwarz, W illiam B. C owan, and John C. Beatty. An Experimental Com
parison of RGB, YIQ, LAB, HSV and Opponent Color M odels. ACM Transactions on
Gra phics,
6(2):123{158, 1987.
198
Claudio Delrieux
REFERENCIAS
[76] M. Stone. Color Printing for C omputer Graphics. Technical R eport EDL- 88-5, XEROX
Palo
Alto R esearch Center, 1988.
[77] M. Stone, W. Cowan, and J. Beatty. Color Gamut Mapping and the Printing of Digital
Color
Im ages. Technical Report EDL-88-1, XEROX Palo Alto Research Center, 1988.
[78] I. E. Sutherland, R . F. Sproull, and R. A. Schumaker. A Characterization of Ten
Hidden
Surface Algorithm s. ACM C omput er Surveys, 6(1):387{441, 1974.
[79] I. E. Sutherland and Ho dgman G. W. Reentrant Poly gon Clipping. Commu nications of
the
ACM, 17(1):34{42, 1974.
[80] Ivan Sutherland. Sketchpad: A Man-Machine Grphical Communication System. In
Spring
Joint Comput er Conference Proceedings. AFIPS, 1963. Reimpreso en [36], paginas 2{19.
[81] Alain Trouve. La Mesu re d e la Cou leur. AFNOR-CETIM, Paris, 1991.
[82] Alek sej G. Voloboj. The Metho d of Dy nam ic Palette C onstruction in Realistic
Visualization
Sy stems. Com puter Graphics Fo rum, 12(5):289{296, 1993.
[83] J. E. Warnock. A hidden-surface algor ithm for comput er generated half-tone pictu res.
PhD
thesis, Univ. Utah Comput. Sci Dept., TR 4- 15, 1969, NTIS AD-753 671, 1969.
[84] Alan Watt and Mark Watt. Advanced Animation and Render ing Techni ques. AddisonWesley, London, 1992.
[85] T. W hitted. An Im proved Illumination M odel for Shaded Display s. Commu nicat ions of
the
ACM, 23(6):343{349, 1980.
[86] Thomas Wright. A Two- Space Solution to the Hidden Line Problem for Plotting
Functions of T wo Variables. IEEE Transactions on Compu ters, 4(1), 1973. Reimpreso en
[36], paginas
284{289.
[87] C. Wylie, G. W. Rom ney, D. C. Evans, and A. C. Erdahl. Halftone Perspective
Drawings by C omputer. In Fall Jo int Compu ter Conference 1967, pages 44{58,
Washington, DC, 1967. AFIPS.
Com putacion
Graca
199