Categories
linux

Graficos en 3D libres con OpenGL

OpenGL es una interfaz estándar que permite escribir aplicaciones que generen gráficos 3d. En ese estándar están las definiciones de una serie de funciones que permiten “hablar” con la tarjeta gráfica de nuestro ordenador y pedir que genere polígonos y los maneje.

Pero para poder mostrar una ventana y dentro una escena creada con OpenGL es necesario usar otro tipo de recursos. En este caso se emplea freeglut, que es una librería que permite crear ventanas y leer entradas de teclado, ratón u otros dispositivos.

En este ejemplo se puede ver lo siguiente:

  • Creación de un cubo describiendo sus 6 caras
  • Inicialización y transformación de una escena
  • Lectura de teclas pulsadas en el teclado
  • Refresco de escena cada cierto tiempo predefinido, evitando sobrecargar la cpu en el bucle infinito
  • Desactivación del refresco de escena cuando la ventana no es visible
  • Creación de una ventana con freeglut y activación de modo a pantalla completa

Para compilar en linux el ejemplo es necesario tener instalado el compilador de C y el paquete freeglut3-dev:

sudo aptitude install build-essential freeglut3-dev
cc -o L15 L15.c -lglut -lGLU

Para compilar en Mac OSX es necesario tener instalado xcode, sustituir la línea que pone por y compilar con la siguiente orden:

gcc -framework GLUT -framework OpenGL -framework Cocoa -o L15 L15.c

Ahora para ejecutarla en modo ventana:

./L15

Y a pantalla completa:

./L15 -f

Los controles son:

  • teclas z,x,y,Z,X,Y -> para girar el cubo en cada uno de los 3 ejes
  • teclas d,D -> para activar/desactivar la renderización con profundidad

Código fuente de la aplicación: L15.c

Fuente: york.ac.uk y yallara.cs.rmit.edu.au

Leave a Reply

Your email address will not be published.