practica4 - WordPress.com

Transcripción

practica4 - WordPress.com
Universidad Nacional
Autónoma de México
Facultad de Ingeniería
Laboratorio de Computación Gráfica
Profra.: Elizabeth Fonseca Chávez
Práctica 4
Doble Buffer de Animación
Alumno: Sánchez Sotelo Emmanuel
Grupo 4
Practica 4
Doble Buffer de Animación
Objetivos
-Preparar una ventana Windows para su uso con OpenGL.
-Repasar el uso de la tubería geométrica de OpenGL.
-Aprender a utilizar el doble buffer para realizar animaciones.
Cuestionario Previo
1.-Investigue y reporte cúales búferes se implementan en OpenGL y que función tienen. Esto es
investigue el
a)frame buffer o búfer de color, tanto frontal como posterior.
El búfer de color almacena el color de cada pixel en el cuadro actual. Este es el búfer que se ve. El
color esta en RGBA, los primeros tres componentes estan considerados el color del pixel mientras que
el A(Alpha) es la opacidad o transaparencia del pixel. Este búfer puede funcionar en conjunto con el
búfer de Acumulación.
b)depth buffer o búfer de profundidad
El búfer de profundidad contiene la profundidad de cada pixel del cuadro, tambien es llamado búfer z.
Esta asociado con la prueba de profundidad. Para cada pixel dibujado la prueba de profundidad
compara la profundidad actual almacenada con la profundidad del nuevo pixel. Dependiendo del
rsultado de la prueba el pixel es dibujado o no.
c)Stencil buffer
El Stencil buffer puede ser utilizado para restringir el area de dibujo. Almacena el valor asociado de
cada pixel. Se aplica un valor a un area de pixeles y posteriormente se dibuja solo sobre los pixeles con
ese valor.
2.-Investigue y reporte como se hace una secuencia animada de caricaturas.
Una secuencia animada se basa en el hecho de que al presentar una serie de escenas en pequeño lapso
de tiempo con pequeños cambios entre ellas da la sensación de movimiento, de tal manera que al poner
mas y mas escenas se llega a la percepción de un movimiento fluido.
3-Investigue y reporte que hace la función glutDisplayFunc().
La función glutDisplayFunc realiza la llamada a la ventana actual, cuando GLUT determina que el
plano normal de la ventana debe ser redibujado.
4-Investigue y reporte que hace la función glutIdleFunc().
Permite que un programa GLUT realice tareas de procesamiento en background o continua una
animación cuando no es recibido ningun evento de sistema.
5-Investigue y reporte que hace la función glutMainLoop().
Se encarga de pasar el control de flujo del programa a la GLUT a modo de que cada vez que ocurra un
evento sean llamadas las funciones definidas como callbacks hasta que la ventana se cierre.
Desarrollo
En el primer ejercicio de esta práctica podemos verificar el movimiento animado de dos cubos:
Posteriormente permitimos el movimiento de la camara
Realizamos ahora una esfera que se mueva de izquierda a derecha, unicamente modificando el código
para el segundo cuadro y montandolo un poco mas arriba
glMatrixMode(GL_MODELVIEW); //Mover cubo
glPushMatrix();
glTranslatef(2,angle*0.005,0);
glRotatef(-angle,1.0,0.0,0.0);
glCallList(2);
glPopMatrix();
O de la misma forma una esfera que se mueva de abajo hacia arriba.
Conclusiones
En esta práctica se pudo verificar como a través de un ciclo que se mantiene, y una pantalla que se
actualiza con una nueva matriz podemos darle a una figura estática una apariencia de estarse moviendo
al realizar diversas escenas con ligeros cambios. De igual forma nos permite verificar el
funcionamiento del doble buffer para la realización de estas animaciones.

Documentos relacionados