Tutorial Opengl
7.1 INTRODUCCIÓN ............................................................................................................. 2 7.2 PROCESOS DE VISUALIZACIÓN Y TUBERÍAS GRÁFICAS ....................................... 2 7.3 ALGUNAS HERRAMIENTAS OpenGL PARA MODELAR Y VISUALIZAR ................ 6 7.4 ASIGNACIÓN DE LA CÁMARA OpenGL....................................................................... 6 7.5 POSICIONANDO Y DIRECCIONAMIENTO DE LA CÁMARA ..................................... 6 7.5.1 EJEMPLO DE FUNCIONAMIENTO DE LA FUNCIÓN gluLookAt() ..................... 7 7.5.2 RECUPERANDO LOS VALORES DE UNA MARTIZ EN OpenGL ......................... 8 7.6 FORMAS PRIMITIVAS QUE TIENE OpenGL .................................................................8 7.7 EJEMPLO DE UNA ESCENA COMPUESTA POR PRIMITIVAS OpenGL ..................... 9 7.8 EJEMPLO DE UNA ESCENA 3D CON RENDER Y SOMBREADO ............................. 13
Tema7. Dibujo de escenas 3D con OpenGL
DIBUJO DE ESCENAS 3D CON OpenGL
7.1 INTRODUCCIÓN
En los temas anteriores, se han introducido los conceptos para el dibujo en 2D, así como el desarrollo de la clase simple Canvas.Esta clase proveía funciones que establecían la ventana y el puerto de vista y funciones para dibujar líneas como moveTo() y lineTo(). Además se introdujo el concepto de CT, así como de funciones para realizar transformaciones geométricas 2D (rotación, escala, traslación.) Éstas transformaciones son un caso particular de las transformaciones 3D en las que se ignoran la tercera dimensión. En estecapítulo veremos como se usan las transformaciones 3D en OpenGL. Haciendo énfasis en como se trasforman los objetos y posicionan para obtener la escena 3D deseada. Todo el trabajo se hace con matrices y OpenGL soporta las funciones necesarias para construir las matrices requeridas. Además la pila de matrices que mantiene OpenGL hace que sea fácil su uso para realizar transformaciones en losobjetos y poder volver a las posiciones previas, para poder transformar otro objeto. Es muy fácil construir un programa en 3D con OpenGL para dibujar escenas utilizando transformaciones 3D. Experimentando con el programa se mejora notablemente la habilidad para la visualización de las sucesivas transformaciones 3D. OpenGL hace relativamente fácil la iniciación de la “cámara” para realizar una “foto” deuna escena para un “punto de vista” específico. La cámara se crea con una matriz. En este capítulo nos vamos a centrar en como se establece la cámara y lo enfocaremos a la transformación de los objetos necesarias. Se pueden hacer escenas 3D impresionantes con muy pocas funciones OpenGL.
7.2 PROCESOS DE VISUALIZACIÓN Y TUBERÍAS GRÁFICAS
Todos los dibujos 2D realizados hasta ahora eran un casoespecial de vistas 3D basadas en una simple “proyección paralela”. Nosotros hemos usado la cámara mostrada en la figura 1. El “ojo” indica la posición del punto de vista de la escena y mira a través del eje z a la ventana que es rectangular y que se encuentra en el plano xy. El volumen de la vista de la cámara es un paralepípedo rectangular. Las dimensiones de la ventana delimitan el tamaño de éstejunto con dos planos llamados cerca y lejos (“near” y “far”). Los puntos que se encuentran dentro del volumen delimitado se proyectarán en la ventana sobre líneas paralelas al eje z. Esto es equivalente a ignorar el componente z, así un punto 3D (x 1, y1, z1) se proyecta en (x1, y1, 0). Los puntos que se encuentran fuera son cortados. Otra transformación independiente de puerto de vista seencarga de proyectar el punto a la ventana en la posición indicada.
Figura 1. Vista usada en OpenGL para dibujos 2D
Gráficos por Ordenador
Pág. 2
Tema7. Dibujo de escenas 3D con OpenGL
Ahora nos encontramos en gráficos 3D con objetos posicionados en la escena en 3D. Para nuestro ejemplo seguiremos usando la proyección paralela, usadas en ingeniería y arquitectura, para obtener una...
Regístrate para leer el documento completo.