Primerparcial

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Primerparcial as PDF for free.

More details

  • Words: 1,825
  • Pages: 4
1

Primer Parcial Te´orico-Pr´actico: Visualizaci´on tridimensional y geometr´ıa en OpenGL Universidad Militar Nueva Granada Programa de Ingenier´ıa en Multimedia Computaci´on Gr´afica 2009-02

I.

REGLAS

LEA ATENTAMENTE CADA UNA DE LAS INDICACIONES ANTES DE SOLUCIONAR EL PARCIAL. El parcial se debe realizar u´ nicamente en grupos de 2 personas o en forma individual. Para los parciales en grupos de dos, se deben tomar los n´umeros abcdef los cuales salen de tomar tres d´ıgitos de cada c´odigo de estudiante as´ı 1200abc y 1200def . Si es un s´olo estudiante se usa su c´odigo dos veces. Para realizar cada ejercicio se debe: 1. Hacer un diagrama o esquema gr´afico de la situaci´on planteada. 2. Definir las matrices a emplear en cada una de las transformaciones de la tuberia de visualizaci´on. 3. Hacer un programa en usando solamente funciones propias de OpenGL para las transformaciones necesarias. 4. Hacer un programa en OpenGL usando las matrices de transformaci´on especificadas en el punto 2. La evaluaci´on del parcial se har´a en dos etapas. La primera etapa es una evaluaci´on te´orica de los dos primeros puntos, para el grupo 1 el d´ıa 25 de agosto y para el grupo 2 el d´ıa 24 de agosto en la oficina del programa. Para ello se deben traer en papel a mano: los diagramas, planteamientos, c´alculos y matrices de cada punto. En la segunda etapa se evaluar´a la soluci´on final te´orica y pr´actica del parcial, en el laboratorio correspondiente, en los horarios de clase. La soluci´on del parcial debe estar publicada en internet el d´ıa 26 de Agosto antes de las 9AM en la p´agina web de cada uno. Se debe publicar lo siguiente: 1. Un documento en pdf con el diagrama de la situaci´on y las matrices necesarias. 2. Un zip que contenga archivos cpp por cada uno de los puntos implementados. El c´odigo debe estar marcado dentro del c´odigo y externamente y tambi´en debe estar completamente comentariado. El nombre del archiv zip debe ser abc-def.zip, donde abceef viene de sus c´odigos. El nombre de los archivos cpp deben estar de la siguiente forma: Para los puntos correspondientes al item 3 (c´odigo solo OpenGL) el archivo debe llamarse: abc-def-Punto##-GL.cpp Ejemplo: Si los estudiantes tienen los c´odigos 1200125 y 1200324, es el c´odigo del segundo punto y corresponde a la implementaci´on usando s´olo funciones OpenGL el archivo debe llamarse: 125-324-Punto02-GL.cpp. Para los puntos correspondientes al item 4 (c´odigo con matrices calculadas) el archivo debe llamarse: abc-def-Punto##-M.cpp. Ejemplo: Si los estudiantes tienen los c´odigos 1200125 y 1200324, es el c´odigo del segundo punto y corresponde a la implementaci´on usando las matrices calculadas te´oricamente el archivo debe llamarse: 125-324-Punto02-M.cpp. As´ı que el zip en ambos ejemplos deber´ıa llamarse 125-324.zip

2

II.

E JERCICIOS

Para todos los puntos debe construir un modelo geom´etrico en OpenGL que se ajuste a la especificaci´on de la figura 1, d´onde L = a + b + c + d + e + f Las especificaciones de las 5 escenas a graficar son:

L/2

y x z

L/2

L

(0,0,0)

2L

L

Figura 1. Modelo a desarrollar

1. El modelo esta ubicado en el origen de coordenadas. La c´amara observa desde la coordenada (0, 0, L) mirando hacia el punto (0, 0, 0), y con vector arriba en la direcci´on (0, 1, 0). El volumen de visualizaci´on es de proyecci´on ortogonal y se ubica con plano lejano a una distancia de 3L con respecto al plano de visualizaci´on y el plano cercano a una distancia L del plano de visualizaci´on, la ventana de recorte tiene ancho y alto de 2L. 2. Ubique el modelo trasladado desde el origen a la posici´on (L, L, L). Ubique la c´amara en la coordenada (4L, 4L, 4L) mirando hacia el punto (0, 0, 0), y con vector arriba en la direcci´on (0, 1, 0). El volumen de visualizaci´on es de proyecci´on ortogonal y se ubica con plano lejano a una distancia de 6L con respecto al plano de visualizaci´on y el plano cercano a una distancia L del plano de visualizaci´on, la ventana de recorte tiene ancho y alto de 5L. 3. Ubique el modelo en el origen de coordenadas. Ubique la c´amara en la coordenada (0, 0, L) mirando hacia el punto (0, 0, 0), y con vector arriba en la direcci´on (0, 1, 0). El volumen de visualizaci´on es ortogonal oblicua y se ubica con plano lejano a una distancia de 3L con respecto al plano de visualizaci´on y el plano cercano a una distancia L del plano de visualizaci´on, la ventana de recorte tiene ancho y alto de 5L. El angulo α = L y φ = L 4. El modelo esta ubicado en el origen de coordenadas. La c´amara observa desde la coordenada (0, 0, L) mirando hacia el punto (0, 0, 0), y con vector arriba en la direcci´on (0, 1, 0). El volumen de visualizaci´on es de proyecci´on en perspectiva y se ubican con respecto al punto de referencia de la proyecci´on a distancia de 3L para el plano lejano y −L para el plano cercano, la ventana de recorte se ubica en le plano cercano y tiene ancho y alto de 2L. 5. El modelo esta ubicado en el origen de coordenadas. La c´amara observa desde la coordenada (0, 0, L) mirando hacia el punto (0, 0, 0), y con vector arriba en la direcci´on (0, 1, 0). El volumen de visualizaci´on es de proyecci´on en perspectiva y se ubican con respecto al punto de referencia de la proyecci´on a distancia de 3L para el plano lejano y −L para el plano cercano, la ventana de recorte se ubica en le plano cercano y tiene alto de 2L, relaci´on de aspecto 4 : 3 y a´ ngulo de apertura de L grados. III.

´ F UNDAMENTOS TE ORICOS

El resumen de teor´ıa que se enuncia a continuaci´on proviene principalmente del cap´ıtulo 7 y 8 del libro Gr´aficos por computadora con OpenGL (Hearn y Baker, 2006) y de los cap´ıtulos 1 al 3 y el anexo F de la gu´ıa de programaci´on de OpenGL (Woo, Neider, Tom, y Shreiner, 1999), se recomienda antes de implementar leer cuidadosament el cap´ıtulo 3 (Viewing) de dicho libro. En cuanto a la informaci´on concerniente a comandos propios de OpenGL la referencia principal es el OpenGL SDK disponible en internet (OpenGL Software Development Kit, 2009).

3

III-A.

Visualizaci´on tridimensional

En la visualizaci´on tridimensional se estudia el planteamiento conceptual, matem´atico, de implementaci´on y de uso asociado a la siguiente pregunta: ¿C´omo visualizar en una pantalla bidimensional, escenas tridimensionales almacenadas en una m´aquina de c´omputo? Para ello se parte de varios referentes conceptuales y te´oricos entre ellos a mi modo de ver los principales son: el dibujo t´ecnico y de proyecci´on, la geometr´ıa, la trigonometr´ıa, el a´ lgebra lineal y la computaci´on. El problema que plantea la pregunta anteriormente enunciada se establece de la siguiente manera: Dado que se tiene un conjunto de objetos geom´etricos, los cuales est´an definidos en t´erminos de coordenadas en un espacio tridimensional; se desea establecer una proyecci´on bidimensional de los objetos que son visibles para un observador desde una posici´on dada. Dicha proyecci´on se realiza sobre un plano de proyecci´on, el cual se limita en unos valores m´aximos y m´ınimos para coordenadas como se ve en la figura 2, de tal manera que se deben gr´aficar en la pantalla u´ nicamente los objetos cuyas coordenadas proyectadas est´an dentro de la ventana de recorte y no son ocluidos por otros objetos. Plano de visualización

ypv

(xvmax , yvmax)

(xvmin , yvmax)

v

zpv

n u

y

xpv x

z

Ventana de recorte (xvmax , yvmin) (xvmin , yvmin)

Figura 2. Proyecci´on sobre una ventana de recorte.

Para hacer esta graficaci´on se realizan una serie de transformaciones de las coordenadas del modelo (CM ) hasta llegar a las coordenadas de pantalla o de despliegue (CD). Seg´un lo muestra la figura 3. El resultado del uso de estas matrices depende del orden en el cual se aplican o multiplican, dicho orden debe se˜nirse al que presenta la figura 3 de acuerdo del objetivo de la ubicaci´on de escena a lograr.

CM

Transformación de modelado

Transformación de proyección

CP

CU

Transformación de visualización

Transformación de normalización y recorte

CN

CV

Transformación de visor

CD

Figura 3. Tuber´ıa de visualizaci´on.

Las ecuaciones generales a emplear con respecto al libro de (Hearn y Baker, 2006) son las del cuadro I. III-B.

Graficaci´on y visualizaci´on en OpenGL

Para la graficaci´on de geometr´ıa y al visualizaci´on en OpenGL se deben tener encuenta: 1. La graficaci´on se puede hacer con las variaciones de graficaci´on para pol´ıgonos, cuadros o tri´angulos, para ello debe tenerse en cuenta que la cara mira hacia el frente si el orden de los v´ertices va en sentido anti-horario y hacia atr´as si se ordenan en sentido horario (Cap´ıtulo 2 State Management and Drawing Objects secci´on OpenGL Geometric Drawing Primitives y secci´on Polygon Details).

4

Cuadro I ´ 3D (L IBRO DE (H EARN Y BAKER , 2006)) E CUACIONES IMPORTANTES PARA LA VISUALIZACI ON Sistema de coordenadas de visualizaci´on Proyecci´on paralela Proyecci´on paralela oblicua Proyecci´on perspectiva Transformaci´on de visor o pantalla

ec. 7.1 a 7.5 ec. 7.6 y 7.7 ec.7.13 y 7.14 ec.7.40 y 7.41 ec.7.42

2. Para ubicar adecuadamente las geometr´ıas o modelos se debe comprender claramente le uso de los comandos glTranslate, glRotate y glScale. Se recomienda leer bien el Cap´ıtulo 3 Viewing, secci´on A Simple Example: Drawing a cube y secci´on Viewing Transformations del libro (Woo y cols., 1999). 3. Para la multiplicaci´on de matrices con fines de hacer composici´on de transformaciones se debe entender bien el comando glMultMatrix (Cap´ıtulo 3 Viewing, secci´on Thinking about transformations del libro (Woo y cols., 1999)). 4. Para ubicar la c´amara se debe comprender claramente le uso del comando glLookAt. Se recomienda leer bien el Cap´ıtulo 3 Viewing, secci´on A Simple Example: Drawing a cube y secci´on Viewing Transformations del libro (Woo y cols., 1999). 5. La construcci´on de al visualizaci´on paralela se realiza con el comando glOrtho (Ver cap´ıtulo 3 Viewing y el ap´endice F del libro (Woo y cols., 1999) ) 6. La construcci´on de al visualizaci´on en perspectiva se realiza con el comando glFrustum y gluPerspective(Ver cap´ıtulo 3 Viewing y el ap´endice F del libro (Woo y cols., 1999)) 7. La especificaci´on de las matrices y la forma de c´alculo para cada comando se puede ver tambi´en en la guia de funciones que se encuentra en el SDK de OpenGL (OpenGL Software Development Kit, 2009) o en el manual de referencia de OpengL. IV.

A NEXOS

Se anexan c´odigo fuente de ejemplo de uso de graficaci´on usando comandos OpengL y ejemplo usando la matriz calculada 1. Archivo EjemploGL.cpp 2. Archivo EjemploM.cpp R EFERENCIAS Hearn, D., y Baker, M. P. (2006). Gr´aficos por computadora con opengl. Pearson Educaci´on S.A. Opengl software development kit. (2009). En internet. Disponible en http://www.opengl.org/sdk/ Woo, M., Neider, J., Tom, D., y Shreiner, D. (1999). Opengl programing guide. Addison Wesley. http://www.glprogramming.com/red/

Disponible en

Related Documents