Está en la página 1de 16

INSTITUTO TECNOLOGICO SUPERIOR DE MISANTLA

INGENIERIA EN SISTEMAS COMPUTACIONALES MATERIA: Graficacin

TITULAR: Irahan Otoniel Jos Guzmn

Investigacion

Integrantes:
Jorge Luis Lpez Cruz Hctor Daniel Gutirrez Aguilar Jos Montero Jimnez Eduardo Mancilla Morales

Contenido
La representacin de los objetos en tres dimensiones ....................................................................... 3 DIBUJAR EN PERSPECTIVA ............................................................................................................... 3 Transformaciones en OpenGL ..................................................................................................... 3 Proyeccin ................................................................................................................................... 5 Transformaciones ModelView .................................................................................................... 5 Hardware ..................................................................................................................................... 6 Windows...................................................................................................................................... 6 Linux ............................................................................................................................................ 7 LA VISUALIZACION TRIDIMENSIONAL ................................................................................................. 9 Modelamiento ("modeling") ........................................................................................................... 9 TRANSFORMACIONES TRIDIMENCIONALES ...................................................................................... 10 REPRESENTACION MATRICIAL DE TRANSFORMACIONES TRIDIMENCIONALES ............................ 10 ** ROTACIN **........................................................................................................................ 13 COMPOSICION DE TRANSFORMACIONES TRIDIMENCIONEALES .............................................. 14 Lneas y Superficies Curvas................................................................................................................ 15 Referencias ........................................................................................................................................ 15

La representacin de los objetos en tres dimensiones


La representacin de los objetos en tres dimensiones sobre una superficie plana, de manera que ofrezcan una sensacin de volumen se llama Perspectiva. Se representan los objetos sobre tres ejes XYZ. En el eje Z, se representa la altura. En el eje Y, se representa la anchura y en el eje X, se representa la longitud. Los distintos tipos de perspectivas dependen de la inclinacin de los planos Los sistema ms utilizados son la isomtrica, la caballera y la cnica. Estudiaremos en este curso las dos primeras. Perspectiva Isomtrica. En ella los ejes quedan separados por un mismo ngulo (120). Las medidas siempre se refieren a los tres ejes que tienen su origen en un nico punto. Perspectiva Caballera. En ella los ejes X y Z tienen un ngulo de 90 y el eje Y con respecto a Z tiene una inclinacin de 135. En ese te caso las medidas en los ejes X y Z son las reales y las del eje Y tiene un coeficiente de reduccin de 0.5.

DIBUJAR EN PERSPECTIVA
En ambas perspectivas, el sistema ms sencillo es llevar las tres vistas principales sobre los planos formados por los ejes: Alzado en el plano XZ. Planta en el plano XY. Perfil en el plano YZ. Cada una de las aristas que forman las vistas se prolonga paralelamente al eje que corresponda: Horizontal paralelo al eje de las X. Vertical paralelo al eje de las Z. Profundidad paralelo al eje de las Y

Transformaciones en OpenGL
En algunos tutoriales anteriores de OpenGL se han mencionado de manera fragmentaria los conceptos de transformaciones: En los Hola Mundo 3d en OpenGL y Hola Complicado Mundo OpenGL -win32 se utilizaron algunas transformaciones de proyeccin y viewport para ajustar la inicializacin de la ventana, pero sin entrar mucho en detalle acerca de su funcionamiento.

Este tutorial explora los diferentes tipos de transformaciones en OpenGL, a saber: Proyeccin: Trasforman una escena 3d abstracta, en una imagen plana que puede ser visualizada en una pantalla. Viewport: Ajustan el producto de la proyeccin a las dimensiones de un rectngulo contenedor (ventana). De vista: Que definen y afectan la posicin desde la cual se visualizan las escenas tridimensionales. Modelado: Sirven para manipular los objetos en la escena, permitiendo trasladarlos, rotarlos y deformarlos (escalarlos). Modelo-Vista: Son la combinacin de las dos transformaciones anteriores, que desde un punto de vista prctico son semejantes.

void glMatrixMode( enum mode ); Permite seleccionar la matriz sobre la cual se realizaran las operaciones, los posibles valores de mode son TEXTURE, MODELVIEW, COLOR o PROJECTION . Por ahora las ms interesantes son MODELVIEW y PROJECTION, las otras se vern en su momento. Void glLoadMatrix{fd} (T m[16]); Recibe una matriz de 44 que reemplaza la actual seleccionada. El arreglo es ordenado en forma de una matriz que tiene orden Y, a diferencia de las matrices convencionales que tienen orden X, lo que quiere decir que tiene la forma. void glMultMatrix{fd}( T m[16] ); Multiplica la matriz actual por la matriz m[16] y reemplaza la matriz actual con el resultado de la operacin. La operacin resultante sera algo as como A = A M , donde A es la matriz actual, M es la matriz suministrada y A es la nueva matriz que resulta de la operacin y que reemplaza a A. void glLoadTransposeMatrix{fd}( T m[16] ); Realiza una funcin similar a LoadMatrix(), con la diferencia que trabaja sobre una matriz en orden X as. void glMultTransposeMatrix{fd}( T m[16] ); Misma funcionalidad que MultMatrix() , solo que acta en base a la matriz en orden X, o sea la transpuesta. void glLoadIdentity( void ); Remplaza la matriz actual por la matriz identidad de tamao 44. Estas operaciones afectan directamente las matrices mencionadas anteriormente, debido a que las operaciones de alto nivel (trasladar, rotar, escalar) que existen ms adelante se concatenan, es decir su efecto se acumula sobre matriz actual, existen dos operaciones que permiten guardar la matriz actual en una pila y restaurarla cuando sea necesario, estas son:

void glPushMatrix( void ); Coloca una copia de la matriz actual en la parte superior de la pila correspondiente. void glPopMatrix( void ); Saca el elemento superior de la pila, que pasa a reemplazar a la matriz actual. Estas dos operaciones son muy utilizadas, debido a que permiten realizar transformaciones sobre objetos diferentes, manteniendo algunas de las anteriores sin modificar.

Proyeccin
Como ya se ha visto en tutoriales anteriores, OpenGL maneja 2 tipos de proyeccin, en perspectiva y ortogrfica, donde la primera corresponde a la visin realista de la escena, mientras que la segunda es una plana que no deforma las dimensiones de los objetos dependiendo de su distancia a la cmara. Ortogrfica: Para ajustar la proyeccin ortogrfica se utiliza el siguiente grupo de funciones: glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); gluOrtho2D(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top); Perspectiva: Existen dos manera de manejar la proyeccin en perspectiva, a travs de una funcin gl o mediante la librera glu (una tercera puede ser realizar los clculos de la matriz manualmente. En el primer caso: glFrustrum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far)

Transformaciones ModelView
Una tarea muy comn en la creacin de grficos 2d, 3d y videojuegos es la de mover objetos para crear cierta animacin. La primera idea que se nos viene a la cabeza en el caso de OpeGL es que todo modelo est formado por primitivas, toda primitiva por puntos y finalmente todo punto por una tripleta de coordenadas XYZ, as que si se cambian las coordenadas todo de ah hacia arriba se mueve.

void glRotate[fd](GLfloat angle, GLfloat x, GLfloat y, GLfloat z); Hay que tener en cuenta las siguientes caractersticas a la hora de utilizar estas funciones: Estas tres operaciones afectan la matriz actual seleccionada, bien sea MODELVIEW o PROJECTION, generalmente para propsitos de rotar objetos dentro de la escena se utiliza la matriz MODELVIEW. El eje coordenado de referencia para las operaciones tanto en MODELVIEW como en PROJECTION se denomina eye coordinates, que traduce coordenadas de ojo o mejor vista. Este es un sistema inamovible y en ausencia de cualquier transformacin, la cmara est situada en (0,0,0) apuntando hacia la direccin Z negativa, con el vector arriba en el sentido Y positivo. Cada operacin que afecta la matriz MODELVIEW crea otro sistema coordenado para los objetos que se dibujen despus de realizada la trasformacin, dicho sistema difiere del bsico, es decir de las llamadas coordenadas de vista (eye coordinates) dependiendo de todo el conjunto de transformaciones realizadas desde el momento en que la matriz MODELVIEW dejo de ser la identidad. Una consecuencia de lo anterior es que las operaciones no son conmutativas, es decir que un llamado de glRotatef(), seguido de uno de glTranslatef() produce un efecto diferente a llamar las operaciones en orden inverso. Esto se ve mejor ilustrado en el grfico:

Es importante aprender a utilizar correctamente glPushMatrix(), glPopMatrix() y otras operaciones que permitan salvar y restaurar estados de matriz, debido a que permiten realizar translaciones y rotaciones especificas para un cierto objeto, sin alterar los otros.

Hardware
En realidad, el API de ogl est pensado para trabajar bajo el respaldo de un hardware capaz de realizar las operaciones necesarias para el rende rizado, pero si no se dispone de ese hardware, estas operaciones se calcularan por medio de un software contra la CPU del sistema. As que los requerimientos hardware son escasos, aunque cuanto mayor sea las capacidades de la mquina, mayor ser el rendimiento de las aplicaciones ogl.

Windows

En principio, cualquier versin de Windows viene con las libreras necesarias para ejecutar cualquier aplicacin que utilice OpenGL. Para el desarrollo de las mismas, el Microsoft Visual Studio, y en particular Visual C++ trae tambin todo lo necesario. Puedes conseguir, adems, la ltima versin de la GLUT en la web de Nate Robins.

Linux
Para visualizar aplicaciones OpenGL en XFree86 necesitars instalar un paquete para el soporte de las libreras Mesa (que es el equivalente en software libre de OpenGL) y de las utilidades GLU y GLUT. Para realizar desarrollo necesitars, a mayores, los paquetes equivalentes en modo dev. En el caso de la distribucin Ubuntu los paquetes necesarios para desarrollo y visualizacin son los siguientes: - Freeglut3-dev - libgl1-mesa-dev - libglu1-mesa-dev - libglut3.dev

Coordenadas oculares

Las coordenadas oculares se sitan en el punto de vista del observador, sin importar las transformaciones que tengan lugar. Por tanto, estas coordenadas representan un sistema virtual de coordenadas fijo usado como marco de referencia comn.
Transformaciones

Las transformaciones son las que hacen posible la proyeccin de coordenadas 3D sobre superficies 2D. Tambin son las encargadas de mover, rotar y escalar objetos.
El modelador

En esta seccin se recogen las transformaciones del observador y del modelado puesto que, como se ver en el apartado, constituyen, al fin y al cabo, la misma transformacin.
Transformaciones del observador

La transformacin del observador es la primera que se aplica a la escena, y se usa para determinar el punto ms ventajoso de la escena. Por defecto, el punto de vista est en el origen (0,0,0) mirando en direccin negativa del eje z. La transformacin del observador permite colocar y apuntar la cmara donde y hacia donde se quiera.

Transformaciones del modelo

Estas transformaciones se usan para situar, rotar y escalar los objetos de la escena. La apariencia final de los objetos depende en gran medida del orden con el que se hayan aplicado las transformaciones.
Transformaciones de la proyeccin

La transformacin de proyeccin se aplica a la orientacin final del modelador. Esta proyeccin define el volumen de visualizacin y establece los planos de trabajo Los dos tipos de proyeccin ms utilizados son la ortogrfica y la perspectiva, que veremos ms adelante.
Transformaciones de la vista

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

Las matemticas que hay tras estas transformaciones se simplifican gracias a las matrices. Cada una de las transformaciones de las que se acaba de hablar puede conseguirse multiplicando una matriz que contenga los vrtices por una matriz que describa la transformacin.
El canal de transformaciones

Para poder llevar a cabo todas las transformaciones de las que se acaba de hablar, deben modificarse dos matrices: la matriz del Modelador y la matriz de Proyeccin.
La matriz del modelador

La matriz del modelador es una matriz 4x4 que representa el sistema de coordenadas transformado que se est usando para colocar y orientar los objetos.
La matriz de proyeccin

La matriz de proyeccin especifica el tamao y la forma del volumen de visualizacin. El volumen de visualizacin es aquel cuyo contenido es el que se representa en pantalla.
Proyecciones ortogrficas

Una proyeccin ortogrfica es cuadrada en todas sus caras. Esto produce una proyeccin paralela, til para aplicaciones de tipo CAD o dibujos arquitectnicos, o tambin para tomar medidas, ya que las dimensiones de lo que representan no se ven alteradas por la proyeccin.
Proyecciones perspectivas

Una proyeccin en perspectiva reduce y estirar los objetos ms alejados del observador. Es importante saber que las medidas de la proyeccin de un objeto no tienen por qu coincidir con las del objeto real, ya que han sido debo

LA VISUALIZACION TRIDIMENSIONAL
Existen distintos modos de entender lo que es una "grfica tridimensional", aunque todos se refieren a ilustraciones que -en realidad- son solo bidimensionales. La forma ms conocida -y antigua- es la estereoscpica, que se basa en la diferente visin de los dos ojos y produce el efecto de profundidad mediante lentes con filtros rojo y verde (uno para cada ojo).

Otra estuvo en pleno auge hace un par de aos y se conoce como "auto estereograma": son los "puntitos" que no parecen representar nada pero, con buenos ojos, paciencia, esfuerzo para desenfocar la vista (...y posteriores posibles dolores de cabeza) permiten ver figuras con "profundidad".

Ambas tcnicas se benefician hoy del computador para su produccin. Pero ninguna de estas permite obtener varias vistas de un mismo objeto o de un mismo paisaje.

La tcnica para esto es otra: es la que usan arquitectos e ingenieros para desear edificios, muebles y mquinas. En otras palabras, se necesitan planos o, ms precisamente, juegos de coordenadas de todos los vrtices, ecuaciones que representen los vectores (aristas rectas o curvas) y muchos, muchos clculos para hacer aparecer un objeto en cierta posicin y luego en otra. Y en mis instrucciones y clculos para posicionar fuentes de luz, proyectar sombras, ajustar colores en funcin de la distancia, etc. Esto es lo que hizo las aplicaciones profesionales de CAD (diseo asistido por computador) primero en grandes computadores o en mquinas especializadas (estaciones grficas) y hoy se estn popularizando como aplicaciones de 3D al alcance de cualquier aficionado. Por cierto se necesita siempre cierto "poder de cmputo" y no cualquier Macintosh o PC sirve.

Modelamiento ("modeling")

Lo primero, en la creacin 3D, consiste en crear un objeto: es el "modelamiento". Esto puede hacerse de diversas maneras. Lo ms simple es hacer un dibujo en dos dimensiones y luego "moverlo" para generar un volumen. La extrusin consiste en desplazar el dibujo inicial siguiendo una lnea recta (en aplicaciones bsicas) o una trayectoria tridimensional prediseada (en aplicaciones avanzadas), dejando un "rastro" de sus posiciones anteriores (Orden "Extrude" en ingls). As, un rectngulo forma un paraleleppedo, un crculo forma un cilindro o un helicoide, etc.: un ejemplo son las letras "3D" del ttulo de este artculo. Otra herramienta para modelar es la revolucin ("Lathe"): se desplaza el dibujo inicial

siguiendo un crculo, alrededor de un eje preelegido. As, medio crculo genera una esfera y el simple perfil de la ilustracin superior produce el volumen que la sigue. Adems de proponer objetos simples prediseados, un buen modelador permite unir varios volmenes entre s y el ms avanzado permite operaciones booleanas (que aaden o sustraen volmenes unos a otros, permitiendo crear huecos de variadas formas). Otra funcin importante del modelador consiste en dividir todas las superficies en elementos menores ("facetas", preferentemente tringulos), lo cual es especialmente importante para facilitar el sombreado y la creacin de reflejos sobre superficies curvas: es el "splitting" o "gridding". Adems, existen funciones que permiten deformar (inflar, torcer, separar...) una o varias caras o facetas de cada volumen creado. Todas las etapas de modelamiento se hacen utilizando una visualizacin de malla de alambre (solo leas), lo cual permite trabajar con mayor rapidez. Una vez terminado el modelo de malla, se define la consistencia y el color de los planos y se pasa a la producen. Produccin ("rendering")

Una vez creado el objeto, hay que realizar la imagen final, lo cual implica escoger un punto de vista -como lo har un fotgrafo- y colocar fuentes de iluminacin (una o varias). Tambin se puede agregar un decorado: un fondo de cierto color y eventualmente un primer plano, que puede esconder cierta parte del objeto. Ciertas aplicaciones permiten usar como fondo una ilustracin 2D preexistente y, por cierto, se pueden cortar y pegar otros objetos tridimensionales desde otras realizaciones. Es posible trabajar con un mnimo de elementos de iluminacin, pero tambin con espejos y reflejos de un objeto sobre otro: todo depende de la aplicacin, del poder de clculo...y de la paciencia, porque esta etapa es la que toma ms tiempo.

TRANSFORMACIONES TRIDIMENCIONALES
REPRESENTACION MATRICIAL DE TRANSFORMACIONES TRIDIMENCIONALES
Las transformaciones tridimensionales se pueden representar con matrices de 4 X 4, siempre y cuando usemos representaciones de coordenadas homogneas de los puntos en el espacio tridimensional. As, en lugar de representar un punto como (x, y, z), lo hacemos como (x, y, z, W), donde dos de estos cudruplos representan el mismo punto si uno es un multiplicador distinto de cero del otro: no se permite el cudruplo (0, 0, 0, 0). Como sucede en el espacio bidimensional, la representacin estndar de un punto (x, y, z, W) con W 0 se indica (x/W, y/W, z/W, 1). La transformacin de un punto a esta forma se d

Denomina homogeneizacin, igual que antes. Adems los puntos cuya coordenada W es cero se llaman puntos en el infinito. Las transformaciones geomtricas tridimensionales que se estudian son tres en concreto: traslacin, escalado y rotacin. ** TRASLACIN ** Nos permitir cambiar la posicin de un objeto, movindolo en lnea recta desde una posicin inicial a la posicin final. Requiere 3 parmetros: Tx = Desplazamiento en X Ty = Desplazamiento en Y Tz = Desplazamiento en Z Las nuevas coordenadas se obtienen mediante las siguientes ecuaciones: x= x+Tx y= y+Ty z= z+Tz Dnde: Tx, Ty,Tz > 0 Desplazamiento positivo Tx, Ty,Tz < 0 Desplazamiento negativo Tx,Ty,Tz = 0 No hay desplazamiento La matriz que utilizamos en la Translacin es de la forma:

Y al realizar la matriz el resultado grafico es el siguiente:

** ESCALACION ** La matriz para la transformacin de escalacin de una posicin P = (x, y, z) con respecto del origen de las coordenadas. Consiste en cambiar el tamao de un objeto. Las nuevas coordenadas se obtienen mediante las siguientes ecuaciones: x= x Sx y= y Sy z= z Sz Requiere 3 parmetros: Sx = Factor de escalacin en X Sy = Factor de escalacin en Y Sz = Factor de escalacin en Z Sx,Sy,Sz > 1 Aumenta la dimensin Sx,Sy,Sz < 1 Disminuye la dimensin Sx,Sy,Sz = 1 Se mantiene la dimensin La matriz que se utiliza para la escalacin es de la forma:

La resultante de la matriz dentro de una grfica tridimensional seria:

** ROTACIN **
Para generar una transformacin de rotacin, debemos designar un eje de rotacin respecto del cual girara el objeto, y la cantidad de rotacin angular, es decir, un ngulo (). Una rotacin tridimensional se puede especificar alrededor de cualquier lnea en el espacio. Los ejes de rotacin ms fciles de manejar son aquellos paralelos a los ejes de coordenadas. Los ngulos de rotacin positiva producen giros en el sentido opuesto a las manecillas del reloj con respecto al eje de una coordenada, si el observador se encuentra viendo a lo largo de la mitad positiva del eje hacia el origen de coordenadas. Los ngulos de rotacin positiva producen giros en el sentido opuesto a las manecillas del reloj con respecto al eje de una coordenada, si el observador se encuentra viendo a lo largo de la mitad positiva del eje hacia el origen en coordenadas. Se forma una matriz de rotacin inversa al sustituir el ngulo de rotacin por . Los valores negativos para los ngulos de rotacin generan rotaciones en una direccin en el sentido del reloj, de modo que se produce la matriz identidad cuando se multiplica cualquier matriz de rotacin por su inverso. Consiste en girar un objeto alrededor de uno de los ejes de coordenadas. Respecto al eje Z, Por ejemplo, las nuevas coordenadas se obtienen mediante las siguientes ecuaciones: x= x cos()- y sen() y= x sen()+ y cos() z= z Donde es el ngulo de giro Las matrices que se utilizan para cada eje de coordenadas son las siguientes:

Y grficamente los resultados son: Rotacin con respecto al eje X

Rotacin con respecto al eje Y

Rotacin con respecto al eje Z

COMPOSICION DE TRANSFORMACIONES TRIDIMENCIONEALES

La composicin de de transformaciones tridimensionales es la transformacin de dos traslaciones sucesivas. Es decir que resulta de la multiplicacin de nuestra matriz de puntos de la figura original, por el resultado de la multiplicacin de la matriz de la primera traslacin por la matriz de la segunda traslacin. De esta manera de estas operaciones matriciales obtenemos los nuevos puntos de nuestra figura trasladada.

Lneas y Superficies Curvas


La necesidad de representar curvas y superficies proviene de modelar objetos representar objetos reales. Normalmente no existe un modelo matemtico previo del objeto, y el objeto se aproxima con pedazos de planos, esferas y otras formas simples de modelar, requirindose que los puntos del modelo sean cercanos a los correspondientes puntos del objeto real. La representacin no paramtrica de una curva puede ser implcita y = f(x) o bien explcita, f(x, y) = 0 La forma implcita no puede ser representada con curvas multivariadas sobre x, mientras que la forma explcita puede requerir utilizar criterios adicionales para especificar la curva cuando la ecuacin tiene ms soluciones de las deseadas. De igual manera la representacin paramtrica tiene la forma P(t) = ( x(t), y(t) )T t1 <= t <= t2 La derivada o vector tangente es P (t) = ( x(t), y(t) )T El parmetro t puede reemplazarse mediante operaciones de cambio de variable, y frecuente se normaliza de modo que t1 = 0 y t2 = 1. Aunque geomtricamente la curva aparece equivalente, una operacin de este tipo normalmente modifica el comportamiento de la curva.

Referencias
http://repr-trid-obj-aga.blogspot.mx/2011/12/lineas-y-superficies-curvas.html http://www.buenastareas.com/ensayos/La-VisualizacionTridimensional/6756.html http://www.aulaclic.es/autocad2008/t_33_1.htm

http://graficacionitca3d.blogspot.mx/2012/03/26-representacion-matricialde.html