PDF de programación - Qué es OpenGL

Imágen de pdf Qué es OpenGL

Qué es OpenGLgráfica de visualizaciones

Publicado el 2 de Agosto del 2017
1.531 visualizaciones desde el 2 de Agosto del 2017
1,0 MB
18 paginas
Creado hace 9a (26/11/2010)
 OpenGL es una biblioteca para el desarrollo de gráficos

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

 Su nombre proviene de Open Graphics Library

 Es una especificación que define una API para la

programación de gráficos en varios lenguajes

 Objetivos

1. Ocultar complejidad de Hardware
2. Ocultar las capacidades del Hardware



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

 OpenGL como una Máquina de estados (o

switches)

 Funciones para dibujar en 2D y 3D
 Transformaciones
 Algoritmos de iluminación
 Z-Buffering
 Mapeo de Texturas
 Soporte para Shaders
 Blending, elementos de antialiasing , efectos

de Fog

 Funciones para manejar ventanas, eventos

de ratón o teclado

 Funciones o procedimientos para crear un

objeto completo a partir de una descripción
natural ejemplo: comando drawCar();

 Soporte nativo para dibujado de curvas
 Soporte nativo para audio y/o texto
 Detección de colisiones
 Carga de imágenes

5

 Ventanas, mouse, teclado????

◦ GLUT, JOGL
◦ API de Win32
◦ IDE de desarrollo (forms, eventos, etc.)

 Imágenes
◦ SDL Image
◦ Devil

 Sonido

◦ SDL Mixer
◦ OpenAL
◦ fmod

6

 OpenGL contiene 3 elementos distintos

básicos:
◦ Funciones
◦ Constantes
◦ Tipos de datos

7

 Usos

◦ Dibujado de elementos
◦ Manipulación de proyecciones
◦ Transformaciones Geométricas
◦ Habilitación / Deshabilitación de “switches”
◦ Texturizado
◦ Aplicación de elementos para lograr iluminación
◦ Cuenta con 150 funciones básicas

8

 Se anteponen gl si pertenecen a la

biblioteca OpenGL, glu o glut si son de
éstas respectivamente

 Contienen información al final de cuántos

parámetros reciben y cuál es su tipo

 Ejemplos:
◦ glVertex3f
◦ glVertex4fv
◦ glVertex2i

9

glVertex3fv( v )

glColor3fv( v )

Number of
components

2 - (x,y)
3 - (x,y,z),

(r,g,b)

4 - (x,y,z,w),

(r,g,b,a)

Data Type

Vector

b - byte
ub - unsigned byte
s - short
us - unsigned short
i - int
ui - unsigned int
f - float
d - double

omit “v” for
scalar form–

e.g.,

glVertex2f(x, y)

glColor3f(r, g, b)

10

 Usos

◦ Activar o desactivar ciertas propiedades de

dibujado o switches

◦ Dar ciertos valores a parámetros de funciones que

configuran algún elemento

 Mayúsculas, empezando con GL
 Nombres descriptivos

11

 Ej.

◦ GL_LIGHTING
◦ GL_COLOR_BUFFER_BIT
◦ GL_LINES

 También las encontramos en GLUT

Ej.
◦ GLUT_LEFT_BUTTON

12

 Set:

◦ glPointSize(size);
◦ glLineWidth(width);
◦ glLineStipple(repeat, pattern);
◦ glShadeModel(GL_SMOOTH);

 Get:

◦ glGet*();

 Habilitaciones:

◦ glEnable(GL_LIGHTING);
◦ glDisable(GL_TEXTURE_2D);
◦ glIsEnable(GL_DEPTH_TEST);

13

 OpenGL es una máquina de estados: los polígonos son

afectados por el color, la transformación, el modo de
render actuales.

 Habilitar y deshabilitar opciones como iluminación, uso

de texturas y alpha blending.

◦ glEnable (GL_LIGHTING); // habilitar lighting (disabled por

default)

 Olvidarse de habilitar/deshabilitar algo es el origen más
común de los bugs. Corroborar siempre el estado de las
variables que necesitamos y sus valores por default.
(lista de defaults en Apéndice B).

14

 Borrar contenido del buffer actual
 Setear transformaciones (View Projection,

Viewport transf.)

 Loop para cada primitiva:

◦ Transformaciones
◦ Tipo de primitiva, atributos, estados de render

 Flush o Swap buffers

15

 Salón de exposiciones:

◦ Datos en pantalla
◦ Environment Mapping (modelo)
◦ Sombras y/o reflejos (habitación)
◦ Efecto adicional (blending, lightmaps)

16

 En la web: (próximamente)

◦ Clases.
◦ Links.

 Busquen (o nos piden):
◦ Recursos (3ds, ase, obj)

 En Diciembre:

◦ Trabajo de cursada (load, light, cámara).

 Consultas vía MAIL (claridad e info):

◦ jpdamato@exa.unicen.edu.ar
◦ cristianGB@gmail.com

17

 https://jogl-demos.dev.java.net/
 http://pepijn.fab4.be/software/nehe-java-

ports/

18
  • Links de descarga
http://lwp-l.com/pdf6016

Comentarios de: Qué es OpenGL (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad