Asistente de aplicaciones OpenGL/GLUT
Francisco Abad, Universidad Politécnica de Valencia
fjabad (arroba) dsic.upv.es
El asistente de generación de aplicaciones OpenGL/GLUT permite
construir rápidamente aplicaciones gráficas interactivas,
usando el soporte de GLUT.
El usuario puede seleccionar la funcionalidad que quiere utilizar
en su programa, y el asistente creará el código fuente de
un programa completo con dicha funcionalidad.
Este documento describe cómo utilizar el asistente.
Descarga
A continuación tienes los enlaces para el programa y para la plantilla. Tendrás que descomprimir el programa y, a continuación, copiar la plantilla en el mismo directorio (para actualizar la plantilla sólo tienes que bajarte la nueva versión y copiarla sobre la antigua).
Instalación
Sólo tienes que descomprimir el archivo .zip dentro de un
directorio. A continuación, baja la última
versión de la plantilla (template.glut) y cópiala sobre el mismo directorio.
Ejecución
Ejecuta la aplicación mediante el archivo gluttemplate.bat.
Aparecerá una ventana como la que se muestra a
continuación:
La funcionalidad del programa está dividida en cuatro apartados:
- General
- OpenGL
- Interacción
- Escena
En los siguientes apartados se describen las opciones de cada sección.
General
La figura anterior muestra las opciones disponibles en este apartado.
En este apartado se podrá seleccionar el título de la
ventana, el modo de visualización de la aplicación (en
una ventana o a pantalla completa), el tamaño de la ventana, si
se desea ocultar la consola de comandos, y si se necesita soporte de
animación (con o sin cálculo automático de
los frames por
segundo). También está disponible la
opción de mostrar el valor de color del píxel que se
encuentra bajo el cursor (sólo en modo ventana).
OpenGL
La figura siguiente muestra las opciones disponibles en este apartado:
En este apartado se puede activar o desactivar: el uso de
doble buffer (para animación), iluminación,
Z-buffer, back-face culling,
transparencia, o el uso de GLEW para acceder a las últimas
características de OpenGL (debe estar instalado en el
sistema). En el caso de usar
iluminación, se puede incluir una biblioteca de materiales comunes.
También se puede activar el uso de texturas (incluyendo
mipmapping, y uso de color secundario). Para cargar las texturas hay
varias opciones: usar ficheros BMP con imágenes de 8 o 24 bits sin
comprimir, usar la biblioteca ImageMagick (ya debe estar instalada en
el sistema), o crearla en memoria.
Por último, también se puede seleccionar el tipo de cámara a utilizar.
Interacción
En este apartado, mostrado en la siguiente figura, se puede añadir interacción al programa generado:
Se puede añadir soporte de menú, y seleccionar entre
varios tipos de interacción (o cómo mover la
cámara dentro de la escena): andar, examinar el objeto, etc.
En el caso de seleccionar el modo de Examinar el objeto, se puede
usar inercia, para dar más interactividad a la aplicación.
Escena
El último apartado permite insertar un objeto en la escena, como muestra la siguiente figura:
También se puede seleccionar cómo mostrar los objetos: en
modo alámbrico o en modo sólido. Si se selecciona el modo
sólido, entonces se permite elegir entre sombreado constante o
sombreado de Gouraud.
Las dos últimas opciones permiten que el objeto insertado rote
sobre sí mismo, o mostrar los ejes coordenados en la escena.
Generación de la plantilla
Una vez que se han seleccionado las opciones correspondientes, al
pulsar el botón de Aceptar, el programa generará en el
directorio donde se encuentra el programa el fichero template.glut.cpp.
Si el fichero existiera, entonces iría creando los ficheros con nombre template.glut1.cpp, template.glut2.cpp, etc.
Compilar la plantilla
La plantilla es un programa completo listo para compilar. Para ello,
crea una aplicación tipo consola vacía, añade al
proyecto el fichero generado en la etapa anterior y compila.
Obtendrás el programa con las características
seleccionadas, que podrás modificar a tu gusto.
El código fuente generado está extensamente documentado,
y en las zonas donde tienes que añadir código aparece un
comentario del tipo:
/* TODO: Modifica esta función para dibujar tu escena */
Problemas, preguntas, etc.
Si te surge algún problema con el generador de plantillas,
detectas errores o quieres proponer algún cambio, ponte en
contacto conmigo mediante correo electrónico: fjabad (arroba)
dsic.upv.es
También ten en cuenta que:
- Este software es MUY nuevo, y por lo tanto tiene más errores que líneas de ćodigo (ten paciencia)
- Ya se que la interfaz es horrible. He usado GLUI porque es la
biblioteca que usamos en la asignatura, y porque es muy sencilla de
usar. Sin embargo debería ser muy fácil usar otra
biblioteca, como GTK. Si te animas, ponte en contacto conmigo.
- En un par de versiones más pretendo liberar el código fuente de la aplicación.
- Si te fijas, la plantilla (el fichero template.glut) dirige
completamente tanto las opciones mostradas en la interfaz de usuario
como el programa generado. Puedes modificar dicha plantilla a placer
para añadir funcionalidad. Si crees que tus cambios
podrían ser útiles para otros usuarios, mándamelos
y los incluiré aquí.
Paco Abad,
Valencia, Febrero 2008.