Opengl
Página 1 de 20
OpenGL
En esta seccion veremos el uso de OpenGL, especificamente de GLUT (Graphic Library Utiliy Toolkit). El primer paso es configurar el compilador y las librerias segun la plataforma seleccionada. Para Windows (9X o XP), puedes bajar un paquete intalador que contiene el compilador C (Mingw32) y las librerias de OpenGL desdewww.genmm.com/download/Mingw32OGL.exe (8.136 MB) {MD5: 53a8f0b2964f74fba5c4aca2365d1a25}. Para configurar este compilador (y las librerias asociadas), debes modificar el PATH del sistema y crear una nueva variable. Lo anterior te permitira compilar tus programas en cualquier directorio. Existen dos formas de hacer esto: Para Windows 9X (95 � 98) puedes modificar el archivo autoexec.bat como se muestra en la figura de laizquierda o bien si tienes Windows XP puedes ir a las variables de entorno (que en cuentras en las Propiedades de Mi PC) y Modificar la variable PATH y luego crear una variable llamada MINGW32 como se muestra en la figura de la derecha.
Para Windows 9X
Para Windows XP
Con windows 9X necesitas reiniciar tu PC, con Windows XP no. Si todo esta correcto, chequealo escribiendo en la linea de comandosgcc -v para verificar la instalacion. Debe salir algo asi:
Chequeo del compilador
Para Linux (distribuciones con XWindow), puedes utilizar el compilador que trae el sistema, pero de seguro no trae las librerias de GLUT. Puedes descargar las librerias desde www.genmm.com/download/linux/glut-3.6.tar.gz (1.717 MB)
i) Primer ejemplo de OpenGL ii) Sistema de Coordenadas iii) TransformacionesGeometricas iv) Figuras GLUT
mhtml:file://C:\ALTAIR\CC311\OpenGL\GenMM - OpenGL.mht
08/02/2012
GenMM -> OpenGL
Página 2 de 20
v) Modo de Poligonos, Luces y Perspectiva vi) Menu vii) Mouse y Linea de Comandos
i) Primer ejemplo de OpenGL Con un editor de texto plano (por ej: notepad:windows o vi:linux) crea un archivo 'simple.c' y luego compila desde la linea de comandos elsiguiente codigo para verificar si la instalacion esta correcta. Bajar codigo fuente simple.c
#include void dibuja() { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glVertex2f(0.0, 1.0); glVertex2f(0.5, -0.5); glVertex2f(-0.5, -0.5); glEnd(); glFlush(); } int main(int argc, char** argv) { glutCreateWindow("Primer Ejemplo de OpenGL"); glutDisplayFunc(dibuja); glutMainLoop(); return 0; }Compilacion para Windows:
gcc simple.c -o simple.exe -mwindows -lopengl32 -lglu32 -lglut32
Compilacion para Linux (puede variar segun la distribucion):
gcc simple.c -o simple -L/usr/X11R6/lib /usr/lib/glut/libglut.a -lGLU -lGL -lXmu
El resultado tendria que ser:
Corriendo en Windows XP
Corriendo en Red Hat Linux 9
Anlizando el codigo, podemos apreciar que no se han hecho muchasdefiniciones, por lo que OpenGL asume algunos parametros como son: el plano de coordenadas, el color de fondo, el color de la figura, la forma de renderizar, dimensiones, posicion de ventana, etc.
mhtml:file://C:\ALTAIR\CC311\OpenGL\GenMM - OpenGL.mht
08/02/2012
GenMM -> OpenGL
Página 3 de 20
En el siguiente diagrama se muestra el programa corriendo en Windows 95 con algunos parametros pordefecto. Por ejemplo, el plano adopta coordenadas bidimensionales X(-1,+1), Y(-1,+1), el fondo es negro, la figura blanca, la renderizacion es simple, el tamano de la ventana es de 300x300 pixeles ((0,0)->(300,300)) y parte desde (0,0) (esquina superior izquierda de la pantalla).
Puedes cambiar el parametro GL_POLYGON con GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES,GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS y GL_QUAD_STRIP para ver que ocurre. Puedes agregar mas vertices
para apreciar mejor los resultados. De seleccionar un parametro que genere lineas, puedes especificar el ancho en pixeles de esas lineas con la funcion void glLineWidth( GLfloat width ). En caso de generar puntos, puedes especificar el tamano en pixeles con la funcion void glPointSize(...
Regístrate para leer el documento completo.