Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
Qu es OpenGL?
Estndar creado por Silicon Graphics en 1992 para el diseo de librerias 2D/3D
2.
3. 4. 5.
Activar todas las opciones que van a ser persistentes en una escena (perspectiva de la cmara de visin, iluminacin global, etc) Activar las opciones que establecen el estado de un objeto especfico (posicin, textura, color, etc) Dibujar el objeto Desactivar las opciones propias de dicho objeto Volver al punto 2 hasta haber dibujado todos los objetos
Matriz de proyeccin (matriz que guarda la informacin relativa a la cmara con la cual observaremos al mundo)
glmatrixMode(GL_PROJECTION)
Para almacenar y recuperar los valores de una matriz, se utiliza una estructura tipo pila
glPushMatrix() glPopMatrix()
OpenGL: proyeccin
Existen dos formas de proyectar objetos
Proyeccin ortogrfica: permite visualizar todo lo que se encuentre dentro de un cubo, delimitado por los parmetros de la funcin glOrto
OpenGL: proyeccin
Proyeccin perspectiva
Delimita un volmen de visualizacin dado por un ngulo de cmara y una relacin alto/ancho. La distancia al observador delimitar el tamao con el que un objeto se visualiza
1er Ejemplo
Crear un cdigo que dibuje un tringulo cuyos vrtices tengan un color diferente
void display(void) { glClearColor(0.0,0.0,0.0,0.0); glClear(GL_COLOR_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0); glMatrixMode(GL_MODELVIEW); glBegin(GL_TRIANGLES); glColor3f(1.0,0.0,0.0); glVertex3f(0.0,0.8,0.0); glColor3f(0.0,1.0,0.0); glVertex3f(-0.6,-0.2,0.0); glColor3f(0.0,0.0,1.0); glVertex3f(0.6,-0.2,0.0); glEnd(); glFlush(); Sleep(10000); exit(0); }
Las primitivas
glBegin(<tipo de primitiva>)
glVertex(); glVertex();
glEnd();
1er Ejercicio
OpenGL: Sombras
En OpenGL es posible manipular la forma en la cual se asigna un color a un objeto
glShadeModel(<parametro>)
GL_FLAT: rellena los polgonos con el color activo al momento GL_SMOOTH: rellenar el polgono interpolando los colores activos en la definicin de cada vrtice
El uso de esta matriz requiere que se borre la pantalla antes de dibujar cada frame
glClear(GL_COLOR_BUFFER_BIT 1 GL_DEPTH_BUFFER_BIT);
http://www.opengl.org/sdk/docs/man/