Opengl

Solo disponible en BuenasTareas
  • Páginas : 19 (4746 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de febrero de 2012
Leer documento completo
Vista previa del texto
GenMM -> 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(...
tracking img