You are on page 1of 11

Introduccin a OpenGL

Introduccin a la Aceleracin de Grcos


Librera OpenGL

Hugo Franco, PhD

19 de mayo de 2011

Hugo Franco, PhD Introduccin a la Aceleracin de Grcos


Introduccin a OpenGL
Introduccin a OpenGL

Qu es OpenGL?

Una librera de grcos e imgenes a bajo nivel


Solo incluye operaciones que pueden ser aceleradas
Una capa de abstraccin entre el hardware grco y una aplicacin
(programa)
Una API para producir imgenes en color de alta calidad de objetos
3D (grupos de primitivas geomtricas) e imgenes (vdeos) 2D
proyectados sobre modelos 3D (Texturas)
Una mquina de estados

Hugo Franco, PhD Introduccin a la Aceleracin de Grcos


Introduccin a OpenGL

OpenGL como Mquina de Estados

OpenGL mantiene un estado actual inicializado con valores por


defecto
Los cambios de estado aplican a todas las operaciones subsiguientes
La informacin de estado incluye color, sistemas de coordenadas,
caractersticas activadas, etc.

Hugo Franco, PhD Introduccin a la Aceleracin de Grcos


Introduccin a OpenGL

Arquitectura OpenGL
Versin general

Hugo Franco, PhD Introduccin a la Aceleracin de Grcos


Introduccin a OpenGL

Implementacin segn plataforma


Ejemplo: Solaris

Hugo Franco, PhD Introduccin a la Aceleracin de Grcos


Introduccin a OpenGL

Tubera de ejecucin OpenGL

Hugo Franco, PhD Introduccin a la Aceleracin de Grcos


Introduccin a OpenGL

Jerarqua de Libreras OpenGL

Hugo Franco, PhD Introduccin a la Aceleracin de Grcos


Introduccin a OpenGL

APIs relacionadas

AGL, GLX, WGL


empalme entre OpenGL y gestores de ventanas de cada sistema
operativo (modo grco)
GLU (OpenGL Utilities)
parte ocial de OpenGL encargada de primitivas geomtricas
complejas  NURBS, teselaciones, guras cudricas, etc
GLUT (OpenGL Utility Toolkit)
portabilidad entre gestores de ventanas/modo grco. No es parte
ocial de OpenGL

Hugo Franco, PhD Introduccin a la Aceleracin de Grcos


Introduccin a OpenGL

Anatoma de una funcin OpenGL

Forma general:
glFunction<234><ds><v>

Nmero: dimensin
ds: tipo de dato (double, oat, integer, string)
v: si el parmetro es un vector o una tripla de escalares

Ejemplos
glVertex3fv(pos) [posicin del vrtice como array de 3 oats]
glVertex2d(0.8, 0.2)

Hugo Franco, PhD Introduccin a la Aceleracin de Grcos


Introduccin a OpenGL

Estructura principal de un programa OpenGL

main:
1 encontrar modo visual GL & crear ventana

2 inicializar estados GL (e.g., vista, color, iluminacin)

3 inicializar listas de display lists

4 mientras evento != salida

1 if evento de ventana
1 modicar viewport, si se necesita
2 redibujar

2 else, if evento ratn o teclado


1 Cambiar estados
2 redibujar

Hugo Franco, PhD Introduccin a la Aceleracin de Grcos

You might also like