Beruflich Dokumente
Kultur Dokumente
Captulo I
Introduccin a OpenGL
2 Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
Tema 1
Qu es OpenGL Orgenes de la Biblioteca
3 Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
OpenGL es una biblioteca para el desarrollo de grficos por computadora en 2D y 3D multiplataforma (Linux, Windows, Unix, MacOS, PS3)
Su nombre proviene de Open Graphics Library Es una especificacin que define una API (del ingls Application Programming Interface - Interfaz de Programacin de Aplicaciones) para la programacin de grficos en varios lenguajes
Qu es OpenGL?
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
Inicio de la computacin grfica: Ivan Sutherland (50s 60s) Sketchpad Simuladores de Vuelo Implementaciones en ensamblador Surgen las primeras bibliotecas de grficos(PHIGS) OpenGL fue creada en 1992 por Silicon Graphics Inc. , su antecesora se llamaba IRIS GL
Orgenes de OpenGL
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
IRIS GL su antecesora contena elementos y funciones para manejo de Ventanas, Ratn y Teclado que hacan tener problemas para un esquema de licenciamiento abierto Se busc emtonces eliminar funciones no reelevantes para grficos, estandarizar el acceso al hardware Se crea el OpenGL Architecture Review Board(1992) En 1994 se trabaja en OpenGL++ pero nunca sali a la luz pblica 1995 Microsoft lanza Direct3D
Historia de OpenGL
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
En 1997 surge el proyecto Farenheit para estandarizar y unificar Direct3D y OpenGL 1998 HP apoya el proyecto 1999 SGI se queda solo 2006 OpenGL pasa al Grupo Khronos Se cre el OpenGL ARB Working Group
Un poco de ms historia
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
Documentacin disponible
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
Ms documentacin
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
Tema 2
Caractersticas de la Biblioteca
10 Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
Objetivos
1. 2. Ocultar complejidad de Hardware Ocultar las capacidades del Hardware
Propsito: Dibujado (puntos, lneas, polgonos) OpenGL como una Mquina de Estados , prefiero llamarlos Switches
Caractersticas de OpenGL
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
11
Creada para tener la mejor calidad posible en grficos, lo cual depende en gran medida del Hardware Da gran libertad para crear grficos pero requiere de conocimientos de computacin grfica Manejo de un pipeline grfico
Caractersticas de OpenGL
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
12
Es el proceso mediante el cual las abstracciones de un Espacio de Objetos (vectores, vrtices, muchas matemticas) pasan a ser elementos de un Espacio de Dispositivo (que generalmente son pxeles) Para lograrlo se aplican una serie de pasos secuenciales que realizan transformaciones, algoritmos , cosideraciones etc Se dice que el espacio objeto es n dimensional y el de dispositivo 2D
Pipeline Grfico
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
13
Es decir
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
14
Funciones para dibujar en 2D y 3D Transformaciones Algoritmos de iluminacin Z-Buffering Mapeo de Texturas Soporte para Shaders Blending, elementos de antialiasing , efectos de Fog
15
Funciones para manejar ventanas, eventos de ratn o teclado Funciones o procedimientos para crear un objeto completo a partir de una descripcin natural ejemplo: comando dibuja_llanta_de_un_camin Soporte nativo para dibujado de curvas Soporte nativo para audio y/o texto Deteccin de colisiones Carga de imgenes
Y OpenGL no tiene
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
16
Tema 3
Usos, aplicaciones y alcances de la biblioteca
17 Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
OpenGL se ha utilizado en los siguientes campos de la computacin que requieren de desarrollo de grficos:
CAD Realidad Virtual Representacin cientfica Visualizacin de Informacin Simuladores Desarrollo de videojuegos (Soportada en PS3)
Usos
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
18
Simuladores de vuelo militares ( EU) Simuladores de operaciones de tejido (En Europa principalmente) Desarrollo de videojuegos como GLQuake de IdSoftware Programas de diseo (3D Max) Desarrollo de Game Engines Programas de simulacin en general, CAD y CAM, etc
Aplicaciones
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
19
La competencia : Direct3D OpenGL fue diseada para la calidad Direct3D incluye emulacin por software Es un estndar de la industria Soportada en muchas plataformas Escalable y estable Fcil de usar Bien documentada
Alcances de la biblioteca
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
20
Extensiones : Capacidades extras que ofrecen los vendedores de hardware Revisada constantemente De licencia abierta Libertad para intervenir el pipeline mediante shaders Libertad de generar algoritmos para crear cosas no incluidas en la biblioteca
Qu ms ofrece
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
21
Tema 4
Generalidades de la programacin bajo OpenGL
22 Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
Biblioteca OpenGL
Archivos de cabecera Archivos obj o lib DevC++ Verificar el soporte dentro de la plataforma elegida y bibliotecas para su ejecucin
Estructura de directorios estndar para OpenGL Biblioteca auxiliar GLU (GL Utilities)
Elementos necesarios
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
23
Imgenes
Sonido
24
Implementacin libre Mesa3D Biblioteca like OpenGL Generalmente puede descargarse en paquetes para su programacin Tampoco contiene elementos para manejo de ventanas
Opciones GTK, SDL, GLUT, FreeGLUT, OpenGLUT
Y en linux??
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
25
HARDWARE
Como funciona??
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
26
Sintaxis Bsica
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
27
Usos
Dibujado de elementos Manipulacin de proyecciones Transformaciones Geomtricas Habilitacin / Deshabilitacin de switches Texturizado Aplicacin de elementos para lograr iluminacin Cuenta con 150 funciones bsicas
Funciones
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
28
Se anteponen gl si pertenecen a la biblioteca OpenGL, glu o glut si son de stas respectivamente Contienen informacin al final de cuntos parmetros reciben y cul es su tipo Ejemplos:
glVertex3f glVertex3fv glVertex3i
Sintaxis de funciones
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
29
Evitan problemas de implementacin en compiladores donde el tamao de los tipos de datos son diferentes a los estndares
Se recomienda su uso para asegurar el rendimiento de una aplicacin ms no es necesario u obligatorio
Inician con GL
Tipos de datos
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
30
Usos
Activar o desactivar ciertas propiedades de dibujado o switches Dar ciertos valores a parmetros de funciones que configuran algn elemento
Todos van con maysculas empezando con GL y generalmente tienen _ cuando presentan espacios, ya que sus nombres son muy descriptivos acerca de para que sirven
Constantes
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
32
Ej.
GL_LIGHTING GL_COLOR_BUFFER_BIT GL_LINES
Constantes
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
33
Conocer elementos de computacin grfica Buen nivel de programacin bsica en C, C++ Conocer qu es lo que est haciendo por dentro el CPU para dar mayor rendimiento o por lo menos tener nociones Manejo de estructuras de datos en un buen nivel Ingenio, dedicacin y desarrollos de proyectos personales, tiempo
Qu ms necesito?
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
34
Tamao en memoria Rapidez de la aplicacin = mayor rendimiento Detalles como saltos a funciones Manejo de apuntadores Bsqueda de elementos que hagan ms rpido el procesamiento Optimizar algoritmos lo ms que se pueda Dejar el sistema de ventanas y manejador de eventos independiente de la parte que dibuja
Recomendaciones y consideraciones
Curso OpenGL IT-Tlahuac, I.S.C. Erick Hernndez Njera
35
36