Está en la página 1de 19

GRAFICACIN POR COMPUTADORAS

EXAMEN EXTRAORDINARIO
HCTOR VEGA CAMPOS

1.Qu es un quaternion y para que se usa?


Un quaternion es una forma alternativa de representar rotaciones en el espacio a
travs de cualquier eje. Matemticamente, son una extensin del conjunto de
nmeros complejos con el aadido de una cuarta componente w al vector {x, y, z}.

Su descubridor fue Sir William Hamilton, quien, despus de haber estudiado


profundamente los tripletes, en 1843 presento los quaterniones; nmeros
hipercomplejos de la forma w + xi +yj + zk donde w, x, y, z son nmeros reales e i,
j, k son vectores unitarios dirigidos en los ejes x, y, z respectivamente. Hamilton
dedico el resto de su vida (22 aos) al estudio de los quaterniones con ms de

cien publicaciones y hasta tres libros, pero a pesar de su esfuerzo, no ha sido


hasta hace unos aos que se ha reconocido su importancia y su utilidad.

Podemos pensar en un quaternion como en un vector cuatro-dimensional con la


forma:

q = { w, x, y, z } = w + xi + yj + zk

Tambin los podemos encontrar representados como: q = w + v, donde w


representa la componente escalar de q, y v el vector correspondiente a x, y, z que
representa su parte imaginaria. Operar con quaterniones es muy similar a operar
con nmeros complejos.
Los quaterniones presentan varias ventajas comparando con las rotaciones por
matrices o por fsica de Euler pero antes de ver estas ventajas veamos que
problemas introducen el uso de matrices y el uso de ngulos Euler.
Problemas con las matrices
Las rotaciones en el espacio requieren tres grados de libertad (DOF), alrededor de
los ejes de coordenadas x, y, z. Sin embargo, utilizando matrices, necesitamos
nueve grados de libertad para limitar la rotacin (suponiendo el uso de matrices de
3x3). Adems, las matrices tienen tendencia a producir desviaciones,
introduciendo rotaciones no deseadas respecto un eje arbitrario. La nica solucin
posible a este problema es la continua ortogonalizacin de la matriz,
asegurndonos que obedece a nuestros lmites de rotacin. Esta tarea supone un
coste computacional elevado que puede tomar muchos ciclos de CPU.

Otro problema de la rotacin con matrices es que su uso para interpolacin es


extremadamente complicado con resultados bastante bruscos visualmente.
Problemas con ngulos Euler
Tambin podemos utilizar ngulos Euler para representar rotaciones alrededor de
los tres ejes de coordenadas. Su representacin es bastante eficiente ya que solo
utilizamos tres variables para representar tres rotaciones, no es necesario limitar
las rotaciones como en el caso de las matrices (evitando problemas de desvos) y
no tienen que ser reajustados. Sin embargo, no es fcil representar una sola
rotacin que no corresponda a una serie de rotaciones concatenadas alrededor de
distintos ejes.
Adems, el uso de ngulos Euler, introduce el problema del "Gimball-lock" o
prdida de un grado de libertad de rotacin. El Gimball-lock aparece cuando se
realizan una serie de rotaciones a 90 grados, de repente, una rotacin no se
produce debido a la alineacin de dos ejes.
La solucin a los problemas: Quaterniones
Los quaterniones son la solucin a todos estos problemas. En vez de rotar un
objeto mediante sucesivas rotaciones en diferentes ejes, los quaterniones
permiten rotar respecto un eje arbitrario del espacio de modo sencillo y con un
coste computacional mnimo.
Obtenemos un quaternion de rotacin a partir de la combinacin de las tres
coordenadas del eje de rotacin y el ngulo de rotacin. Igualmente, esta rotacin
puede ser transformada a matrices, sin embargo, en vez de multiplicar
directamente matrices, se opera con quaterniones y el resultado es convertido a
una matriz de rotacin.
Debido a que el eje de rotacin se define como un vector unitario, tambin puede
ser calculado mediante matemtica vectorial o a partir de coordenadas esfricas.

Por otro lado, concatenar quaterniones exige menos operaciones aritmticas,


requieren menos espacio para almacenarlos que una matriz y son ms fciles de
interpolar para producir rotaciones ms suaves y predecibles.
Resumiendo, las ventajas que nos ofrecen los quaterniones son:
Facilitan rotaciones en el espacio respecto cualquier eje arbitrario.
Evitan problemas inherentes en las rotaciones mediante Euler (Gimball-lock).
Facilitan la interpolacin en rotaciones y animaciones respecto a mtodos con
matrices.
Posibilitan animaciones ms suaves, continuas y predecibles.

3. Describa que es la transformacin de vista y para que se usa. Mencione las


proyecciones que usa OpenGl-GLUT.
En el momento en que se ha terminado todo el proceso de transformaciones, solo
queda un ltimo paso: proyectar lo que hemos dibujado en 3D al 2D de la pantalla,
en la ventana en la que estamos trabajando. Esta es la denominada
transformacin de la vista.
Proyeccin ortogonal
Para el caso de la proyeccin ortogonal la analoga de la cmara no es tan
evidente, porque en realidad estamos definiendo una caja, o volumen de
visualizacinalrededor del eye de la cmara (esto es, podemos ver detrs). Para
hacer esto, llamamos a:

glOrtho(left, right, bottom, top, near, far)


Proyeccin perspectiva
El caso de la proyeccin perspectiva es ms intuitivo, puesto que la analoga de la
cmara se cumple bastante bien. As, una vez hemos situado la cmara en la
escena, definimos el volumen de visualizacin mediante la funcin:
glFrustum(left, right, bottom, top, near, far)
Esta funcin, aunque tiene los mismos parmetros que glOrtho, stos tienen un
significado ligeramente distinto. Mientras que left, right, bottom y top siguen
definiendo el tamao y forma del plano near de proyeccin, los parmetros neary
farahora deben cumplir la relacin 0<near< far. De hecho, en ningn caso near
debe tomar el valor 0, puesto que los resultados sern impredecibles.
4.Describa con sus palabras el algoritmo de Bresenham para el rastreo de lneas y
escriba un pseudocodigo de su implementacin.
Algoritmo de Bresenham para trazar lneas.
Es un algoritmo creado para dibujar rectas en los dispositivos de graficos
rasterizados, como por ejemplo un monitor de computadora, que determina que
pixeles se rellenaran, en funcion de la inclinacion del angulo de la recta a dibujar.
Es un algoritmo preciso para la generacion de lineas de rastreo que convierte
mediante rastreo las lineas al utilizar solo calculos incrementales con enteros que
se pueden adaptar para desplegar circunferencias y curvas. Los ejes verticales
muestran las posiciones de rastreo y los ejes horizontales identifican las columnas
de pixel.
Es considerado uno de los algoritmos ms efectivos para dibujar lneas mediante
rastreo. Emplea clculos incrementales con valores enteros. La forma de

determinar el siguiente pixel a dibujar en la generacin de una lnea, se describe a


continuacin:
1.- Punto inicial P1(Xinicial,Yinicial).
2.- Se desplaza una columna (incrementando la posicin en X)
3.- Se traza el pixel cuyo valor de Y de la lnea de rastreo se aproxima ms a la
trayectoria de la lnea. Se capturan los dos extremos de la lnea
P1(Xinicial,Yinicial) y P2(Xfinal,Yfinal)
4.- Se dibuja el primer pixel correspondiente al extremo izquierdo de la lnea(P1)
5.- Se calculan los parmetros que permitien decidir cul ser el proximo pixel a
dibujar (DeltaX, DeltaY y ConstanteP).
6.- Dependiendo del valor que tome el Parmetro ConstanteP se evala y
determina la coordenada a dibujar que puede ser:
1.- (X+1,Y) para ConstanteP < 0
2.- Sino (X+1,Y+1)
El proceso anterior debe repetirse 4DeltaX veces.

Pseudocdigo
Leer Coordenadas P1(Xinicial, Yinicial)
Leer Coordenadas P2(Xfinal, Yfinal)
Asignar a DeltaX el ABS( Xfinal - Xinicial)
Asignar a DeltaY el ABS( Yfinal -Yinicial)
Asignar a ConstanteP el resultado de 2*DeltaY - DeltaX
Si Xinicial > Xfinal
Asignar Xfinal a X
Asignar Yfinal a Y
Asignar Xinicial a Ultimo
De lo contrario
Asignar Xinicial a X

Asignar Yinicial a Y
Asignar a Xfinal a Ultimo
Iluminar pixel en coordenada X,Y
Hacer mientras X<Ultimo
Asignar X + 1 a X
Si ConstanteP < 0
Asignar ConstanteP + 2 *DeltaY a ConstanteP
De lo contrario
Asignar Y+1 a Y
Asignar a ConstanteP el resultado de ConstanteP+2 *(DeltaY-DeltaX)
Iluminar pixel en coordenada X,Y
Fin de Algoritmo (Bresenham)

6. Describe el algoritmo de Buffer Z o Buffer de Profundidad para seleccionar lo


que se desplegar en pantalla.
Al renderizar varios objetos 3D, algunos tapan visualmente a otros.
Hay varios mtodos geomtricos (vector) para resolver los problemas de oclusin
visual, consisten en calcular intersecciones y dividir los objetos, para luego
renderizar en forma ordenada, de acuerdo a la distancia al observador.
El problema es la velocidad, y hay muchsimas tcnicas que aceleran los
clculos y el ordenamiento. Pero cuando se dispone de suficiente memoria y
hardware especializado para la rasterizacin, se utiliza el algoritmo basado en el zbuffer o depth-buffer. Bsicamente consiste en pintar el pxel si la distancia del
fragmento al ojo (z) es menor que la almacenada en el z-buffer; en tal caso se
actualiza adems ese buffer con el valor de z recin calculado.

Algoritmo Z-Buffer

Inicializar imagen a color del fondo


Inicializar zbuffer a la z de mximo alejamiento
para cada polgono
para cada pixel en la proyeccin del polgono
z:=z(x,y)
si z ms cercana que zbuffer(x,y)
zbuffer(x,y):= z
escribir pixel (x,y) al color conveniente
fin Z-Buffer

7. Describe el mtodo de Geometra Constructiva de Solidos (GCS) para la


creacin de un slido a partir de dos o ms slidos.

Geometra slida constructiva


Mtodo para generar escenas 3D complejas mediante la aplicacin de
operaciones booleanas a los objetos primitivos. De esta manera, mediante la
unin, interseccin, ... etc, de los objetos iniciales dados, conseguiremos
representar formas complejas.

Operaciones Booleanas
Las operaciones booleanas con las que se trabaja en CSG son, como ya se ha
dicho:

Unin

Interseccin

Diferencia

Complementario

Diferencia simtrica

La aplicacin de estas operaciones sobre los objetos funciona anlogamente a la


aplicacin de las mismas en teora de conjuntos. As, se irn consiguiendo
distintas formas, que irn aumentando en complejidad hasta dar lugar al resultado
buscado.
rboles en CSG
El conjunto de operaciones realizadas sobre los objetos primitivos tiene su
representacin mediante rboles binarios. Estos rboles se caracterizan por su
simplicidad y fcil comprensin. Ello proporciona un mtodo sencillo para la
construccin de figuras complejas de manera rpida e intuitiva.
Caracteristicas:

No son nicos. Esto implica que tenemos distintas opciones para conseguir
un objeto determinado, pudiendo as escoger la que mejor se adapte a
nuestras necesidades.

Las operaciones no son conmutativas.

Interseccin entre cubos adyacentes que no se solapan

Interseccin entre cubos con un vrtice adyacente

Interseccin entre cubos con una arista adyacente

El modelo CSG resulta muy adecuado cuando los objetos a representar se forman
por combinacin de formas bsicas sencillas (paraleleppedos, esferas, cilindros,
etc.), pero puede resultar muy ineficiente para otro tipo de objetos.
Como otros mtodos de representacin del volumen, el sistema CSG resulta
tambin adecuado para aadir a los objetos propiedades fsicas, ya que se est
representando directamente su volumen, y permite realizar la comprobacin de
pertenencia al objeto de los puntos en el espacio, como vamos a ver ahora.
Adems, la Geometra slida constructiva al combinarse con el mtodo rbol octal
es muy til para crear objetos complejos a partir de formas sencillas. Esta
combinacin ofrece una buena aproximacin pero cuanto ms complejo sea el
objeto a dibujar, ms tiempo se tardar en crear.
Como ejemplo de su utilidad, la CSG fue empleada en el motor grfico del popular
juego de accin "Unreal".
8.Describe con tus palabras el mtodo de sombreado de Goraud.
Es una tcnica que permite simular diferente efectos de luz y sombreado en toda
la superficie de un objeto. Siendo publicada por Gourad en el ao de 1971
En primer lugar, se calculan los valores de luminosidad de cada vrtice
promediando los valores de las superficies que en l convergen mediante el
mtodo de reflexin de Phong. A continuacin se calculan las intensidades de
cada pxel de las superficies implicadas mediante interpolacin bilineal a partir de
los valores estimados de los vrtices. De esta manera, los valores de luminosidad
de los polgonos consisten en el gradiente formado por los valores de los vrtices.

5. Cul es la condicin que se debe de cumplir para que dos curvas cuales
quieran tengan una continuidad geomtrica de orden 1? Menciona en que familia
de curvas es trivial tener continuidad de orden 1 mediante la seleccin de los
puntos de control.
Continuidad geomtrica de Primer Orden G1
Tangente: La primera derivada es la misma en el punto de interseccin en
ambas secciones de la curva
Direccin: la direccin del vector tangente es la misma en ambas secciones de la
curva
La magnitud puede diferir

Familias: Curvas de Bzier y Curvas de Hermite


PROGRAMAS
3. Elabore dos programas que dibujen lneas a partir de puntos, utilizando los
algoritmos de DDA y Bresenham.

8.Elabore un programa que simule a una persona caminando.

También podría gustarte