Date post: | 06-Jul-2018 |
Category: |
Documents |
Upload: | overflow87 |
View: | 223 times |
Download: | 1 times |
of 34
8/17/2019 Resumen Final TGC
1/34
Unidad 1 Conceptos Básicos 2D
Pixel (Picture-Element): Mínima unidad de color que compone una imagen
digital.
El pixel se puede entender como una muestra individual de una imagen, sintamaño ni forma, adimensional e independiente del dispositivo que lo va a
mostrar. O bien puede ser entendido como un punto físico de una imagen en el
dispositivo, el cual posee un tamaño jo, una forma determinada y depende de
la tecnología empleada.
Modelo RB (Red! reen! Blue! Es un modelo de color aditivo, los colores
se forman con la me"cla por adici#n de distintas intensidades de los $ colores
primarios.
El modelo %&' no es capa" de representar toda la gama de colores (o &amut
que un )umano puede percibir. Existen otros modelos que cubren gamas decolores distintas.
Modelo CM"# (C$an! Ma%enta! "ello&! #e$! Es un modelo de color
sustractivo, ampliamente utili"ado en impresoras de c)orro de tinta. *ara este
modelo se utili"a un fondo blanco y se combinan pigmentos de +ian, Magenta,
marillo y -egro para absorber lu" y reejar solo una parte de ella.
'upixeles: la mayoría de los dispositivos no pueden mostrar los $ canales de
colores en la misma ubicaci#n física, por ello se los divide en subpixeles donde
cada uno emite las intensidades de rojo, verde o a"ul por separado.
Btimap (tamin llamado Raster): Es un tipo de estructura de datos
utili"ada para almacenar im/genes digitales. 0us elementos son!
• 1n formato de imagen (2imensiones, anc)o y alto expresado en pixeles.
3ormato de pixel, principalmente la profundidad de color.• 1n conjunto de pixeles, tantos como indique su formato.
Pro*undidad de Color (Color Dept+): 2escribe la cantidad de bits que se
utili"an para representar el valor de un pixel expresado en 'pp ('its per pixel.
2etermina la cantidad de informaci#n que puede contener cada pixel. mayor
cantidad de bits por pixel m/s amplio es el rango de colores a representar.
Monocromo (4 bpp 5 colores. 6& indexado (7 bpp 589 colores. :i+olor (49
bpp 988$9 colores. ;rue+olor (5< o $5 bpp seg=n tenga canal alfa 49 millones
colores.
0e puede denominar *ixmap a los bitmap con m/s de un bit por pixel, pero
para nosotros es indistinto el nombre 'itmap del pixmap.
8/17/2019 Resumen Final TGC
2/34
+olor >ndexado! se denomina así a los formatos con profundidad de color de
)asta 7bpp. ?os valores de los pixeles no representan directamente un color
sino que referencian a una paleta de colores que contiene los valores reales
nales de %&'. Ocupan poco espacio, pero dispone de cantidad de colores
limitados.
,ectores $ Bitmaps: ?as im/genes digitales pueden ser representadas por
gr/cos basados en 'itmaps (o %asters o bien basados en 6ectores.
'itmaps! 0on dependientes de la resoluci#n (cantidad de pixeles en una unidad
de longitud, ejemplo dpi (dots per inc). Esto es un problema al tener que
redimensionar el bitmap, al reducirlo )ay que quitarle informaci#n a la imagen
y al ampliarlo )ay que reali"ar interpolaci#n para estimar los colores de los
nuevos pixeles, produciendo muc)as veces efectos de pixelado. ?a ventaja de
los 'itmaps es su calidad de imagen, que trae consigo la desventaja de la
necesidad de memoria. Ejemplos! @*E&, &>3, 'M*, *-&.
&r/cos 6ectoriales! Est/n compuestos por objetos denidos por ecuaciones
matem/ticas en lugar de pixeles. Es independiente de la resoluci#n, al
aumentar o disminuir el tamaño mantienen la calidad, esto es debido a que se
reali"an los c/lculos matem/ticos para convertir las ecuaciones en pixeles que
el dispositivo pueda interpretar (este proceso se llama rasteri"aci#n. Esta
sobrecarga de procesamiento es su principal desventaja. 0u ventaja es que no
ocupan muc)o espacio debido a que solo deben guardar los coecientes de las
ecuaciones. -o son buenos para im/genes fotogr/cas debido a que las
mismas se componen de guras con variaciones de tonalidades muy sutiles. 0e
utili"an principalmente en diseño asistido por computadora y animaciones.
Ejemplos! 06&, +2%, >.
+ada sistema graco tiene al menos dos espacios de coordenadas distintos!
• Espacio de usuario: Es el espacio, independiente del dispositivo, en el
que se crean las primitivas gr/cas.• Espacio de dispositio: Es el espacio del dispositivo gr/co de salida
(pantalla, impresora
En el espacio de usuario pueden utili"arse unidades como puntos, milímetros o
pulgadas, luego en el espacio de dispositivo estas magnitudes ser/n
convertidas a pixeles. Este proceso debe ser transparente para el usuario, solo
8/17/2019 Resumen Final TGC
3/34
le interesa especicar la geometría respecto de su espacio de usuario y delegar
las transformaciones al sistema.
.ormato dimensional es el n=mero de pixeles distintos que se puede mostrar
en cada dimensi#n de una imagen. Ejemplo 4A5
0lmacenamiento de ima%enes
?a manera m/s directa de almacenar un 'itmap es en formato %F(codicando la informaci#n de cada pixel uno al lado del otro sin compresi#n.
Esta tGcnica es eciente en cuanto a velocidad pero ineciente en cuanto a
espacio. un así es la tGcnica m/s utili"ada actualmente.
;amaño (en H' I nc)o x lto x 'pp J 7 x 4A5<
+abe aclarar que si se almacena un 'itmap en un formato de arc)ivo )ay que
sumarle su respectivo encabe"ado con informaci#n como las dimensiones, el
formato de pixel, paleta de colores, cantidad de capas, etc.
;asa de transferencia en dispositivos gr/cos
?a forma de transmitir im/genes es mediante un ujo continuo de datos en el
cual los pixeles son enviados uno detr/s de otro, esto se denomina sistema
raster.
;asa de datos (en bitsJsegundo I nc)o x lto x 'pp x 3ps
Compresi/n de má%enes
8/17/2019 Resumen Final TGC
4/34
0e basa en que todas las im/genes tienen semejan"a o correlaci#n entre los
pixeles. Existen dos componentes fundamentales para la compresi#n!
reducci#n de redundancia y reducci#n de irrelevancia.
• %educci#n de redundancia! >ntenta eliminar la repetici#n en la imagen
original, tiene $ subtipos.o %edundancia espacial ! correlaci#n entre pixeles vecinos.o %edundancia espectral! correlaci#n entre planos de coloro %edundancia temporal! correlaci#n entre cuadros de una
secuencia• %educci#n de la irrelevancia! >ntenta omitir la parte de la imagen que no
ser/ percibida por el receptor )umano.
Existen dos tipos de compresi#n!
• 0in perdida (lossless! la imagen reconstruida es igual bit a bit a la
original. 0olo alcan"a niveles bajos de compresi#n.• +on perdida (lossy! la imagen reconstruida es una versi#n aproximada
de la original. 0e logran altos niveles de compresi#n y bajo condiciones
normales la perdida no es percibida por el receptor )umano.
cnicas de compresi/n:
%un ?eng)t Encoding (%?E! ?os pixeles consecutivos se codican como =nico
valor y su cantidad. Ejemplos! K7L A seria AAAAAAAA. sí se logran a)orrar
varios bytes.
+odicaci#n ?empelNiv! 1tili"a un diccionario con las secuencias de valores de
los pixeles ya encontrados. ?os datos comprimidos contienen los c#digos de lasentradas del diccionario.
+odicaci#n :uman! En lugar de utili"ar n=mero jo de bits utili"a c#digos
variables, los valores m/s frecuentes utili"an c#digos m/s cortos.
;ransformada del coseno discreta (2+;! ?os bloques de pixeles son
representados usando funciones de coseno de distintas frecuencias, las
frecuencias altas, que contienen menos informaci#n, son descartadas. Esta
tGcnica es muy utili"ada en formatos @*& y M*E&.
0in pGrdida! %?E, ?empelNip y :uman. +on pGrdida! 2+;
8/17/2019 Resumen Final TGC
5/34
Unidad 2 Conceptos 0an3ados 2D
?os %eal ;ime >nteractive 0ystem (%;>0 o sistema interactivos en tiempo real
son de naturale"a distinta a las aplicaciones a las que estamos acostumbrados.
?os %;>0 cuentan con $ procesos fundamentalmente! adquisici#n de
informaci#n, procesamiento de informaci#n y exposici#n de resultados.
Modelo orientado al control
Es el modelo m/s conocido en el que todo programa tiene un inicio y un n
(generalmente en un bloque de c#digo main. Este modelo no se adapta a la
idea de m=ltiples entradas por eventos ya que debemos estar c)equeando el
estado de los dispositivos a mano (independientemente de que )ayan
cambiado su estado o no dentro del bloque principal y eso lleva a una alta
utili"aci#n del procesador.
Modelo mane4ado a eentos
0oluciona el problema de la eciencia utili"ando una cola de eventos o cola de
mensajes y reempla"ando main por mainEvent?oop. ?a idea es denir los
posibles eventos para los cuales el sistema debe reaccionar, reali"ar
procesamiento y luego volver a su estado de reposo. El sistema graco
mantiene la cola ordenada cronol#gicamente y la aplicaci#n se debe encargar
de ir procesando los eventos en ese orden, una ve" que no )aya m/s eventos a
procesar el proceso permanece en modo espera.
?os ciclos en tiempo real cuentan con dos tareas! update o actuali"aci#n que
consiste en reali"ar los procesos de adquisici#n y procesamiento, es decir los
c/lculos de posiciones, rutinas de > y de física, etc. D la segunda tarea es la
rendering o representaci#n de la escena donde en base a los datos obtenidos
en el update se reali"a el armado de la escena gr/ca.
+iclo coplado! se base en darle igual prioridad a la rutina de update que la
rendering, esto trae el problema de que a diferentes )ardare el sistema
puede comportarse de maneras
inesperadas, como actuali"ar
demasiado r/pido y que la
aplicaci#n se torne incontrolable.
+iclo 2esacoplado! se basa enubicar las dos rutinas en forma
secuencial pero saltear la rutinade update en algunos ciclos paraque la misma se ejecute unnumero constante de vecesmientras que la rutina de rendering se ejecutara todas las veces que lo permitael )ardare subyacente. *ara lograr esto se calcula el tiempo ocurrido desde la=ltima llamada a la rutina y se compara con la inversa de la frecuenciadeseada y así sabemos si debemos actuali"ar o no.
8/17/2019 Resumen Final TGC
6/34
En la mayoría de los casos, a este modelo se lo suele combinar con un modelomanejado por eventos que posee la capacidad de poder reaccionar a loseventos del sistema5ard&are en sistemas de %rá6cos raster
?os sistemas de gr/cos raster no solo emplean una +*1 sino que tambiGn
utili"an un controlador de video o controlador de pantalla. ?a conguraci#n m/ssimple para estos controladores es tener una porci#n de memoria llamada
3ramebuer donde se almacena temporalmente la imagen raster. ?uego el
controlador recorre el framebuer para refrescar la pantalla. En este barrido
raster o refresco el controlador escanea cada uno de los valores de i"quierda a
derec)a de arriba )acia abajo
y lo trasforma en intensidades
elGctricas que permiten que el
dispositivo de salida los
muestre como distintos colores
en su grilla de pixeles. Elbarrido vertical es el que toma
mas tiempo. l controlador de
video tambiGn se lo llama 2+
(2igital nalog +onverter.
*ara alivianar la carga de la
+*1 y mejorar el rendimiento
se utili"a un coprocesador
gr/co o &*1 (&rap)ics
*rocessing 1nit y un /rea de
memoria separada dedicada a este procesador.
Entre las varias tareas que puede reali"ar una &*1 se encuentra la de reali"ar
%asterOps como convertir primitivas gr/cas en pixeles.
Rasteri3aci/n: Es el proceso de tomar primitias %rá6cas especi6cadas
en el espacio de usuario (independiente del dispositio)! $trans*ormarlas a su e7uialente en p8xeles9
Primitias rá6cas (elemento *undamentales con los 7ue se
con*orman las escenas)
*unto! Es una t=pla de valores que representan una posici#n en un sistema de
coordenadas. ?os atributos del mismo pueden ser tamaño y color.
8/17/2019 Resumen Final TGC
7/34
?ínea! Est/ formada por todos los pixeles que se encuentran en la línea que
conecta dos puntos. 0us atributos pueden ser! grosor, color, trama, etc.
;ransformaciones en 52! las m/s comunes son traslaci#n, escalado y rotaci#n.
(Matrices de trasformaci#n en la )oja de f#rmulas.
0e dice que el escalado es uniforme si el valor 0x I 0y de la matri" deescalado, si son diferentes se denomina escalado diferencial.
Composici/n de rans*ormaciones
+on las coordenadas )omogGneas llegamos a un modelo uniforme de
multiplicaci#n de matrices para cada transformaci#n. 0i queremos escalar,rotar y luego trasladar una imagen podemos concatenar las matrices así!
;(%(06 o bien! (;%06 . Esto signica que podemos agrupar las $
trasformaciones en una =nica matri" M I ;%0. Esto es muy =til en tGrminos de
eciencia ya que solo calculamos una ve" la matri" y se la aplicamos a todos
los vectores (miles que necesitemos, en ve" de tener que estar )aciendo $
multiplicaciones de matrices por cada vector. En esta notaci#n las
multiplicaciones se reali"an de derec)a a i"quierda, Escalado, %otaci#n,
;raslaci#n (;%0 en nuestro ejemplo. -o es lo mismo invertir el orden.
En el caso particular de los 'itmaps no resulta eciente aplicar estas
transformaciones a cada pixel de forma convencional, por ello el &*1 poseerutinas optimi"adas para ello. Estas rutinas entran en la categoría de
%asterOps. 1na de las m/s utili"adas es la de 'it'lit o 'lit ('it 'locP ;ransfer,
que reali"a copia de bloques de pixeles de un lugar a otro. Esta operaci#n
representa la traslaci#n. Otras opciones que permite esta rutina de %asterOps
es la de reali"ar operaciones como el -2, O%, CO%, etc. Otra opci#n muy
utili"ada es la +lipping (recorte. ;ambiGn existen %asterOps para escalar y
8/17/2019 Resumen Final TGC
8/34
rotar 'itmaps cuando se los copia a destino. Muc)as bibliotecas gr/cas
abstraen el concepto de 'itmap, framebuer o cualquier regi#n de memoria
capa" de almacenar pixeles bajo el concepto de supercie, )aciendo m/s
sencilla la programaci#n.
El Blitter cumple la *unci/n de copiar rápidamente lo7ues de pixelesde una re%i/n de memoria a otra9
ransparencia $ traslucide3 son conceptos di*erentes9 1n pixel es
transparente o no lo es, mientras que la traslucide" puede tener varios grados
de opacidad (siendo opacidad lo contrario a transparencia, 4AAQ opaco, AQ
transparente.
cnicas de ransparencia
ransparencia por color clae, se basa en denir un +olor Hey y luego a la
)ora de imprimir la imagen sobre el fondo la funci#n de 'lit se encarga de
ignorar todos los pixeles de ese color denido. ?a informaci#n de transparenciase codica en el mismo canal %&', lo cual a)orra espacio, por contrapartida la
imagen copiada no dispone de ese color clave denido, adem/s esta tGcnica no
contempla traslucide", los pixeles se copian 4AAQ opacos o no se copian.
ransparencia por mascara! tiene la misma idea base que la tGcnica
anterior pero utili"a un 'itmap aparte de 4'pp, entonces solo copiara los
pixeles de la imagen que en su correspondiente posici#n del bitmap de la
m/scara posea un 4. 1tili"a m/s espacio, pero no se reserva ning=n color y las
m/scaras son intercambiables sin modicar el bitmap original.
cnicas de raslucide3
?a forma m/s utili"ada para mostrar un imagen con distintos niveles de
opacidad encima de otra imagen de fondo es lp)a 'lending (me"clado
alp)a. 0e combinan los valores de los pixeles de una imagen con los de la
imagen de fondo teniendo en cuenta el valor alp)a (opacidad. + I alp)a R
S (4 T alp)a R '
raslucide3 Uni*orme, es cuando se aplica un valor de alp)a uniforme a toda
la imagen.
0lp+a Blendin%! utili"ando el alp)a c)annel a cada pixel se le asigna un valorde alp)a y luego se utili"a la formula antes vista, logrando así efectos de
traslucide" diferentes para cada pixel. Esta tGcnica se utili"a muc)o para evitar
el efecto serruc)o en la tGcnica de antialising.
0nimaci/n en 2D
8/17/2019 Resumen Final TGC
9/34
?a forma m/s com=n de lograr efectos de movimiento es con im/genes
est/ticas, mostrando una imagen y cambi/ndola por otra levemente diferente
a intervalos lo sucientemente cortos.
rans*ormaciones %eomtricas, se basa en aplicar las transformaciones
antes vistas variando levemente los par/metros en forma gradual y continua
en el tiempo. ?os valores de estos par/metros resultan de la interpolaci#n del
tiempo transcurrido entre el primer y el =ltimo cuadro.
0nimaci/n por Cuadros, 0e basa en el principio que utili"aban los dibujos
animados tradicionales donde se dibuja cada cuadro y se arma un fotograma
con la seguidilla de los mismos. lgunas tGcnicas se siguen utili"ando en
animaci#n por computadora
?ooping, es la tGcnica que permite a)orrar cuadros en secuencias que se
repiten.
0alto de +uadros, cuando un mismo cuadro permanece m/s tiempo en pantallaque la tasa de refresco del dispositivo, ejemplo dispositivo con 9A fps con una
animaci#n de $A fps.
Mosaico o 0prite 0)eet, consiste en tener un =nico bitmap con todos los
cuadros ubicados uno al lado del otro en forma de mosaico y usar el clipping
del blitter para copiar una subregi#n del bitmap en cada actuali"aci#n. 0e
a)orra muc)o espacio y se obtiene mejor performance, aunque requiere de un
pequeño c/lculo para obtener las subregiones, por eso es deseable que todas
las im/genes tengan el mismo tamaño.
os 'prites son Bitmaps con transparencia 7ue además poseenpropiedades asociadas como posici/n! án%ulo! escalado! puntos decolisi/n! etc9
earin% o parpadeo, es un artifact (efecto no deseado que se produce cuando
una aplicaci#n no puede mantener un estado gr/co consistente durante el
momento de refresco de la pantalla. 0i durante la lectura del controlador de
video de los pixeles del framebuer, la aplicaci#n actuali"a el cuadro, se ver/ la
pantalla dividida en franjas, una con el cuadro anterior y otra con el cuadro
actual a dibujar. *ara evitar esto deberíamos copiar la escena al framebuer
cuando el controlador no lo estG leyendo, para ello )ay un tiempo muy corto
llamado 6ertical 'lanP >nterval (6'> entre una lectura y la siguiente, pero esdemasiado corto para armar escenas complejas, por ello debemos recurrir a
otro mGtodo.
Doule Bu;erin%! Es una tGcnica de 'acP 'uering que permite eliminar el
efecto de tearing mediante el uso de otro buer extra, 'acP buer (al
framebuer se lo denomina front buer tambiGn. mbos buers tienen las
mismas características. El bacP buer es un buer secundario, no visible, que
8/17/2019 Resumen Final TGC
10/34
act=a de espacio temporal donde reali"ar el proceso de dibujado y una ve"
nali"ado el mismo se reali"a la copia del bacP buer al front buer mediante
un copiado masivo muy r/pido implementado por )ardare que se reali"a en el
6ertical 'lanP >nterval. 0i comparamos los fps de esta tGcnica vs el dibujado
directo en el framebuer vemos que es menos performante, pero la
performance percibida por el usuario es muc)o mejor.
Pa%e .lippin%, es similar a doublG buering, la =nica diferencia es que se
utili"a la capacidad de los adaptadores de video de cambiar el puntero al
framebuer para evitar el copiado de un buer a otro, así se va alternando el
puntero de un buer a otro y vamos dibujando la escena alternadamente en
cada uno.
riple Bu;erin%, para evitar ese problema de tener que sincroni"ar con el 6'>,
se utili"an dos bacP buers y se puede me"clar esta tGcnica con page ipping.
1tili"ar m/s buers no representa mejora y produce retardo respecto al input
lag.
8/17/2019 Resumen Final TGC
11/34
Unidad < Conceptos Básicos
8/17/2019 Resumen Final TGC
12/34
+olor! +ada vGrtice puede especicar un color %&' o %&'. Este color se
utili"ara para calcular la iluminaci#n del tri/ngulo, es independiente de la
textura. ?os adaptadores de video toman los colores de los vGrtices y generan
colores interpolados para los pixeles de pantalla que se encuentren en el medio
de los vGrtices que especican un color.
Renderin%
1na ve" denido nuestro universo $2 especicando las primitivas gr/cas que
denen cada malla necesitamos poder visuali"ar el resultado. *ara ello
debemos pasar de nuestro modelo l#gico en $2 a un modelo físico en 52 (ya
que los dispositivos trabajan en dos dimensiones. *ara lograrlo el modelo
l#gico deber/ ser proyectado a un modelo de dos dimensiones compuesto por
pixels. Este proceso se denomina rendering. l nali"ar el proceso de rendering
se obtiene una imagen digital en dos dimensiones, una imagen tipo raster.
?a c/mara es lo que determina que parte ser/ visible del universo $2 en unmomento dado, y se la denomina 3rustum. El *rustum es una 6%ura
%eomtrica de aspecto piramidal9
;odos los tri/ngulos que se encuentren dentro del volumen del frustum ser/n
visibles en pantalla (excepto aquellos que sean tapados por otros. quellos
tri/ngulos que se encuentren parte dentro y parte fuera ser/n recortados )asta
dejar solo la parte de los mismos que es visible (trian%le splittin%. l
proceso de determinar que tri/ngulos caen dentro y cuales fuera se lo
denomina .rustum Cullin%9
2eterminar que tri/ngulos ser/n visibles dentro del frustum debido a que
algunos pueden ser tapados por otros se denomina =cclusion Cullin%9
*or lo tanto el concepto de %endering consiste en calcular, para una c/maradeterminada, dentro de un universo $2 determinado, que pixels deber/n serdibujados en pantalla.
Renderi3ado Realime s =>ine
En el renderi"ado OVine se construye un universo $2 y a partir de Gl seobtienen im/genes (renders bajo determinadas posiciones de la c/mara. Elfoco en este tipo de aplicaci#n es obtener la mayor calidad posible sin importar
tanto el tiempo de procesamiento. El cine de animaci#n, la edici#n digital deim/genes y la fotografía tienen este tipo de necesidades.
En el renderi"ado %eal;ime la situaci#n es completamente diferente, elprograma tiene una naturale"a crítica respecto del tiempo, debe dar respuestaen tiempo real al usuario que lo est/ utili"ando. plicaciones como programasde diseño gr/co, programas de simulaciones y video juegos son ejemplos dealgunos que tienen estas necesidades.
8/17/2019 Resumen Final TGC
13/34
rap+ics Pipeline
*ara reali"ar un render, es decir, pasar del modelo l#gico de $2 al modelo físico52 que se mostrara en pantalla, existen una serie de complejos pasos a seguirque se denominan &rap)ics *ipeline.
muy grandes rasgos, los pasos de una aplicaci#n $2 son los siguientes!El programa especica a la *> la geometría en su modelo $2, texturas eiluminaci#n del mundo $2 que desea construir. ?a *>, junto con la ayuda delos adaptadores de video, recibe toda la informaci#n de la aplicaci#n, laprocesa y la transforma para ser proyectada en el plano 52 de una pantalla.
;odo este proceso se denomina rendering y para completarlo se debe pasar portodas las etapas del &rap)ics *ipeline.?as etapas del &rap)ics *ipeline son secuenciales. ?a informaci#n llega a unaetapa, es procesada y luego envía su respuesta a la siguiente etapa.?a entrada inicial del *ipeline ser/ la descripci#n del modelo l#gico del universo$2 y la salida ser/ la matri" de pixeles que se mostrar/ en pantalla.
Etapa 0pplication?'cene: Esta etapa no pertenece a la *>, es dondese concentrar/ el mayor trabajo del programador. En esta etapa se crea ycongura el universo $2, se construyen todos los modelos a partir de lasprimitivas, se conguran los aspectos de iluminaci#n y texturas para cadamodelo y se conguran los par/metros de la c/mara. ;ambiGn se efectuarantodos los c/lculos de inteligencia articial, detecci#n de colisiones, c/lculos de
física, etc.
Etapa eometr$ : Esta etapa se divide en varios procesos.
rans*orms! 0e recibe la geometría provista por la aplicaci#n junto con lastransformaciones que se les desea aplicar. En esta etapa la *> reali"a todas lastransformaciones especicadas para cada modelo y termina obteniendo laverdadera posici#n en el espacio de un objeto $2.
8/17/2019 Resumen Final TGC
14/34
+abe destacar que ya a principio de esta etapa, la *> junto con losadaptadores de video, desconocen el concepto de modelo $2 o malla y solo semanejan a nivel de tri/ngulo. ?a *> gr/ca continuar/ el resto de los pasos delpipeline trabajando individualmente sobre cada tri/ngulo.
.rustum Cullin%: En esta etapa se eval=a que tri/ngulos est/n dentro y
cuales fuera. ?os que estGn fuera en este momento dado ya no pasaran a lasiguiente etapa. ?os que estGn dentro por completo o parte dentro pasaran,luego se los cortara como corresponda.
[email protected] Cullin%: En este proceso todos los tri/ngulos que se encuentrancompletamente )acia el lado contrario a la c/mara son eliminados, ya quenunca ser/n visibles. *ara esto se utili"a la informaci#n del vector normal acada triangulo.
Per-,ertex i%+tin%: En esta etapa se procesan todos los par/metros deiluminaci#n denidos. El usuario cuenta con estos par/metros para denir lailuminaci#n! +olor por vGrtice, Material del mes), ?uces que )ayan sido
colocadas en el universo $2. El modelo de iluminaci#n utili"ado es el &ouraud0)ading que determina el color de cada vGrtice y luego se interpola paraobtener los colores de los puntos restantes del tri/ngulo. En este proceso setermina calculando el color verdadero de cada vGrtice, no de cada pixel, eso seefectuara luego en la etapa de 0)ading a partir de lo calculado aquí.
rian%le Clippin%! En esta etapa se cortan todos los tri/ngulos que tienenparte dentro y parte fuera del volumen del frustum formando nuevos tri/ngulosal reali"ar dic)os cortes.
Etapa 'can-ine Conersion ! Esta etapa representa el punto deconversi#n entre el modelo l#gico $2 y el modelo físico 52. +ada triangulo esproyectado al plano de la pantalla 52 y se calcula que pixeles ocuparía en lapantalla. *ara esto se transforma una arista a la ve", tomando el vGrtice deinicio y de n aplic/ndole la matri" de proyecci#n en perspectiva y luego secalculan los pixels intermedios de la arista. 0e replica el proceso para las dosaristas restantes y luego se calculan los pixels internos. Este proceso se ejecutalínea por línea, de allí el nombre de la etapa. En esta etapa no se tiene encuenta que tri/ngulos se superpondr/n, se calculan para todos sin importar siluego ser/n visibles o no.?os pixels son celdas discretas en 52, por ello al proyectar se puede obtener unefecto no deseado de Wserruc)oX, para solucionarlo se puede aumentar laresoluci#n o utili"ar alguna tGcnica como ntiliasing.
Esta etapa es una de las m/s costosas computacionalmente del *ipeline.cadGmicamente el proceso es el siguiente! 0e proyectan los $ vGrtices y searma la ecuaci#n de la recta para cada arista, luego un pixel de la pantallapertenece al triangulo solo si al evaluarlo en las $ rectas el resultado espositivo (o cero en todas. 0i es negativo en aunque sea una, entonces nopertenece al triangulo. 0e testean solo los pixeles que se encuentran dentro delbounding box formado por los $ vGrtices del tri/ngulo, este bounding box seencuentra con solo obtener los valores mínimos y m/ximos de los $ vGrtices.
8/17/2019 Resumen Final TGC
15/34
Etapa Renderin%?Rasteri3ation ! Esta etapa es una de las m/scomplejas y que m/s cambios a sufrido a lo largo del tiempo. +uenta con lassiguientes sube tapas!
'+adin%! +onsiste en determinar el verdadero color %&' para cada pixel quese mostrar/ en pantalla. Este proceso recibe la proyecci#n de pixeles de cadatriangulo. *or cada triangulo se obtienen los $ pixeles extremos, quecorresponderían a los vGrtices del tri/ngulo en $2, y se reali"a &ouraud0)ading para obtener el color de todos los pixeles intermedios medianteinterpolaci#n lineal. El problema que trae esto es que para obtener buenosefectos e iluminaci#n es necesario armar modelos con mayor cantidad detri/ngulos (m/s pesados.
exturin%! Este proceso recibe por cada triangulo las coordenadas de texturade cada vGrtice. ?as mismas indican como proyectar la textura en el tri/ngulo.*or lo tanto es necesario obtener los pixels de la textura que se utili"aran en laproyecci#n, estos pixels se denominan ;exel (;exture Element, y el proceso deselecci#n de los mismos se denomina ;exture 0ampling. 1na ve" que se obtuvotexel para cada pixel se procede a me"clar el valor del mismo con el colorpreviamente calculado en el proceso de 0)ading. El resultado de esa me"cla esel verdadero color del pixel que se mostrar/ en pantalla.0lp+a Blendin%: El usuario puede especicar un valor de traslucide" por cadavGrtice de cada triangulo, mediante el canal alp)a ( del modelo %&'. Estecanal tiene un valor de punto otante entre A y 4, siendo 4 completamenteopaco y A transparente. ?a traslucide" de pixels afecta a los tri/ngulos que sesuperponen entre sí (Occlussion, por ello es necesario tener en cuenta elorden de precedencia respecto de la profundidad.
'tencil est: Existe un 0tencil 'uer, que el usuario puede manipular comouna m/scara, asign/ndole un valor de punto otante entre A y 4 y luego setesteara para decidir si esos pixeles pasan o no a la siguiente etapa.*rincipalmente se utili"a para efectos de sombra en tiempo real.
0nti-0liasin%: Esta tGcnica se utili"a para eliminar desperfectos gr/cos queocurren al discreti"ar en pixels de tamaño jo una gura continua. ?a ideageneral de la tGcnica es suavi"ar las líneas agregando pixels de colorescercanos. plicar ntiliasing a toda la pantalla en tiempo real es muycostoso, pero )oy en día los adaptadores de video ya cuentan con una opci#npara ello lo cual lo )ace viable.
Dept+ Bu;erin%: En esta etapa es donde se determina nalmente que
pixeles ser/n visibles y cuales no (debido a que otros los tapan. *ara ello seutili"a el N'uer, que es un /rea de memoria de video como el 3ramebuer,donde se determina los pixels que realmente quedan enfrente de la c/mara yse descartan aquellos que quedan tapados. Es una operaci#n muy costosa ypor eso )ay tGcnicas de optimi"aci#n para detectarlo en etapas m/stempranas.
8/17/2019 Resumen Final TGC
16/34
Displa$: Es el proceso nal del *ipe?ine. Es donde se completa el framebuer,que luego ser/ copiado al dispositivo de video (salida en el pr#ximo intervalode refresco.
0e denomina 3ixed *ipeline porque las etapas del mismo est/n perfectamenteestablecidas y no pueden modicarse. Esta arquitectura de pipeline jo )a
ayudado a los fabricantes de adaptadores de video a optimi"ar sus c)ips cadave" m/s, pero limita al programador respecto al control de lo que se muestraen pantalla.
8/17/2019 Resumen Final TGC
17/34
Unidad A exturas e luminaci/n
luminaci/n Dinámica e luminaci/n Estática:
?a iluminaci#n din/mica es la que m/s se asemeja al comportamiento real de
la lu". 0u efecto se calcula en run time para cada cuadro por lo tanto su uso eslimitado.
?a iluminaci#n est/tica es una alternativa para lograr efectos de iluminaci#n
con bajo costo computacional. *rincipalmente consiste en! texturas y colores
por vGrtices.
luminaci/n Estática
exture Mappin%! *ara que un tri/ngulo contenga una secci#n de textura es
necesario especicar valores de mappeo, denominados coordenadas de
textura. 0on un par ordenado (u,v con valor entre A y 4 que luego semultiplican por el anc)o y alto de la imagen que da la textura para obtener los
verdaderos valores de mappeo, logrando así que la especicaci#n de mappeo
sea indistinta del tamaño real de la textura. El mappeo se )acía con
interpolado lineal pero eso traía problemas con objetos con inclinaciones, por
ello se empe"# a utili"ar *erspective +orrect ;exture Mapping que para
proyectar utili"a 4J" en el espacio $2 y así obtiene mejores resultados al aplicar
texturas, es m/s costoso computacionalmente pero los adaptadores de video lo
soportan.
Mipmappin%! se basa en generar varias im/genes de diferentes tamaños a
partir de una imagen de textura denida, para utili"ar la imagen del tamañoque convenga seg=n la cantidad de pixeles que va a representar en pantalla.
0e suele generar un nuevo mipmap si un pixel contiene uno o m/s texels. -o
se reali"a en tiempo real, la *> los tiene pre calculados desde la carga de la
textura por primera ve". dem/s al no tener que reali"ar esos c/lculos en
tiempo real la *> le aplica antialiasing a las im/genes generadas (que son
m/s pequeñas para corregir y disminuir imperfecciones, que debido a su costo
no sería posible reali"arlo en tiempo real.
exture 'amplin%: Es el mGtodo de selecci#n de muestras de texels.
+onllevan un gran costo computacional. lgunos son!
earest 'amplin% Met+od: l recibir las coordenadas de textura, sus
valores oats se multiplican por las dimensiones de la imagen de textura y el
resultado es truncado a integer. Es el mGtodo m/s eciente, pero desperdicia
informaci#n importante (los decimales.
Bilinear 'amplin% Met+od: Este mGtodo utili"a los valores truncados del
mGtodo anterior para determinar un /rea de < pixels dentro de la textura e
8/17/2019 Resumen Final TGC
18/34
interpola los colores de manera proporcional par a obtener el color nal.
3#rmula para el c/lculo del color nal en )oja de f#rmulas.
l intentar acceder al texel m/s cercano puede ocurrir que nos quedemos fuera
de los límites de la textura. *ara solucionar este problema existen diversas
tGcnicas, denominadas exture 0ddressin% Mode.
• Frap! 0i intentamos acceder a la posici#n u S4 y esta se encuentra
fuera del límite de la textura, entonces tomamos el primer texel de la
la. Es un modo circular.• +lamp! 0i queremos acceder a un texel fuera de los limites se toma el
texel m/s extremo, es decir, si tratamos de acceder al texel uS4 vS4,
entonces tomaremos el u,v.• 'order +olor! cualquier texel que intentemos acceder fuera de los limites
devuelve un color default.
;rilinear 0ampling Met)od! Este mGtodo tiene en cuenta los distintos niveles de
textura creados en el proceso de Mipmapping. Efect=a bilinear entre dosmipmaps y luego interpolaci#n lineal entre los dos valores encontrados. ten=a
el efecto brusco de cambio de un mipmap a otro.
nisotropic 0ampling Met)od! Este mGtodo utili"a la tGcnica del mGtodoanterior pero incorpor/ndole el /ngulo de inclinaci#n del tri/ngulo.
En un concepto m/s amplio, una textura es una imagen compuesta por unamatri" de dos dimensiones, la cual posee como valor de cada par decoordenadas (x,y un color %&'. El color representado por cada pixel de latextura normalmente se utili"a para )acer referencia al color que queremos
que se muestre en el modelo $2, podría utili"arse para otras cosas.+on este concepto m/s amplio, una textura puede ser considerada como unaforma extra de proveer informaci#n para un modelo $2.
• 2iuseMap! es la textura tradicional que venimos tratando. +ada pixelrepresenta el color %&' que queremos que sea plasmado en la superciede un modelo $2.
• ?ig)tMap! Es una textura que se utili"a para lograr efectos de luces ysombras. +ada pixel de la imagen representa el brillo de unadeterminada secci#n de un modelo $2.
• -ormalMap! es una textura que se utili"a en la tGcnica de 'ump Mappingpara lograr efectos de relieve y generar sensaci#n de mayor detalle de
geometría. +ada pixel de la imagen representa el valor del vector normalde la supercie del modelo $2.
Multitexture! actualmente se pueden denir varias texturas para un mismomodelo, simplemente se tienen varios canales de textura y cada triangulodene varios pares de coordenadas u,v. ?uego se las debe me"clar de algunamanera, la tGcnica m/s com=n es Modulation (se multiplican los texels de loscanales.
8/17/2019 Resumen Final TGC
19/34
En cuanto a los colores por rtice como se dijo antes cada vGrtice puedeespecicar valores %&' para denir su color y luego se interpolara paraobtener los valores intermedios de los pixeles entre los vGrtices. Esto se puedecombinar con los valores que den laJs texturaJs para obtener un mejorresultado.
luminaci/n Dinámica+uando se construye el universo $2 se pueden situar diferentes emisores delu" en el escenario. Estos emisores luego ser/n tenidos en cuenta por la *>para inuenciar el color de los vGrtices de los tri/ngulos. ?a iluminaci#ndin/mica debe ser calculada en runtime, en la etapa de 0)ading, con lo cuales computacionalmente costosa.El modelo utili"ado es simplicado, ya que sería imposible calcular lailuminaci#n real con el )ardare actual. El dato utili"ado para el c/lculo es elvector normal del vGrtice al que le queremos calcular la iluminaci#n. 1na ve"obtenidos los colores de los $ vGrtices de un tri/ngulo se utili"a alg=n mGtodo(0)ading Model para determinar los colores de los puntos intermedios.Ecuaci#n de lu" simplicada en )oja de f#rmulas.
0mient i%+t: ?a lu" ambiental es aquella que proviene de todasdirecciones, todas las supercies son iluminadas por ella con igual intensidadsin importar su orientaci#n. Es una simplicaci#n tramposa de la física de lalu", ya que la lu" ambiental real proviene de la lu" reejada por el ambiente(cosa que no podemos calcular debido al costo computacional, entonces seestablece un valor C arbitrario que especica la cantidad de lu" ambiental.Di;use i%+t: ?a lu" difusa es la proveniente de una fuente de lu" que esabsorbida por una supercie y luego reejada en todas direcciones. 2ependedel /ngulo que exista entre la orientaci#n del vGrtice y el vector desde elvGrtice )acia la fuente de lu". ?a lu" difusa es independiente de la posici#n dela c/mara.'pecular i%+t! ?a lu" especular es la proveniente de una fuente de lu" quereeja en la supercie y se dirige )acia la c/mara. 0e la conoce como efectoespejo y representa la capacidad de un objeto de reejar lu".
MaterialEn la física real cuanto m/s cerca est/ un objeto de una fuente de lu", m/s seilumina, para simular la atenuaci#n de la lu" al alejarse se utili"an los trescoecientes de la ecuaci#n del c/lculo de la lu". ?a conguraci#n de esoscoecientes determina como un objeto reeja o irradia lu" y se la denominamaterial.
'+adin% Model1na ve" calculado el color %&' con el modelo de iluminaci#n din/mica, se debecalcular los colores de los puntos intermedios de las supercies, este procesose denomina 0)ading.
.lat '+adin%: Es el mGtodo m/s simple y r/pido. -o calcula el color %&' paracada vGrtice sino que calcula un =nico color para todo el tri/ngulo utili"ando elvector normal, así cada triangulo tiene un =nico color s#lido. -o generatransiciones de iluminaci#n suaves.
8/17/2019 Resumen Final TGC
20/34
ouraud '+adin%! En este mGtodo se tiene en cuenta el vector normal decada vGrtice y se calcula el color %&' para cada uno. ?uego se reali"ainterpolaci#n lineal para calcular los colores de puntos intermedios. ?ograresultados m/s suaves que at y con poco over)ead.
El color de cada vGrtice es determinado por el modelo de iluminaci#n din/mica.Este color luego es añadido al color que originalmente se )abía cargado alvGrtice a travGs de la *> gr/ca. Esto se reali"a en la etapa de *ervertex?ig)ting del &rap)ics *ipeline.M/s tarde en la etapas de 0)ading y ;exturing se termina combinando el coloranterior con el color de los texels de la textura que se )a mapeado a esetri/ngulo.2e esa forma se integran todos los elementos que permiten calcular el colornal de un modelo.
i%+tMap?a calidad de la iluminaci#n por vGrtice con &ouraud 0)ading en una malla est/
limitada por la cantidad de vGrtices de la misma. 0i uno quiere lograr mejoresefectos de iluminaci#n se ve obligado a aumentar la complejidad de lageometría del modelo.?os ?ig)tMaps son una tGcnica para evitar este problema y lograr buenosefectos de luces y sombras en objetos est/ticos.1n ?ig)tMap es una textura que representa el brillo de las supercies de unobjeto, dadas diversas fuentes de luces. 0olo contiene informaci#n acerca dec#mo est/ iluminado el objeto.
l proceso de agrupar muc)as texturas pequeñas en una sola m/s grande se lodenomina ;exture *acPing.
?a tGcnica de ?ig)tMaps es muy =til para lograr buena calidad de brilloinclusive en objetos de geometría simple. dem/s tiene muy bajo costocomputacional porque todo se pre calcula OVine. *ero esta tambiGn es suprincipal desventaja, ya que es una iluminaci#n est/tica. 0i durante laejecuci#n de la aplicaci#n la geometría fuese modicada (destrucci#n de unapared, apagar un farol de lu" la iluminaci#n sobre los modelos seguir/ igualque al principio.
Bump Mappin%: Es una tGcnica para aumentar la calidad gr/ca y lacomplejidad de un modelo mediante la generaci#n de falsas protuberancias yabolladura. -ormal Mapping es una de las tGcnicas m/s sencillas de 'umpMapping. ?a idea de -ormal Mapping es generar dos modelos, uno lo poly yotro )ig) poly. 0olo se puede renderi"ar el :ig) poly en tiempo real, el lo polyse utili"a para generar un -ormal Map ya que tiene muc)o m/s detalle y m/svectores normales lo que daría un mejor efecto de iluminaci#n. ?uego se utili"aese normal map y se lo aplica como una textura al lo poly model obteniendomejores resultados de iluminaci#n
luminaci/n =>ine
8/17/2019 Resumen Final TGC
21/34
%adiosity es ideal para calcular la irradiaci#n de lu" entre los objetos y %ay ;racing es m/s indicado para efectos de reexi#n especular y transparencia.*or lo tanto, en la pr/ctica, ambas tGcnicas son combinadas para obtener lasventajas de cada una.
=cclusion Cullin%9 'oluci/n con -Bu;erEl N'uer o 2ept)'uer es una matri" bidimensional alocada en la memoriade la placa de video. En cada posici#n se almacena un valor de N, quedetermina la profundidad de un pixel candidato a ser enviado a pantalla.Mediante el proceso de N+ulling se determina lo m/s pronto posible que pixelsvan a ser visuali"ados nalmente en la pantalla. ?a idea es proyectar a 52 cadauno de los objetos y obtener la profundidad N de cada pixel. 0in calcular sucolor todavía. 0e compara ese valor de N con el casillero correspondiente del N'uer (seg=n coordenadas x,y y si el casillero esta vacío se llena con ese valorde N, si est/ lleno se lo compara con el nuevo y si es mayor se lo intercambia(se encuentra m/s cerca y debe verse el nuevo y se des)ec)a el pixel viejo.2e esta manera se van descartando aquellos pixeles que quedaran ocultos y se
evita el procesamiento de ;exturing y de color.
nte%raci/n con 0lp+a Blendin%2ebido a que el N+ulling se reali"a antes del c/lculo del color, no se puedetener en cuenta el valor de traslucide". 1na tGcnica para solventar esto esenviar a la *> los modelos opacos primeros con el Nbuer )abilitado, luegolos modelos traslucidos son ordenados por su coordenada N y enviados a la *>
8/17/2019 Resumen Final TGC
22/34
previa des )abilitaci#n del N'uer. Da que sino los valores se pisarían porqueel proceso con N'uer solo contempla la profundidad y no así la traslucide".
-otas!• El algoritmo de iluminaci#n din/mica se ejecuta en la sub etapa de W*er
6ertex
?ig)tingX de la etapa W&eometryX del &rap)ics *ipeline. %ecibe comoentrada vGrtices de tri/ngulos y devuelve esos mismos vGrtices con sucolor %&' calculado.
• El algoritmo de 0)ading Model es ejecutado en la sub etapa de 0)adingde la etapa de W%enderingJ%asteri"ationX del &rap)ics *ipeline. %ecibecomo entrada fragmentos de tri/ngulos sin color y devuelve como salidapixels con el color determinado.
• Un '+ader es c/di%o pro%ramale 7ue e4ecuta en la PU.Pertenece al es7uema de Pro%ramale Pipeline9 Existen 6ertex0)aders y *ixel 0)aders, entre otros. 1n*ixel 0)ader permite al programador sobrescribir la funcionalidad
tradicional de la subetapa de W0)adingX del *ipeline, paraimplementar un W0)ading ModelX diferente.• 0Py'ox es un mGtodo sencillo de crear un fondo envolvente para un
escenario, utili"ando un cubo con 9 texturas que encastranperfectamente.
• Enviroment Mapping es una tGcnica para generar el efecto de reejode supercies como espejos, metales y agua. 0e utili"a una textura,denominada EnviromentMap.
8/17/2019 Resumen Final TGC
23/34
Unidad 0nimaci/n
0nimar es dar la sensaci/n de 7ue los o4etos tienen ida propia9
?a animaci#n )ace que los objetos cambien en el tiempo siguiendo un guion
predenido, mientras que la simulaci#n trata de predecir c#mo van a cambiarlos objetos a lo largo del tiempo siguiendo reglas físicas y matem/ticas.
Un @e$*rame representa un estado importante dentro de laanimaci/n9 En el Peyframe se denen los par/metros del objeto quecambian su estado.
1n inbeteen o teen, es un cuadro intermedio que se logra luego deinterpolar dos Peyframes.
?os cels de la animaci#n tradicional tienen su paralelo con los 0prites quetienen transparencia, ya que ambos permiten mostrar objetos cuya forma no
son rectangulares.
os parámetros 7ue pueden interpolarse en un 'prite pueden serposici/n! color! án%ulo de rotaci/n! tamao! niel de traslucide39
>nterpolar es obtener un conjunto de puntos de muestra y buscar una funci#nque se ajuste a ellos. 0e utili"an generalmente polinomios, particularmente losde $er grado.
0e puede animar una malla en $2 interpolando las coordenadas de lasposiciones de cada vGrtice en una serie de Peyframes ubicados a lo largo deltiempo.
1n esqueleto es una estructura l#gica del tipo jer/rquica compuesta por )uesosy juntas.
0Pinning es el proceso de asociar cada vGrtice de la malla del modelo a los)uesos del esqueleto.
6ertex eig)ting o blending es una tGcnica que permite asignar a cada vGrticeque porcentaje de inuencia ejercen dos o m/s )uesos sobre Gl. 0e utili"a paralograr animaciones m/s realistas y evitar efectos indeseados.
?a cinem/tica directa comien"a desde el nodo raí" y propaga lastransformaciones )acia los niveles inferiores. *or otro lado la cinem/ticainversa solamente se conoce la transformaci#n del nodo terminal y se calculanlas transformaciones de cada uno de los nodos padre.
?os obst/culos que enfrenta la cinem/tica inversa entre otros son, que por unlado pueden existir m=ltiples soluciones para una misma pose o tambiGn puedeno existir soluci#n alguna.
8/17/2019 Resumen Final TGC
24/34
3ormula de interpolaci#n lineal para ejercicios de animaci#n por Peyframes en)oja de formulas
?a animaci#n implícita tiene muc)as ventajas comparada con la animaci#nexplicita.?a memoria requerida en la animaci#n implícita se reduce fuertemente cuando
en cada Peyframe se almacenan solo los cambios en traslaci#n y orientaci#n delos )uesos.Otra de las ventajas es que una misma animaci#n esquelGtica puedereutili"arse para varias mallas. 0i el esqueleto es el mismo, se puede reali"ar elproceso de 0Pinning a distintas mallas, reutili"ando los mismos Peyframes.1na ventaja de la animaci#n explicita es que distintas animaciones puedenme"clarse gradualmente entre sí, en lo que se denomina nimation 'lending.0e pueden lograr transiciones m/s suaves entre distintas animaciones.*or otro lado la desventaja principal de la animaci#n implícita es sucomplejidad de implementaci#n, siendo muc)o m/s complejo desarrollarlafrente a un sistema explícito. El costo de procesamiento tambiGn se incrementadebido a las intensivas transformaciones matriciales.
3inalmente, otra desventaja es que al ser una estructura jer/rquica, puederesultar una limitaci#n si el modelo requiere que se realice una metamorfosisen otro objeto que no guarde la misma forma. Es por eso que se desalienta eluso de animaci#n esquelGtica cuando se quieren lograr efectos de Morp)
;arget.
8/17/2019 Resumen Final TGC
25/34
Unidad F Detecci/n de Colisiones
Un testeo de colisi/n es la acci/n de calcular si dos modelos de unescenario colisionan entre s89
*ara saber si un punto est/ incluido en un plano, se reempla"a el punto dentrode la ecuaci#n del plano y se compara su resultado.
2etectar si un punto est/ dentro de un triangulo mediante el teorema de lasuma de los angulos interiores es ineciente porque la implementaci#n delteorema necesita ejecutar tres operaciones de arco coseno, que suelen sercostosas computacionalmente.
os olGmenes de simpli6caci/n de modelos permiten rec+a3ar en*orma temprana un modelo entero! sin necesidad de e*ectuar cálculosde colisi/n para cada uno de sus trián%ulos9
En líneas generales un 'ounding0p)ere derroc)a m/s espacio que un'ounding'ox porque el primero debe crear su contorno con la magnitud delradio )acia todas sus direcciones, mientras que el segundo posee tresmagnitudes distintas para cada uno de sus ejes. *or otro lado el testeo de'ounding0p)ere suele ser m/s eciente porque no utili"a tantas instruccionescondicionales como las de 'ounding'ox.
l despla"ar un modelo no es necesario reconstruir el 'ounding'ox, solo se ledebe aplicar el mismo despla"amiento que al modelo. +on las rotaciones esnecesario recalcularlo.
?a cantidad de planos a utili"ar para encerrar un modelo con la tGcnica de
convex )ull depende del modelo a encerrar.
El e*ecto 'liddin% consiste en utili3ar la ener%8a remanente demoimiento para despla3ar a un o4eto a lo lar%o del plano contra elcual colision/9 'e pro$ecta sore el plano de colisi/n la parte delector de elocidad 7ue no pudo ser aproec+ada para despla3arse9
8/17/2019 Resumen Final TGC
26/34
Unidad H cnicas de =ptimi3aci/n ndoor
?a idea principal es optimi"ar los procesos de 3rustum +ulling y Occlusion
+ulling. mbos reali"ados a nivel de tri/ngulos por el adaptador de video.
mbos tienen muc)o costo computacional, entonces si logramos evitar enviar
determinados modelos enteros al adaptador de video porque tenemos algunal#gica que nos asegura que luego el frustum +ulling o el Occlusion +ulling los
eliminaría podemos a)orrar tiempo de procesamiento que puede ser utili"ado
en alguna otra tarea, por ejemplo renderi"ar mas tri/ngulos para tener una
escena m/s compleja y de mayor calidad. *ara alcan"ar estos objetivos de
optimi"aci#n )ay diferentes tGcnicas.
3uer"a bruta con simplicaci#n de modelos
?a simplicaci#n de modelos con vol=menes geomGtricos (como bounding
sp)ere, bounding box y convex )ull permite optimi"ar los c/lculos
matem/ticos de colisi#n. 2e esa manera calcular la colisi#n del frustum conuna malla de $AAA tri/ngulos tendr/ un costo computacional muc)o mayor que
)acer un =nico c)equeo de colisi#n de frustum con bounding sp)ere. *or lo
tanto se puede seguir este procedimiento para optimi"ar! En cada cuadro
iteramos sobre todos los modelos $2 y )acemos c)equeo de colisi#n de
frustum'ounding0p)ere por cada modelo, si no colisionan descartamos el
modelo, si colisionan )acemos c)equeo de colisi#n de frustum'ounding'ox
del mismo modelo. 0i no colisionan lo descartamos, si colisionan asumimos que
ese modelo es visible y lo enviamos a la *> para que sea renderi"ado.
partir de esta tGcnica se reali"an mejoras para )acer el proceso m/s
performante.
&rilla regular! es la idea de dividir el escenario en una grilla compuesta por
celdas de tamaño jo que delimitan sectores imaginarios. ?a ventaja de esta
tGcnica es que nos permite calcular las colisiones del frustum con una celda y
si colisionan podemos asumir que los modelos que se encuentren dentro de la
celda tambiGn colisionaran, así nos a)orramos los testeos de fuer"a bruta
(iterar por todos los modelos. El algoritmo a seguir seria iterar por todas las
celdas de la grilla l#gica y por cada una!
• %eali"a testeo frustumbounding 'ox (las celdas con rect/ngulos $2
alineados a los ejes.• 0i el bounding box est/ completamente fuera del frustum se descartan
todos los modelos que se encuentren en la celda. 0i la celda se
encuentra completamente dentro del frustum, todos los modelos
colisionarían IY los enviamos a la *>.• *ero si la celda posee parte de su volumen dentro y parte fuera,
tenemos 5 opciones. O asumimos a todos los modelos visibles y dejamos
8/17/2019 Resumen Final TGC
27/34
que el adaptador de video se encargue o reali"amos el procedimiento de
fuer"a bruta para los modelos que se encuentran dentro de dic)a celda.
;iene sus desventajas esta tGcnica. :ay que armar la grilla (sea de manera o
line o en un estadío previo a la aplicaci#n ejecutando en realtime. dem/s
tiene detalles de conguraci#n que dependen de la aplicaci#n en sí como el
tamaño de las celdas, que puede conllevar a que mal elegido nos traiga peor
performance que la fuer"a bruta. dem/s las celdas deben ser todas de igual
tamaño sin importar que qui"/s alguna "ona no tenga ning=n modelo y nos
obliga a reali"ar testeos frustumcelda en esas "onas innecesariamente.
Iuadtree $ =ctree
0on estructuras de datos que evolucionan de la grilla regular. ;ienen la
capacidad de adecuarse a la geometría particular de un escenario mediante la
construcci#n de una grilla adaptativa. Octree maneja $ ejes y quadtree solo 5,
la utili"aci#n de una tGcnica u otra depender/ de las características de laaplicaci#n y del escenario.
?a idea principal es ir subdividiendo el mapa, en cubos o cuadrados seg=n la
tGcnica, )asta llegar a un nivel m/ximo de divisiones prestablecido o a que
)aya menos de cierta cantidad de modelos en cada cubo o cuadrado. ?as
divisiones se )acen en la mitad del cuadrado a dividir en ambos ejes.
?a construcci#n de esta grilla conforma una estructura de datos en forma de
/rbol.
?a concentraci#n de modelos del escenario determina que tanto se seguir/
subdividiendo un nodo. *or lo tanto en aquellos lugares en los que )aya m/smodelos )abr/ m/s subdivisiones y en aquellos lugares vacíos )abr/ muypocas subdivisiones.Esto produce que el tamaño de las celdas sea m/s c)ico donde realmente senecesita ese nivel de precisi#n, manteniendo celdas de gran tamaño paraabarcar las /reas de poca informaci#n.
?a construcci#n de la grilla debe reali"arse en manera oVine y persistirse en
alg=n arc)ivo, ya que conlleva un importante costo computacional como para
)acerlo en realtime.
El porcentaje de completitud de un /rbol se calcula como la cantidad de nodos
que posee el /rbol sobre el total de nodos de ese /rbol completo.
#D-ree
?a tGcnica de H2;ree es una evoluci#n directa de los OctreesJZuadtrees que
tiene como objetivo lograr un /rbol balanceado sobre el escenario de modelos.
*ara lograr esto lo que la tGcnica propone es )acer cortes no a mitad espacial
8/17/2019 Resumen Final TGC
28/34
como los anteriores sino a mitad de densidad de cantidad de modelos en una
celda dada.
B'P-ree
El '0*;ree termina la línea de evoluci#n iniciada con la grilla regular e intenta
alcan"ar como resultado un /rbol completamente balanceado de r/pidoacceso. ?a t/ctica anterior podía obtener resultados bastantes buenos pero seveía limitada con ciertas conguraciones de modelos porque solo podíaefectuar cortes rectos por los ejes.En un /rbol '0* los cortes que se pueden )acer para dividir el volumen de unnodo en dos mitades no tienen ninguna restricci#n, pueden )acerse cortes endiagonal con cualquier direcci#n.
Portal Renderin%
;odas las tGcnicas explicadas anteriormente atacan correctamente el tema de3rustum +ulling pero ninguno provee una soluci#n sencilla para acelerar elOcclusion +ulling. *ortal %endering es una estrategia para atacar ambosproblemas con una misma tGcnica.Esta tGcnica se basa en proveed de metadata al escenario, en ve" de crearleuna grilla l#gica asumiendo que todos los modelos est/n desparramados por elescenario. 2e esta manera se deben denir celdas y portales que conectan lasdiferentes celdas mediante objetos convexos. +on esta estructura denidapodemos reali"ar .rustum Clippin%, 7ue es el proceso de reducirdinámicamente el *rustum, ya que al c)ocar con un borde de una celda (sino )ay un portal que la conecte con otra ese es el límite de visi#n. Esto
permite acelerar enormemente el c/lculo de Occlusion +ulling.*ortal %endering utili"a un grafo de celdas que son conectados por portales.?a metadata de *ortal %endering debe ser creada por el diseñador delescenario, a medida que va confeccionando sus modelos.
;odas las tGcnicas contempladas )asta a)ora se explicaron siempre sobre unescenario que permanecía est/tico. ;odos sus modelos tienen una posici#n jaen el espacio que se mantiene igual durante toda la ejecuci#n de la aplicaci#n.
Dinamismo en Iuadtree! =ctree! #D-ree $ B'P. +omo se dijo antes escomputacionalmente costoso el c/lculo de las grillas o cortes correspondientesal escenario, por lo tanto no se puede recalcular en cada cuadro. ?o que si
puede )acerse es calcular en que nueva )oja del /rbol se encuentra un modeloque se )aya movido. ?uego quitarlo de la )oja original y agregarlo en la nueva.*ara el dinamismo en *ortal %endering se utili"a la misma idea.
?as tGcnicas de /rboles vistas tambiGn pueden ser utili"adas para optimi"ar ladetecci#n de colisiones, )aciendo relevantes solo los modelos que seencuentren en )ojas visibles por el frustum (las dem/s colisiones posibles noson necesarias.
8/17/2019 Resumen Final TGC
29/34
*ara detectar colisiones en *ortal %endering, primero se determina en quecelda se encuentra la c/mara. 1na ve" encontrado esto, se procede a detectarcolisiones solo con los modelos que pertenecen a esa celda, descartandoautom/ticamente todos los modelos restantes.
?a matri" de *60 es una matri" de bits y se utili"a para evitar reali"ar testeos3rustum*ortal contra portales que nunca ser/n alcan"ados desde una celdaparticular.
8/17/2019 Resumen Final TGC
30/34
8/17/2019 Resumen Final TGC
31/34
como baldosas de una vereda para confeccionar el color nal de una superciemayor.
?a variaci#n del valor D entre dos puntos (C, N del :eig)tmap indica si lapr#xima posici#n deseada es realmente alcan"able por el modelo.
8/17/2019 Resumen Final TGC
32/34
Unidad J '+aders
l comien"o se trabajaba con el modelo del &rap)ics *ipeline vistoanteriormente que era jo, de allí 3ixed *ipeline, pero con el tiempo estoevolucion# )acia *ipeline programable.
0e llama fragmentos a los pixeles que a=n no est/n en pantalla. Es decir unpixel nal puede ser el producto de varios fragmentos debido al alp)a blendingy al mutisampling.
:abía 5 tipos de unidades programables! los vertex s)aders unit y los fragment(o pixel s)aders unit. ?os s)aders entonces se escribían en lenguajeensamblador de muy bajo nivel, lo cual )acía muy complicada su escritura,mantenimiento y reutili"aci#n.
En el contexto de las PUs un s+ader es un pe7ueo pro%rama 7ue secar%a $ se e4ecuta directamente en el +ard&are de la placa! en las
llamadas s+aders units
,ertex '+aderEl vertex s)ader trabaja a nivel de vGrtices y sobrecarga la etapa de transformy lig)ting del xed pipeline. %ecibe como dato de entrada un =nico vGrtice ydevuelve un vGrtice transformado. +omo mínimo debe devolver la posici#ntransformada (o proyecci#n al espacio de pantalla de tal forma que elrasteri"ador pueda generar los distintos fragmentos. Eventualmente puedeproducir m/s datos por vGrtice como color (iluminaci#n por vGrtice y cualquierotro dato que ser/ consumido por el rasteri"ador. El vertex s)ader no tieneacceso a ning=n otro vGrtice de la primitiva, ni informaci#n sobre la misma,esto permite el paralelismo entre los distintos vGrtices que son totalmente
independientes entre sí.+on los 6ertex 0)aders podemos lograr efectos como ojo de pescado,distorsiones, movimiento de telas y banderas, ondulaciones de supercies, etc.
Pixel '+aderEl *0 se llama una ve" por cada pixel generado por el rasteri"ador. %ecibe losvalores interpolados por vGrtice (color, coordenadas de textura, normal, etc. ycon todos esos datos devuelve el color nal del pixel. ;rabaja con un solo pixela la ve" y eventualmente puede descartar dic)o pixel y abortar las siguientesetapas del pipeline. El *0 no puede modicar la posici#n en pantalla (C ,D delpixel pero ocasionalmente puede modicar el valor de profundidad N.lgunos efectos que se pueden lograr con pixel s)ader son! >luminaci#n en
tiempo real, Multitextura, Efectos de relieve (bumpmapping, *elaje ensupercies, 3uego, reejos, sombras, alp)a blending y blur.
eometr$ '+ader?uego se agreg# en el pipeline una entrada en la etapa de &eometry quepermitiera crear primitivas. sí la entrada del &eometry 0)ader son los $vGrtices de un tri/ngulo y eventualmente informaci#n de adyacencia(tri/ngulos adyacentes al mismo. +on todo eso es capa" de crear nuevasprimitivas a partir de una =nica primitiva de entrada.
8/17/2019 Resumen Final TGC
33/34
eselado0e llama teselado a la operaci#n de cubrir una supercie utili"ando tri/ngulosde tal forma que no queden )uecos en el medio y que no se superponganninguna de las guras. El teselado de geometrías es una de las principalestGcnicas para atacar el problema del ?O2 en gr/cos. ?a idea es que la
geometría se dene con primitivas de orden superior las cuales sonconvertidas a tri/ngulos (proceso de teselado s#lo cuando se precisan dibujaren pantalla. +omo se puede controlar la cantidad de tri/ngulos en los que se vaa convertir la supercie original, es posible controlar el ?O2 de manera precisa.
otas:
El CPU es de prop/sito %eneral! mientras 7ue el PU está diseadoespecialmente para renderi3ar9 El +*1 es un procesador escalar, mientrasque el &*1 es un procesador vectorial o de ujo. El CPU es orientado a laoperaci/n, est/ )ec)o para ejecutar cualquier tipo de algoritmos en formaserial, mientras que el PU es orientado a los datos, ya que se procesanmillones de pixeles de forma independiente y en paralelo. El +*1 buscasiempre la mayor precisi#n posible mientras que el &*1 se permite cierta faltade precisi#n con el n de aumentar la performance.
El PU tiene instrucciones 'MD (Single Instruction, Multiple Data) porquelas operaciones que se reali"an a los vGrtices y pixeles pueden reali"arse de avarios elementos por ve". dem/s )ay operaciones como dot product y crossproduct que convienen reali"arse en una sola instrucci#n.
&*&*1 es &eneral *urpose &*1, y se utili"a para aplicaciones en campos queno necesariamente son relacionados con los gr/cos, como por ejemplomodelado de molGculas, simulaciones físicas, clim/ticas, algoritmos genGticos,etc.
Pipelinin% es una tcnica para lo%rar paralelismo en los sta%es delrenderin% pipeline. Esto se logra utili"ando unidades de geometría y derasteri"aci#n en paralelo, cada una ejecutando distintas etapas del pipeline.
El rendering pipeline es paraleli"able ya que en general los tri/ngulos y lospixeles que se procesan dentro de Gl son independientes unos de los otros. ?astres etapas fundamentales del rendering pipeline son plicaci#n, &eometría yrasteri"ador.
En la etapa de geometría ingresan los datos de los vGrtices, coordenadas detextura, texturas, materiales, informaci#n de la iluminaci#n, cambios deestados del render y egresan los vGrtices proyectados en un plano, junto con suinformaci#n de profundidad, y los datos necesarios para )acer el 0)ading.2e la etapa de %asteri"aci#n egresan los colores de pixeles que van a sercopiados en el framebuer.
8/17/2019 Resumen Final TGC
34/34
Un s+ader es un pe7ueo pro%rama 7ue se e4ecuta en el s+aderunit del PU9 El ertex s+ader se encar%a de reali3ar elprocesamiento de los rtices como por e4emplotrans*ormaciones! de*ormaciones! '@innin%! e*ectos deiluminaci/n! 5ei%+tmaps9 El Pixel s+ader se encar%a de procesar
*ra%mentos! $ se pueden reali3ar e*ectos como multitextura!iluminaci/n a medida! ump mappin%! e*ectos de pela4e! +i%+d$namic ran%e! 0lp+a Blendin%! motion lur! $ muc+os más9
1nied 0)ader arc)itecture signica que un 0)ader 1nit (programa ejecutableen &*1 puede ejecutar tanto un 6ertex como un *ixel 0)ader. l unicar laforma de programarlos se )abilita la opci#n de reali"ar balanceo de carga.