Glut – OpenGL Util Toolkit

Para crear una ventana de visualizacion con OpenGL y no tener que preocuparnos por el sistema operativo
vamos a usar la libreria GLUT entre otras cosas, al igual que obtener los eventos de teclado y mouse entre otros.

____________________________________________________________________________

Instalacion

  • Instalar glut en linux

Para instalarlo es nesesario correr el siguiente comando:

$sudo aptitude install freeglut3-dev

  • Instalar glut en Windows


Extract the zipfile to some temporary folder.

Copy glut32.dll file to you your windows System folder. On Win2000/XP its

C:\winnt\system. On Win98 its C:\windows\system.

Tomado  de: http://www.cs.rpi.edu/~girdhy/komputer_grafix/installing_glut.html

____________________________________________________________________________

Ahora queremos compilar nuestro codigo:


  • En Linux:

y listo, para poder usarlo, se incluye en los proyectos GL/glut.h

y para compilar no olvides decirle a g++ si vas a usar c++ la libreria lglut
y esto se hace asi:

$g++ main.cpp -o salida -lglut

y para ejecutarlo

$./salida

salida es un nombre que se le da al output

  • En Windows:

DEVC++

Descargamos e instalamos el compilador
El compilador a usar es Dev-C++, recuerden descargarse la versión que trae el compilador mingw integrado (la de 9.0MB, versión 4.9.9.2).

No creo que tengan ningún problema en instalarlo, ya saben como todas la aplicaciones del lado obscuro de la fuerza la instalación es: siguiente, siguiente, …, acepto y siguiente.

Traemos las paquetes necesarios para usar glut
Afortunadamente, el Dev-C++, trae todoAhora ejecutamos el manager y seleccionamos que se conecte al devpacks.org, el ortro mirror parece haber dejado de funcionar hace tiempo.

Una vez que hayamos dicho que se conecte, bajara una lista y nos la muestra, de esta lista le decimos que queremos instalar el paquete que se llama glut.

lo necesario para hacer progrmas de OpenGL, pero como nosotros vamos a ocupar ademas una biblioteca de manejo de ventanas: glut , necesitamos instalarla.

Abrimos el Dev-C++ y nos vamos al menú de Herramientas -> Actualizaciones.

Despues le decimos download selected, ahora el solo bajara el paquete, y después preguntara si debe instalarlo, le decimos que si.

Probamos la instalación
Nos vamos a Archivo -> Nuevo -> Proyecto, y se abre un nuevo cuadro de dialogo en este seleccionamos la pestaña de multimedia, y de ahí seleccionamos el tipo de proyecto glut.

En el nombre, le ponemos el nombre que va a llevar nuestro ejecutable (aquí yo ocupe ventana), en el lenguaje escogemos C.

Ahora el Dev-C++, creará el proyecto y le agregara un archivo de plantilla , como nosotros no lo queremos usar, le decimos que lo borre del proyecto.

Ahora nos queda agregar nuestro código al que el proyecto, por ejemplo le damos añadir nuevo archivo, y lo renombramos como ventana.c

VISUAL STUDIO 2008

To download Nate Robin’s GLUT for Win32, go to: http://www.xmission.com/~nate/glut.html and select the glut-3.7.6-bin.zip link. When you unzip the contents of the folder, you will want to pay careful attention to where the files are placed. Inside the .zip file, there are a number of files, and the glut.h file must be placed inside of your include directory for Microsoft Visual Studio. On Windows XP, this defaults to C:\Program Files\Microsoft Visual Studio 9.0\VC\include. Within this directory, create another directory called “GL”, and place the glut.h file within this directory.

You will also need to place the glut32.lib in your lib/ directory under your Visual Studio directory. On Windows XP, this is by default C:\Program Files\Microsoft Visual Studio 9.0\VC\lib. There is no need to create an additional folder for this file.

Finally, place the glut32.dll file in your Windows system directory. By default, this is C:\Windows\System

____________________________________________________________________________

Comencemos a usar Glut y crear la ventana


Lo primero consiste en inicializar GLUT,
asi:

glitInit(&argc, args)

-> Con argc el primer parametro del main como entero, y argv como segundo parametro del main como char**

Luego queremos decirle a GLUT que cree la ventana de visualizacion en la pantalla con un titulo,
asi:

glutCreateWindow(“Titulo de la ventana”);

Ya solo nos queda espeficicar que va a contener la ventana de visualizacion. Para ello utilizamos la funcion glutDislpayFunc (pasandole el nombre del metodo que dibujaria usando rutinas de opengl lo que queramos dibujar). Por ejemplo, supongamos que tenemos un metodo con definicion: void dibujarMundo(), que lo que hace es dibujar una casa, le diremos a glut

glutDisplayFunc(dibujarMundo).

Con esto no tenemos la ventana todavia, nesecitamos usar glutMainLoop()  para que todas las ventanas que hayamos creado, incluyendo su contenido grafico, se activen. Muestra los graficos iniciales y pone el programa en un bucle infinito para comprobar la entrada que viene de los dispositivos de entrada y de salida (I/O) como el mouse, el teclado, etc..

Para cambiarle el tamaño a la ventana escribimos:

glutInitWindowSize(W,H)

->con W y H como enteros la cual indicara a glut que la ventana sera de WxH.

Para cambiarle la posicion usamos:

glutInitWindowPosition(X,Y)

->  Con X y Y como enteros
la cual le indicara a glut que la ventana tendra la poision X,Y

Y con esto tendremos ya nuestra ventana para emprezar :)

Ejemplo:

#include<GL/glut.h>

void changeSize(int w, int h) {


// Prevent a divide by zero, when window is too short
// (you cant make a window of zero width).
if(h == 0)
h = 1;

float ratio = 1.0* w / h;

// Reset the coordinate system before modifying
glMatrixMode(GL_PROJECTION);
glLoadIdentity();

// Set the viewport to be the entire window
glViewport(0, 0, w, h);

// Set the correct perspective.
gluPerspective(45,ratio,1,1000);
gluLookAt(0.0,0.0,5.0,
0.0,0.0,-1.0,
0.0f,1.0f,0.0f);
glMatrixMode(GL_MODELVIEW);
}

void dislpay(void) {

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glBegin(GL_TRIANGLES);//Dibujamos un triangulo

glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,0.0,0.0);
glVertex3f(0.0,0.5,0.0);

glEnd();
glutSwapBuffers();//Esto se explicara mas adelante

}


int main(int argc, char **argv) {

glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);//Se explicara mas adelante
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow(“Simple”);
glutDisplayFunc(dislpay);
glutReshapeFunc(changeSize);

glutMainLoop();

return 0;

}

Descargamos e instalamos el compilador
El compilador a usar es Dev-C++, recuerden descargarse la versión que trae el compilador mingw integrado (la de 9.0MB, versión 4.9.9.2).

No creo que tengan ningún problema en instalarlo, ya saben como todas la aplicaciones del lado obscuro de la fuerza la instalación es: siguiente, siguiente, …, acepto y siguiente.

Traemos las paquetes necesarios para usar glut
Afortunadamente, el Dev-C++, trae todoAhora ejecutamos el manager y seleccionamos que se conecte al devpacks.org, el ortro mirror parece haber dejado de funcionar hace tiempo.

Una vez que hayamos dicho que se conecte, bajara una lista y nos la muestra, de esta lista le decimos que queremos instalar el paquete que se llama glut.

lo necesario para hacer progrmas de OpenGL, pero como nosotros vamos a ocupar ademas una biblioteca de manejo de ventanas: glut , necesitamos instalarla.

Abrimos el Dev-C++ y nos vamos al menú de Herramientas -> Actualizaciones.

Despues le decimos download selected, ahora el solo bajara el paquete, y después preguntara si debe instalarlo, le decimos que si.

Probamos la instalación
Nos vamos a Archivo -> Nuevo -> Proyecto, y se abre un nuevo cuadro de dialogo en este seleccionamos la pestaña de multimedia, y de ahí seleccionamos el tipo de proyecto glut.

En el nombre, le ponemos el nombre que va a llevar nuestro ejecutable (aquí yo ocupe ventana), en el lenguaje escogemos C.

Ahora el Dev-C++, creará el proyecto y le agregara un archivo de plantilla , como nosotros no lo queremos usar, le decimos que lo borre del proyecto.

Ahora nos queda agregar nuestro código al que el proyecto, por ejemplo le damos añadir nuevo archivo, y lo renombramos como ventana.c



This entry was posted on Wednesday, August 26th, 2009 at 8:47 am and is filed under Computacion Grafica, OpenGL. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

4 Responses to “Glut – OpenGL Util Toolkit”

  1. TSwain

    Hey, I read a lot of blogs on a daily basis and for the most part, people lack substance but, I just wanted to make a quick comment to say GREAT blog!…..I”ll be checking in on a regularly now….Keep up the good work! :)

  2. Daniel Gomez Rico

    thanks!!!!!!!!!! :) :)

  3. LarryLove

    Hey very nice blog!!….I’m an instant fan, I have bookmarked you and I’ll be checking back on a regular….See ya :)

  4. Daniel Gomez Rico

    :) thanks!

Leave a Reply

Your comment