Curso Computación Gráfica y OpenGL

44
Curso OpenGL IEEE, Espinosa Ponce Er nesto 1 Curso Curso Computación Computación Gráfica y OpenGL Gráfica y OpenGL Impartido por Impartido por Ernesto Espinosa Ponce Ernesto Espinosa Ponce Intersemestre 2008-1 – Intersemestre 2008-1 – 2008-2 2008-2 IEEE UNAM IEEE UNAM

description

Curso Computación Gráfica y OpenGL. Impartido por Ernesto Espinosa Ponce Intersemestre 2008-1 – 2008-2 IEEE UNAM. Experiencia. Egresando de la primera generación del módulo de Computación Gráfica Experiencia de 2 años en el desarrollo de gráficos - PowerPoint PPT Presentation

Transcript of Curso Computación Gráfica y OpenGL

Page 1: Curso Computación Gráfica y OpenGL

Curso OpenGL IEEE, Espinosa Ponce Ernesto 1

Curso Curso Computación Computación

Gráfica y OpenGLGráfica y OpenGLImpartido por Impartido por

Ernesto Espinosa PonceErnesto Espinosa Ponce

Intersemestre 2008-1 – 2008-Intersemestre 2008-1 – 2008-22

IEEE UNAMIEEE UNAM

Page 2: Curso Computación Gráfica y OpenGL

2Curso OpenGL IEEE, Espinosa Ponce Ernesto

ExperienciaExperiencia

Egresando de la primera generación del Egresando de la primera generación del módulo de Computación Gráficamódulo de Computación Gráfica

Experiencia de 2 años en el desarrollo de Experiencia de 2 años en el desarrollo de gráficosgráficos

Materias acreditadas: Computación Gráfica, Materias acreditadas: Computación Gráfica, Computación Gráfica Avanzada, CAD, Computación Gráfica Avanzada, CAD, Procesamiento Digital de Imágenes, Diseño de Procesamiento Digital de Imágenes, Diseño de Interfaces, Multimedia y Realidad VirtualInterfaces, Multimedia y Realidad Virtual

Experiencia en el desarrollo de Gráficos con Experiencia en el desarrollo de Gráficos con OpeGL tanto bajo plataforma Windows como OpeGL tanto bajo plataforma Windows como LinuxLinux

Page 3: Curso Computación Gráfica y OpenGL

3Curso OpenGL IEEE, Espinosa Ponce Ernesto

ProyectosProyectos

LIMN, Proyecto Jurasic PlantLIMN, Proyecto Jurasic Plant Proyecto NXR, ModelneitorProyecto NXR, Modelneitor Participación en Simulador Virtual de Participación en Simulador Virtual de

Operaciones de Próstata en el CCADETOperaciones de Próstata en el CCADET Proyecto 3DLoaderProyecto 3DLoader Proyecto CuacraftGraphicClientProyecto CuacraftGraphicClient Proyecto Mictlan EngineProyecto Mictlan Engine Desarrollo de tesis en visualización 3D de Desarrollo de tesis en visualización 3D de

agua fluyendoagua fluyendo

Page 4: Curso Computación Gráfica y OpenGL

4Curso OpenGL IEEE, Espinosa Ponce Ernesto

Presentación de alumnosPresentación de alumnos Nombre, Semestre, CarreraNombre, Semestre, Carrera Motivo por el cual ha decidido tomar el cursoMotivo por el cual ha decidido tomar el curso Módulo si es que lo ha elegido o cual piensa Módulo si es que lo ha elegido o cual piensa

elegirelegir Área de interés dentro de las gráficas por Área de interés dentro de las gráficas por

computadoracomputadora Lenguajes de programación que manejaLenguajes de programación que maneja Ha realizado desarrollo de interfaces gráficas, Ha realizado desarrollo de interfaces gráficas,

con qué APIcon qué API Qué nivel considera tener dentro del lenguaje CQué nivel considera tener dentro del lenguaje C Cuáles son los resultados que espera tener al Cuáles son los resultados que espera tener al

terminar este cursoterminar este curso

Page 5: Curso Computación Gráfica y OpenGL

Curso OpenGL IEEE, Espinosa Ponce Ernesto 5

Capítulo ICapítulo I

Introducción a OpenGLIntroducción a OpenGL

Page 6: Curso Computación Gráfica y OpenGL

Curso OpenGL IEEE, Espinosa Ponce Ernesto 6

Tema 1Tema 1

Qué es OpenGLQué es OpenGL

Orígenes de la BibliotecaOrígenes de la Biblioteca

Page 7: Curso Computación Gráfica y OpenGL

7Curso OpenGL IEEE, Espinosa Ponce Ernesto

¿Qué es OpenGL?¿Qué es OpenGL? OpenGL es una biblioteca para el desarrollo OpenGL es una biblioteca para el desarrollo

de gráficos por computadora en 2D y 3D de gráficos por computadora en 2D y 3D multiplataforma (Linux, Windows, Unix, multiplataforma (Linux, Windows, Unix, MacOS, PS3)MacOS, PS3)

Su nombre proviene de Open Graphics LibrarySu nombre proviene de Open Graphics Library

Es una especificación que define una API Es una especificación que define una API (del (del inglés inglés Application Programming Interface Application Programming Interface - Interfaz de Programación de - Interfaz de Programación de AplicacionesAplicaciones) para la programación de ) para la programación de gráficos en varios lenguajesgráficos en varios lenguajes

Page 8: Curso Computación Gráfica y OpenGL

8Curso OpenGL IEEE, Espinosa Ponce Ernesto

Orígenes de OpenGLOrígenes de OpenGL

Inicio de la computación gráfica: Ivan Inicio de la computación gráfica: Ivan Sutherland (50’s -60’s) SketchpadSutherland (50’s -60’s) Sketchpad

Simuladores de VueloSimuladores de Vuelo Implementaciones en ensambladorImplementaciones en ensamblador Surgen las primeras bibliotecas de Surgen las primeras bibliotecas de

gráficos(PHIGS)gráficos(PHIGS) OpenGL fue creada en 1992 por OpenGL fue creada en 1992 por

Silicon Graphics Inc. , su antecesora Silicon Graphics Inc. , su antecesora se llamaba IRIS GLse llamaba IRIS GL

Page 9: Curso Computación Gráfica y OpenGL

9Curso OpenGL IEEE, Espinosa Ponce Ernesto

Historia de OpenGLHistoria de OpenGL IRIS GL su antecesora contenía elementos y IRIS GL su antecesora contenía elementos y

funciones para manejo de Ventanas, Ratón y funciones para manejo de Ventanas, Ratón y Teclado que hacían tener problemas para un Teclado que hacían tener problemas para un esquema de licenciamiento abiertoesquema de licenciamiento abierto

Se buscó emtonces eliminar funciones no Se buscó emtonces eliminar funciones no reelevantes para gráficos, estandarizar el reelevantes para gráficos, estandarizar el acceso al hardwareacceso al hardware

Se crea el OpenGL Architecture Review Se crea el OpenGL Architecture Review Board(1992)Board(1992)

En 1994 se trabaja en OpenGL++ pero nunca En 1994 se trabaja en OpenGL++ pero nunca salió a la luz públicasalió a la luz pública

1995 Microsoft lanza Direct3D 1995 Microsoft lanza Direct3D

Page 10: Curso Computación Gráfica y OpenGL

10Curso OpenGL IEEE, Espinosa Ponce Ernesto

Un poco de más historiaUn poco de más historia

En 1997 surge el proyecto Farenheit En 1997 surge el proyecto Farenheit para estandarizar y unificar Direct3D para estandarizar y unificar Direct3D y OpenGLy OpenGL

1998 HP apoya el proyecto1998 HP apoya el proyecto 1999 SGI se queda solo1999 SGI se queda solo 2006 OpenGL pasa al Grupo 2006 OpenGL pasa al Grupo Khronos Khronos Se creó el Se creó el OpenGL ARB Working OpenGL ARB Working

GroupGroup

Page 11: Curso Computación Gráfica y OpenGL

11Curso OpenGL IEEE, Espinosa Ponce Ernesto

Documentación Documentación disponibledisponible

El Libro RojoEl Libro Rojo - The Red Book: The OpenGL - The Red Book: The OpenGL Programmer's guide. Programmer's guide. Libro de referencia y tutorial. Considerado libro Libro de referencia y tutorial. Considerado libro de de

cabeceracabecera para programadores de OpenGL. para programadores de OpenGL.

El Libro AzulEl Libro Azul - The Blue Book: The OpenGL - The Blue Book: The OpenGL Reference manual. Reference manual. En esencia, una copia de la páginas del man de En esencia, una copia de la páginas del man de

OpenGL.OpenGL. Incluye un poster desplegable con el diagrama de la Incluye un poster desplegable con el diagrama de la

estructura de una implementación estructura de una implementación idealideal de OpenGL. de OpenGL.

Page 12: Curso Computación Gráfica y OpenGL

12Curso OpenGL IEEE, Espinosa Ponce Ernesto

Más documentaciónMás documentación

El Libro NaranjaEl Libro Naranja - The Orange - The Orange Book: The OpenGL Shading Book: The OpenGL Shading Language. Language. Libro de referencia y tutorial para GSLS Libro de referencia y tutorial para GSLS

(Lenguaje de Shaders de OpenGL)(Lenguaje de Shaders de OpenGL)

Page 13: Curso Computación Gráfica y OpenGL

Curso OpenGL IEEE, Espinosa Ponce Ernesto 13

Tema 2Tema 2

Características de la Características de la BibliotecaBiblioteca

Page 14: Curso Computación Gráfica y OpenGL

14Curso OpenGL IEEE, Espinosa Ponce Ernesto

Características de Características de OpenGLOpenGL

ObjetivosObjetivos1.1. Ocultar complejidad de HardwareOcultar complejidad de Hardware2.2. Ocultar las capacidades del HardwareOcultar las capacidades del Hardware

Propósito: Dibujado (puntos, líneas, Propósito: Dibujado (puntos, líneas, polígonos)polígonos)

OpenGL como una Máquina de OpenGL como una Máquina de Estados , prefiero llamarlos SwitchesEstados , prefiero llamarlos Switches

Page 15: Curso Computación Gráfica y OpenGL

15Curso OpenGL IEEE, Espinosa Ponce Ernesto

Características de Características de OpenGLOpenGL

Creada para tener la mejor calidad Creada para tener la mejor calidad posible en gráficos, lo cual depende posible en gráficos, lo cual depende en gran medida del Hardwareen gran medida del Hardware

Da gran libertad para crear gráficos Da gran libertad para crear gráficos pero requiere de conocimientos de pero requiere de conocimientos de computación gráficacomputación gráfica

Manejo de un pipeline gráficoManejo de un pipeline gráfico

Page 16: Curso Computación Gráfica y OpenGL

16Curso OpenGL IEEE, Espinosa Ponce Ernesto

Pipeline Gráfico Pipeline Gráfico

Es el proceso mediante el cual las Es el proceso mediante el cual las abstracciones de un Espacio de Objetos abstracciones de un Espacio de Objetos (vectores, vértices, muchas matemáticas) (vectores, vértices, muchas matemáticas) pasan a ser elementos de un Espacio de pasan a ser elementos de un Espacio de Dispositivo (que generalmente son píxeles)Dispositivo (que generalmente son píxeles)

Para lograrlo se aplican una serie de pasos Para lograrlo se aplican una serie de pasos secuenciales que realizan transformaciones, secuenciales que realizan transformaciones, algoritmos , cosideraciones etcalgoritmos , cosideraciones etc

Se dice que el espacio objeto es n Se dice que el espacio objeto es n dimensional y el de dispositivo 2Ddimensional y el de dispositivo 2D

Page 17: Curso Computación Gráfica y OpenGL

17Curso OpenGL IEEE, Espinosa Ponce Ernesto

Es decir…Es decir…

Page 18: Curso Computación Gráfica y OpenGL

18Curso OpenGL IEEE, Espinosa Ponce Ernesto

Pipeline de OpenGLPipeline de OpenGL

Page 19: Curso Computación Gráfica y OpenGL

19Curso OpenGL IEEE, Espinosa Ponce Ernesto

En conclusión: OpenGL En conclusión: OpenGL tienetiene

Funciones para dibujar en 2D y 3DFunciones para dibujar en 2D y 3D TransformacionesTransformaciones Algoritmos de iluminaciónAlgoritmos de iluminación Z-BufferingZ-Buffering Mapeo de TexturasMapeo de Texturas Soporte para ShadersSoporte para Shaders Blending, elementos de antialiasing , Blending, elementos de antialiasing ,

efectos de Fogefectos de Fog

Page 20: Curso Computación Gráfica y OpenGL

20Curso OpenGL IEEE, Espinosa Ponce Ernesto

Y OpenGL no tieneY OpenGL no tiene

Funciones para manejar ventanas, eventos Funciones para manejar ventanas, eventos de ratón o teclado de ratón o teclado

Funciones o procedimientos para crear un Funciones o procedimientos para crear un objeto completo a partir de una descripción objeto completo a partir de una descripción natural ejemplo: comando natural ejemplo: comando dibuja_llanta_de_un_camióndibuja_llanta_de_un_camión

Soporte nativo para dibujado de curvasSoporte nativo para dibujado de curvas Soporte nativo para audio y/o textoSoporte nativo para audio y/o texto Detección de colisionesDetección de colisiones Carga de imágenesCarga de imágenes

Page 21: Curso Computación Gráfica y OpenGL

Curso OpenGL IEEE, Espinosa Ponce Ernesto 21

Tema 3Tema 3

Usos, aplicaciones y alcances Usos, aplicaciones y alcances de la bibliotecade la biblioteca

Page 22: Curso Computación Gráfica y OpenGL

22Curso OpenGL IEEE, Espinosa Ponce Ernesto

UsosUsos

OpenGL se ha utilizado en los siguientes OpenGL se ha utilizado en los siguientes campos de la computación que requieren de campos de la computación que requieren de desarrollo de gráficos:desarrollo de gráficos:

CADCAD Realidad VirtualRealidad Virtual Representación científicaRepresentación científica Visualización de InformaciónVisualización de Información SimuladoresSimuladores Desarrollo de videojuegos Desarrollo de videojuegos (Soportada en (Soportada en

PS3)PS3)

Page 23: Curso Computación Gráfica y OpenGL

23Curso OpenGL IEEE, Espinosa Ponce Ernesto

AplicacionesAplicaciones

Simuladores de vuelo militares ( EU)Simuladores de vuelo militares ( EU) Simuladores de operaciones de Simuladores de operaciones de

tejido (En Europa principalmente)tejido (En Europa principalmente) Desarrollo de videojuegos como Desarrollo de videojuegos como

GLQuake de IdSoftwareGLQuake de IdSoftware Programas de diseño (3D Max)Programas de diseño (3D Max) Desarrollo de Game EnginesDesarrollo de Game Engines Programas de simulación en general, Programas de simulación en general,

CAD y CAM, etcCAD y CAM, etc

Page 24: Curso Computación Gráfica y OpenGL

24Curso OpenGL IEEE, Espinosa Ponce Ernesto

Alcances de la bibliotecaAlcances de la biblioteca

La competencia : Direct3DLa competencia : Direct3D OpenGL fue diseñada para la calidadOpenGL fue diseñada para la calidad Direct3D incluye emulación por Direct3D incluye emulación por

softwaresoftware Es un estándar de la industriaEs un estándar de la industria Soportada en muchas plataformas Soportada en muchas plataformas Escalable y estableEscalable y estable Fácil de usarFácil de usar Bien documentadaBien documentada

Page 25: Curso Computación Gráfica y OpenGL

25Curso OpenGL IEEE, Espinosa Ponce Ernesto

Qué más ofreceQué más ofrece

Extensiones : Capacidades extras que Extensiones : Capacidades extras que ofrecen los vendedores de hardwareofrecen los vendedores de hardware

Revisada constantementeRevisada constantemente De licencia abiertaDe licencia abierta Libertad para intervenir el pipeline Libertad para intervenir el pipeline

mediante shadersmediante shaders Libertad de generar algoritmos para Libertad de generar algoritmos para

crear cosas no incluidas en la crear cosas no incluidas en la bibliotecabiblioteca

Page 26: Curso Computación Gráfica y OpenGL

Curso OpenGL IEEE, Espinosa Ponce Ernesto 26

Tema 4Tema 4

Ejemplos de aplicacionesEjemplos de aplicaciones

Page 27: Curso Computación Gráfica y OpenGL

27Curso OpenGL IEEE, Espinosa Ponce Ernesto

EjemplosEjemplos

PistonPiston Mano básicaMano básica Mano iluminadaMano iluminada LIMNLIMN Curvas ParamétricasCurvas Paramétricas VoxelizaciónVoxelización 3DLoader3DLoader PathFinderPathFinder

Page 28: Curso Computación Gráfica y OpenGL

28Curso OpenGL IEEE, Espinosa Ponce Ernesto

Mas ejemplosMas ejemplos

Demo modelneitor con código fuenteDemo modelneitor con código fuente Frets on FireFrets on Fire

Page 29: Curso Computación Gráfica y OpenGL

Curso OpenGL IEEE, Espinosa Ponce Ernesto 29

Tema 5Tema 5

Generalidades de la Generalidades de la programación bajo OpenGLprogramación bajo OpenGL

Page 30: Curso Computación Gráfica y OpenGL

30Curso OpenGL IEEE, Espinosa Ponce Ernesto

Elementos necesariosElementos necesarios

Biblioteca OpenGLBiblioteca OpenGL Archivos de cabecera Archivos de cabecera Archivos obj o libArchivos obj o lib En DevC++ existen los devpacksEn DevC++ existen los devpacks Verificar el soporte dentro de la plataforma Verificar el soporte dentro de la plataforma

elegida y bibliotecas para su ejecuciónelegida y bibliotecas para su ejecución

Estructura de directorios estándar para Estructura de directorios estándar para OpenGLOpenGL

Biblioteca auxiliar GLU (GL Utilities)Biblioteca auxiliar GLU (GL Utilities)

Page 31: Curso Computación Gráfica y OpenGL

31Curso OpenGL IEEE, Espinosa Ponce Ernesto

Qué pasa con lo que no Qué pasa con lo que no tienetiene

Y las ventanas , mouse, teclado????Y las ventanas , mouse, teclado???? GLUT GL Utility ToolkitGLUT GL Utility Toolkit API de Win32API de Win32

Imágenes Imágenes SDL ImageSDL Image DevilDevil

SonidoSonido SDL MixerSDL Mixer OpenALOpenAL

Page 32: Curso Computación Gráfica y OpenGL

32Curso OpenGL IEEE, Espinosa Ponce Ernesto

Y en linux??Y en linux??

Implementación libre Mesa3DImplementación libre Mesa3D Biblioteca “like” OpenGLBiblioteca “like” OpenGL Generalmente puede descargarse en Generalmente puede descargarse en

paquetes para su programaciónpaquetes para su programación Tampoco contiene elementos para Tampoco contiene elementos para

manejo de ventanasmanejo de ventanas Opciones GTK, SDL, GLUT, FreeGLUT, Opciones GTK, SDL, GLUT, FreeGLUT,

OpenGLUTOpenGLUT

Page 33: Curso Computación Gráfica y OpenGL

33Curso OpenGL IEEE, Espinosa Ponce Ernesto

Como funciona??Como funciona??

HARDWARE

Page 34: Curso Computación Gráfica y OpenGL

34Curso OpenGL IEEE, Espinosa Ponce Ernesto

Sintaxis BásicaSintaxis Básica

OpenGL contiene 3 elementos OpenGL contiene 3 elementos distintos básicos.distintos básicos. FuncionesFunciones

ConstantesConstantes

Tipos de datosTipos de datos

Page 35: Curso Computación Gráfica y OpenGL

35Curso OpenGL IEEE, Espinosa Ponce Ernesto

FuncionesFunciones

UsosUsos Dibujado de elementosDibujado de elementos Manipulación de proyeccionesManipulación de proyecciones Transformaciones GeométricasTransformaciones Geométricas Habilitación / Deshabilitación de “switches”Habilitación / Deshabilitación de “switches” TexturizadoTexturizado Aplicación de elementos para lograr Aplicación de elementos para lograr

iluminacióniluminación Cuenta con 150 funciones básicasCuenta con 150 funciones básicas

Page 36: Curso Computación Gráfica y OpenGL

36Curso OpenGL IEEE, Espinosa Ponce Ernesto

Sintaxis de funcionesSintaxis de funciones

Se anteponen gl si pertenecen a la Se anteponen gl si pertenecen a la biblioteca OpenGL, glu o glut si son biblioteca OpenGL, glu o glut si son de éstas respectivamentede éstas respectivamente

Contienen información al final de Contienen información al final de cuántos parámetros reciben y cuál es cuántos parámetros reciben y cuál es su tiposu tipo

Ejemplos:Ejemplos: glVertex3fglVertex3f glVertex3fvglVertex3fv glVertex3iglVertex3i

Page 37: Curso Computación Gráfica y OpenGL

37Curso OpenGL IEEE, Espinosa Ponce Ernesto

Tipos de datosTipos de datos

Evitan problemas de implementación Evitan problemas de implementación en compiladores donde el tamaño de en compiladores donde el tamaño de los tipos de datos son diferentes a los los tipos de datos son diferentes a los estándaresestándares

Se recomienda su uso para asegurar Se recomienda su uso para asegurar el rendimiento de una aplicación más el rendimiento de una aplicación más no es necesario u obligatoriono es necesario u obligatorio

Inician con GLInician con GL

Page 38: Curso Computación Gráfica y OpenGL

38Curso OpenGL IEEE, Espinosa Ponce Ernesto

Page 39: Curso Computación Gráfica y OpenGL

39Curso OpenGL IEEE, Espinosa Ponce Ernesto

ConstantesConstantes

UsosUsos Activar o desactivar ciertas propiedades de Activar o desactivar ciertas propiedades de

dibujado o switchesdibujado o switches Dar ciertos valores a parámetros de Dar ciertos valores a parámetros de

funciones que configuran algún elementofunciones que configuran algún elemento Todos van con mayúsculas empezando Todos van con mayúsculas empezando

con GL y generalmente tienen _ cuando con GL y generalmente tienen _ cuando presentan espacios, ya que sus nombres presentan espacios, ya que sus nombres son muy descriptivos acerca de para que son muy descriptivos acerca de para que sirvensirven

Page 40: Curso Computación Gráfica y OpenGL

40Curso OpenGL IEEE, Espinosa Ponce Ernesto

ConstantesConstantes

Ej.Ej. GL_LIGHTINGGL_LIGHTING GL_COLOR_BUFFER_BITGL_COLOR_BUFFER_BIT GL_LINESGL_LINES

También las encontramos en GLUTTambién las encontramos en GLUT

Ej.Ej. GLUT_LEFT_BUTTONGLUT_LEFT_BUTTON

Page 41: Curso Computación Gráfica y OpenGL

41Curso OpenGL IEEE, Espinosa Ponce Ernesto

¿Qué más necesito?¿Qué más necesito?

Conocer elementos de computación Conocer elementos de computación gráficagráfica

Buen nivel de programación básica en CBuen nivel de programación básica en C Conocer qué es lo que está haciendo por Conocer qué es lo que está haciendo por

dentro el CPU para dar mayor dentro el CPU para dar mayor rendimiento o por lo menos tener nocionesrendimiento o por lo menos tener nociones

Manejo de estructuras de datos en un Manejo de estructuras de datos en un buen nivelbuen nivel

Ingenio, dedicación y desarrollos de Ingenio, dedicación y desarrollos de proyectos personales, tiempoproyectos personales, tiempo

Page 42: Curso Computación Gráfica y OpenGL

42Curso OpenGL IEEE, Espinosa Ponce Ernesto

Recomendaciones y Recomendaciones y consideracionesconsideraciones

Tamaño en memoria Tamaño en memoria Rapidez de la aplicación = mayor rendimientoRapidez de la aplicación = mayor rendimiento Detalles como saltos a funcionesDetalles como saltos a funciones Manejo de apuntadoresManejo de apuntadores Búsqueda de elementos que hagan más Búsqueda de elementos que hagan más

rápido el procesamientorápido el procesamiento Optimizar algoritmos lo más que se puedaOptimizar algoritmos lo más que se pueda Dejar el sistema de ventanas y manejador de Dejar el sistema de ventanas y manejador de

eventos independiente de la parte que dibujaeventos independiente de la parte que dibuja

Page 43: Curso Computación Gráfica y OpenGL

43Curso OpenGL IEEE, Espinosa Ponce Ernesto

Empezando a trabajar con Empezando a trabajar con gráficosgráficos

Instalación y configuración del ambiente Instalación y configuración del ambiente de trabajode trabajo Visual Studio 2005Visual Studio 2005 Verificación del soporte para los programas Verificación del soporte para los programas

(dll’s)(dll’s) Agregar las librerías y configurar proyectosAgregar las librerías y configurar proyectos

Bibliotecas que vamos a revisarBibliotecas que vamos a revisar OpenGLOpenGL GLU (solo algunos elementos)GLU (solo algunos elementos) GLUT ( procesamiento de ventanas, GLUT ( procesamiento de ventanas,

eventos)eventos)

Page 44: Curso Computación Gráfica y OpenGL

44Curso OpenGL IEEE, Espinosa Ponce Ernesto

Comportamiento de una Comportamiento de una aplicación gráficaaplicación gráfica

Inicialización

Variables Usuario

Variables Ambiente

Variables de Objetos

Ejecución de acciones

Salida a Usuario

Termina

Liberar Recursos