Aplicaciones para la enseñanza de Informática Gráfica con Nebula

Enseñanza de la Informática Gráfica

Ésta página es un resumen del artículo publicado en las XI Jornadas de la Enseñanza Universitaria de la Informática (JENUI 2005). Contiene además un enlace para descargar las aplicaciones de las que se habla en el artículo.

La disponibilidad de portátiles abre una puerta adicional para facilitar la enseñanza de la Informática Gráfica: la ejecución de programas. El profesor puede mostrar en el momento la ejecución de los conceptos teóricos que está explicando.

Esos programas deben cumplir varios requisitos para que su uso tenga sentido:

  • Fáciles de desarrollar: a pesar de que puedan resultar muy útiles, el profesor tiene que dedicar tiempo adicional a realizar los programas. Es preferible que su desarrollo se vea facilitado por alguna herramienta..
  • Interactivas: la ventaja de estas aplicaciones frente a las transparencias es la posibilidad de modificar en el momento los parámetros que pretenden enseñar. Es decir, deben ser interactivas para que el profesor pueda manipularlos fácilmente sobre la marcha y los resultados se muestren inmediatamente en tiempo real.
  • Fáciles de modificar: con este tipo de aplicaciones, generalmente los alumnos prestan más atención, las ideas quedan más claras y eso provoca la aparición de nuevas preguntas relacionadas con el tema que se muestra. Desde el punto de vista pedagógico, es preferible contestar a esas preguntas en el momento, en lugar de posponerlas para la siguiente clase. Si la aplicación permite, no sólo variar los parámetros previstos, sino modificar fácilmente la propia aplicación para adaptarse a las necesidades pedagógicas del momento, la experiencia educativa mejoraría aún más.
  • Disponibilidad: igual que las transparencias se suelen hacer llegar por uno u otro medio a los alumnos, estas aplicaciones se deberían también proporcionar como apoyo al estudio, para que ellos mismos puedan utilizarlas como mesa de pruebas. Por eso es importante que la licencia de las mismas lo permitan.

Para el desarrollo de este tipo de aplicaciones, una alternativa es el uso de un motor gráfico como Nebula, desarrollado por RadonLabs. Éste motor permite la creación de aplicaciones utilizando C++ y/o utilizando un lenguaje de script como TCL. Dado que en tiempo de ejecución se puede tener acceso a una consola de TCL, durante la ejecución de la aplicación se puede cambiar su comportamiento.

Ejemplos

A continuación describimos tres ejemplos de aplicaciones para enseñar distintos conceptos, desarrolladas utilizando únicamente scripts de TCL.

Todos los ejemplos están codificados utilizando scripts de TCL/TK, que llaman a funciones Nebula implementadas en C++. El fichero ZIP descargable que aparece más abajo contiene en el directorio .\bin los binarios de Nebula ya compilados; el directorio .\data contiene tanto los scripts como la geometría y texturas utilizadas en los tres ejemplos. En el directorio raiz aparecen tres ficheros por lotes con extensión .bat, que arrancan cada uno de los scripts que lanzan las aplicaciones.

Los ficheros binarios están compilados para la plataforma Windows. Sin embargo, tanto los scripts como las texturas pueden utilizarse para cualquier otra plataforma en la que se haya compilado Nebula.

Ejecutables de los ejemplos ZIP
Cambios necesarios en ciertas clases de Nebula para poder establecer parámetros desde TCL que inicialmente no permitía. En concreto, es la clase nObserver ZIP
Nebula SDK (de RadonLabs). Nebula ya no es mantenido por RadonLabs, por lo que dejamos aquí el instalador que en su día distribuían. EXE

Jerarquía de la escena

Captura aplicación jerarquía de la escena Este ejemplo (que se ejecuta con el fichero por lotes jerarquia.bat), es útil para explicar el concepto de sistemas de referencias anidados. La aplicación muestra una escena con un sistema planetario, donde el sistema de referencia de los planetas depende del sistema de referencia de la estrella, y los sistemas de referencia de los satélites dependen a su vez del sistema de cada uno de sus planetas.La aplicación presenta una ventana (implementada utilizando Tk), que contiene unos controles que permiten modificar la rotación de algunos de los sistemas de referencia.

Planos cercano y lejano

Captura aplicación plano cercano y lejano Una vez explicado el concepto de campo de visión y la pirámide truncada que simboliza el espacio visible, resulta ilustrativo mostrar la ejecución de ésta aplicación, donde esos planos cercano y lejano pueden modificarse.La aplicación (que se ejecuta con planos.bat) presenta un terreno en tres dimensiones y una ventana creada en Tk con deslizadores que permiten alterar la distancia a la que esos dos planos se sitúna, para ilustrar el hecho de que lo que provocan es un corte de la escena con planos paralelos a la pantalla. La aplicación permite mover la cámara para comprobar que con distintas orientaciones, los cortes son distintos.

Diferencia entre “zoom” y acercar la cámara

Captura aplicación zoom Cuando se explica la idea de planos laterales y ángulos de apertura, surge la duda de cuál es la diferencia entre este ajuste de los ángulos (zoom) y el mover la cámara.Aunque en principio esa pregunta es más bien sobre cámaras reales y no sobre Informática Gráfica, la duda puede resolverse fácilmente con ésta aplicación (que se ejecuta con zoom.bat), y que presenta el mismo terreno de antes, pero permitiendo ahora cambiar los ángulos de apertura de la cámara, así como moverla hacia delante y hacia atrás (eje Z de la cámara).

Análisis de las líneas de código de los ejemplos

Para ilustrar la facilidad con la que se crean estas aplicaciones utilizando Nebula, a continuación describimos el número de líneas de código aproximadas que tiene cada uno de ellos.

 

Líneas de código de cada ejemplo distribuidas por cometido
Ejemplo Jerarquía Planos Zoom
Comunes (a varios ejemplos) 62 142 142
De Nebula 88 0 0
Basadas en Nebula 96 80 80
Creación ventana TK 53 23 24
Manejo de eventos 40 5 12
Llamadas Nebula para cambio de párametros 7 1 2
Lineas totales 362 181 189

 

Número de líneas de los ficheros de script utilizados
 

planetas.tcl 142
Inicialización 27
Ventana TK 53
Gestión de eventos 40
(Llamadas a Nebula 7)
planos.tcl 66
Inicialización 27
Ventana TK 23
Gestión de eventos 5
(Llamadas a Nebula 1)
zoom.tcl 74
Inicialización 27
Ventana TK 24
Gestión de eventos 12
(Llamadas a Nebula 2)
creditos.tcl 35
newplanets.tcl 96
(basado en una Demo de Nebula)
escenaterreno.tcl 69
(basado en una Demo de Nebula)
map.tcl 11
(basado en una Demo de Nebula)
routines.tcl 44
(de una Demo de Nebula)
licht.tcl 44
(de una Demo de Nebula)

 

Otros recursos de Nebula

El motor de Nebula lo hemos utilizado también como herramienta de desarrollo de otros proyectos como Javy, lo que ha originado una serie de clases y ampliaciones al motor gráfico que están disponibles en la página de desarrolladores.

Los comentarios están cerrados.