+ All Categories
Home > Documents > Resumen Final TGC

Resumen Final TGC

Date post: 06-Jul-2018
Category:
Upload: overflow87
View: 223 times
Download: 1 times
Share this document with a friend

of 34

Transcript
  • 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.


Recommended