domingo, 11 de marzo de 2012

Investigación




Las proyecciones dentro del programa openGL puede hacerse ortogonales o perspectivas y cada uno de ellas tienen sus diferencias.



ORTOGONAL. Una proyección ortogonal define un volumen de la vista en forma parelepipeda, al ver el dibujo de esta forma es imposible el distinguir las medidas originales, es independiente una medida de otra.




Funciones
glMatriz(GL_Projection);//Indica la llamada a matriz de proteccion
glLoadIdentify();//Se carga la identidad inicial
void glortho(izquierda,derecha,abajo,arriba,cerca,lejos);// En lugar de las palabras van valores tipo flotantes para poder tener vistas.


En dado caso tengamos un dibujo tipo isometrico de dos dimensiones se utilizaria.
void gluortho2D(izquierda,derecha,abajo,arriba);





PERSPECTIVA. Una proyeccion perspectiva define un volumen de la vista la cual es un prisma truncado de base rectangular, con este se tiene una idea de cuales son las medidas, y la profundidad de los objetos




Funciones
void gluPerspective(fovy,aspecto,cerca,lejos);
//Fovy es el angulo de la toma
La perspectiva tiene una buena forma de ver los objetos, aunque para algunas presentacioners combiene la ortogonal





TRANSFORMACIONEGEOMÉTRICAS





TRASLACIÓN. La traslación es una funcion para mover el objeto a otro lugar de la pantalla, es decir el que el objeto solo vaya a otro lugar.


Para esto se tiene la siguiente funcion
glTraslatef(x.x,y.y,z.z)//Aqui se indica cuantos y en que eje se trasladara el objeto





ROTACIÓN. Para rotar un objeto sobre algun eje se tiene la siguiente funcion
glRotatef(GLfloat angulo, Glfloat x,GLfloat y, GLfloat z);


Al implementar esta funcion la rotacion se hace con sentido contrario a las manecillas del reloj





ESCALADO. Este cambie el tamaño del objeto en si, es decir si tiene un cuadrado con 2.0f a lo lados, dependiendo el escalado que le des sera menor o mayor, Se ocupa la siguiente funcion.
glScalef (GLfloat x, GLfloat y, GLfloat z);


Lo que podemos hacer tambien es el tener una diferente escalado para cada lado, dependiendo de la necesidad.





PILA DE MATRICES. 
En la funcion display() se encuentren las llamadas a dos funciones la glPushMatrix() y glPopMatrix(). Para comprender su funcionamiento un pequeño ejemplo.


La funcion glPushMatrix(), realiza copia de amtriz superior de forma que las dos sean igualesm ingresando los valores ala pila y con la funcion glPopMatrix() se llama a ese valor de la pila.


Existe otra funcion glMulMatrixd() multiplica la matriz superior de la pila por la matriz que tiene como argumento. Al multiplicar en este caso por la matriz identidad, la matriz que queda en la posicion superior de pila es mModel.





VIEWPORT
Viewport especifica la afinacion del eje x y el eje y la cual normaliza las coordenadas hacia la pantalla. Su funcion en si es al coordinacion de las coordenadas reales, a las coordenadas en pantalla.


En general, la ventana no esta ocupado unicamente por una aplicacion
-La ventana se divide en zonas de vision(viewports)
-El sistema coordenado es derecho
-Solo hay una zona de division activa
Linea de codigo.
glViewport(Xminimo,Yminimo,ancho,alto)
Principales aplicaciones:
-Tener varias areas de dibujo y proyeccion en una ventana
-Mantener la proporcion del aspecto













CONCLUSIONES

  • Es fácil de distinguir los dos tipos de perspectivas, ya que una es intuitiva y la otra es sin saber su altura o profundidad.
  • Al saber desarrollar la transformaciones geométricas se permitirá tener un mejor control de lo que dibujo, en dado caso no podamos verlo dentro de la pantalla o utilizarlo a nuestro antojo.
  • Al saber como están compuestas las matrices se da uno la idea del desarrollo de la maquina al hacer alguna funcion logica.
  • El pipeline no indica como se va mostrando los gráficos paso por paso en la pantalla, asi de una manera podemos ver que realizar la maquina por nosotros.





BIBLIOGRAFIA
http://www.opengl.org/sdk/docs/man/xhtml/glViewport.xml
http://graficos.uji.es/grafica/NuevasPracticas/Practica4/Proyecciones.html
http://www.tecnun.es/asignaturas/grafcomp/OpenGL/practica/capitulo4.pdf



No hay comentarios:

Publicar un comentario