Descargar

Diseño e implementación de un juego matemático (página 2)


Partes: 1, 2

También, se encarga del acceso a los datos del juego, la lectura de los archivos que se van a cargar en la escena para presentar el menú principal, los niveles del juego, el alfabeto indicando que ingrese su nombre, las instrucciones del juego, la música del juego, las texturas de los objetos y todo lo que involucra cargar los datos a la memoria para comenzar la aplicación.

Módulo del tracker

Este módulo encapsula las funciones del tracker en el juego. En un principio recoge los datos del tracker del módulo de entrada, verifica que sean continuos, es decir que la conexión entre el tracker y la computadora esté siempre activa, caso contrario se vuelve a conectar para no interrumpir el proceso de obtención de datos. Luego, se encarga de leer los datos del buffer del tracker, verifica que los datos estén siendo enviados, para seguidamente pasarlos a las coordenadas del puntero y ser procesados por el modulo manejador de eventos. Al final se proyecta en el campo de visualización.

Módulo manejador de eventos

El módulo manejador de eventos cambia el vector de posición del objeto, muestra nuevos objetos o cambia la escena del juego.

La función de este módulo es la de administrar las acciones que ocurren al manipular la escena. Cuando el módulo del tracker es procesado por este módulo, la acción es mapeada a otra escena. La salida de este módulo representa una retroalimentación en la aplicación, puede ser un cambio del movimiento, la salida del sonido, la desaparición o aparición de un objeto, el cambio del tiempo, el cambio de puntaje, etc.

Módulo Detección de Colisión

Este módulo es usado por el manejador de eventos, para saber cuándo hay una intersección entre dos objetos y luego cambiar su estado. La colisión de las bolas en la escena se realiza por medio de la predicción de su ruta en el tiempo. Cuando una colisión es encontrada, se llama al modulo manejador de eventos para procesar la acción que va a ser puesta en la escena.

Módulo de Visualización

La entrada de este módulo es principalmente la salida del módulo de datos. Luego que el módulo de datos es procesado, su información es visualizada en la escena. También, es invocada luego que el módulo de manejador de eventos ha culminado su procesamiento. La retroalimentación se realiza es a través de este módulo de visualización. Además, se encarga de pasar las coordenadas de los objetos a la escena y comunicarse con las llamadas de bajo nivel del hardware para luego colocarlas en la pantalla.

Existen otros módulos que van de la mano con los anteriores mencionados, si bien no se encargan del procesamiento, su función es la de guardar y configurar los datos de entrada.

Módulo de Calibración

Dentro de este módulo se realizan los cálculos necesarios para poder calibrar los valores del tracker dependiendo del ancho de la pantalla. También se encarga de minimizar el error de la lectura del tracker debido a alteraciones en el campo magnético.

edu.red

Figura 3.3 Diagrama de interacción del módulo de calibración y tracker.

En la figura 3.3 se observa la interacción de datos entre los módulos de entrada, tracker y calibración. El módulo de entrada envía los datos descritos anteriormente al módulo del tracker, el módulo del tracker procesa los datos y envía los valores al módulo de calibración. El módulo de calibración ejecuta la función de calibración y devuelve los valores corregidos del tracker. La calibración se detalla en la sección 4.3.

Módulo de objetos

Este módulo guarda dentro de un árbol los datos de los objetos, como las coordenadas, la ruta, la textura, la posición, para luego ser mostrados en la escena.

edu.red

Figura 3.4 Representación en grafos de los datos de entrada

Una escena es representada por la raíz de un árbol. Para insertar un objeto en la escena, un nodo debe ser creado e insertado en el árbol. Luego, ese nodo, el cual se referenciará con el vector PositionAttitudeTransform (pat) define la posición del objeto en la escena. Finalmente, se crea otro nodo que se insertará debajo del nodo pat, el cual referenciará al objeto y sus propiedades.

Como apreciamos en la figura 3.4, en el nodo hijo 3 se referencia primero el pat como hijo del nodo. Luego, debajo se encuentran 3 nodos hijos, que representan la ilustración de una esfera.

  • Flujo de datos del juego

Al inicio del juego se muestra un menú principal que contiene las opciones del juego: jugar, instrucciones, puntajes, salir. Una vez que es elegido alguna opción, la escena cambia nuevamente por el manejador de eventos. Las escenas son representadas como nodos raíces en el árbol principal. En la figura 3.5 se muestra un diagrama presentando el ciclo de interacción de los datos en la escena.

edu.red

Figura 3.5 Diagrama de interacción del juego.

Inicialmente, una escena ha sido seleccionada del árbol principal. Luego se carga la cámara con su posición, los objetos con su vector pat. Los valores del tracker se cargan seguidos por el valor del guante. En el momento que el valor del guante pasa a habilitarse, toma el valor del tracker en ese preciso momento. Con estos dos valores y el vector posición se verifica si hay colisión. Si existe una colisión, el pickhandler se encargará de ver cuál es la próxima escena a ser seleccionada y se vuelve al mismo ciclo.

  • Interfaz Gráfica

La interfaz gráfica que se diseñó para el juego contiene escenas tomadas de un juego en 2D con las mismas características que el juego que se implementó. Al inicio se muestra un menú principal que tiene las opciones de: Jugar, Instrucciones, Puntajes y Salir.

En la figura 3.6 se muestra la ventana principal del juego. A continuación se describe el flujo de ventanas para cada opción del menú principal.

edu.red

Figura 3.6 Proyección de la pantalla principal del juego

Jugar: Muestra los niveles del juego: fácil, intermedio, difícil. Cuando uno de estos niveles es seleccionado la siguiente pantalla que se muestra es el teclado en donde el usuario introduce su nombre para ser guardado en el archivo de los usuarios. Una vez que el nombre está listo se selecciona lo opción de siguiente, caso contrario se selecciona atrás para regresar al menú principal.

La siguiente pantalla que se presenta es la del juego que muestra tres bolas dentro de una caja. Cada bola tiene una fracción inscrita en el centro.

En la parte inferior de la escena se muestra el tiempo que le falta para que se acabe el juego, el puntaje que lleva acumulado y el nivel en el que se encuentra.

Cuando el tiempo se acaba, la pantalla muestra un mensaje de juego terminado, el puntaje que hizo y si se encuentra entre los mejores puntajes. Luego de esto puede seguir jugando o retirarse del juego (figura 3.7).

edu.red

Figura 3.7 Pantalla del juego

Instrucciones: Muestra una escena con la instrucción del juego, en la primera escena se muestra una imagen indicando las secciones del juego, en la siguiente escena le muestra cómo debe dispararle a los objetos. Y por último, se muestra la opción de retornar al menú principal.

Puntaje: Muestra una lista de los mejores 10 puntajes dentro del juego y el nombre del jugador. Luego de esto el usuario tiene la opción de regresar al menú principal.

  • Herramientas de desarrollo

Las herramientas que han sido seleccionadas para el desarrollo del proyecto fueron elegidas por diferentes criterios como la experiencia en el manejo de la herramienta, la curva de aprendizaje de nuevas herramientas adoptadas y la facilidad de implementación.

  • Herramientas de Software

Dentro de las herramientas que se utilizaron en el desarrollo del proyecto se incluyen las siguientes:

  • OpenSceneGraph

  • 3D Studio Max

  • Simple DirectMedia Layer (SDL)

  • OsgExporter

  • Microsoft Visual C++ Express Edition

  • Polhemus SDK

  • 5DT Data Glove SDK

OpenSceneGraph

OpenSceneGraph (OSG) es un marco de trabajo utilizado para desarrollar aplicaciones gráficas de realidad virtual en diferentes campos como: simulaciones, juegos, visualización científica [30].

El OSG es multiplataforma, desarrollado en C++, se basa en gráficos de escena que proporciona un marco de trabajo orientado a objetos cuyo núcleo se centra en OpenGL. Ha sido concebido como el líder mundial en tecnología de escenas gráficas, debido a utilidades adicionales para el desarrollo rápido de aplicaciones, lo que facilita al programador de evitar hacer llamadas a librerías de bajo nivel [31].

El OSG emplea técnicas de grafos de escena para contener toda la información relativa a la escena generada. Un grafo de escena es una estructura de datos que permite crear una estructura jerárquica de la escena, de tal forma que se mantengan una serie de relaciones padre-hijo entre los distintos elementos. Por ejemplo, variaciones de posición y orientación en el nodo padre afectan a los nodos hijos.

La elección de OSG se ha basado fundamentalmente en su código abierto, su gratuidad, su independencia de la plataforma y, sobretodo, sus posibilidades de expansión.

El principal inconveniente es la falta de documentación específica. Pero este problema es minimizado mediante una serie de ejemplos que aportan los conocimientos básicos de las distintas capacidades de la librería [32].

Aunque carece de un motor para física, hay varios grupos de desarrollo que han implementado un motor de física que incluyen funciones básicas de física como detección de colisiones, fuerza de gravedad, fuerza centrípeta, etc. Entre ellos tenemos el Vortex [33] que es un plugin que se adapta al OSG para mejorar y optimizar el desarrollo de simulaciones en tiempo real.

Lamentablemente los motores de física que han ido desarrollando para ampliar la comunidad del OSG no son gratuitos por lo que quizás sea una desventaja para OSG, pero que con el tiempo se espera que el propio OSG incluya su motor de física.

Los puntos fuertes del OSG son su rendimiento, escalabilidad, portabilidad y las ganancias de productividad asociadas con el uso de un escenario completamente gráfico [30].

Para leer y escribir bases de datos, OSG ha incluido un plugin (osgDB) que soporta una variedad de formatos incluyendo base de datos 3D y varios formatos de imagen.

OSG se ejecuta desde portátiles hasta computadores de varios núcleos, multiGPU y sistemas de clúster. Esto es posible porque soporta múltiples contextos gráficos OpenGL, ha sido diseñado para hacer caché de datos locales y hacer uso de él casi en su totalidad como sólo lectura. Esto permite funcionar en múltiples CPU's que están vinculados a varios subsistemas de gráficos. Soporta múltiples gráficos y contexto multihilo a través de osgViewer.

3D Studio Max

3D Studio Max es una aplicación que permite crear modelos y animaciones en 3 dimensiones a partir de una serie de herramientas. La utilización de 3D Studio Max permite al usuario la fácil visualización y representación de los modelos, así como su exportación en otros formatos distintos del que utiliza el propio programa. Esta función permite al usuario complementar el 3D Studio Max con sus otras herramientas de trabajo y desarrollo [34].

Simple DirectMedia Layer (SDL)

SDL es un conjunto de librerías multimedia, multiplataforma, diseñado para proporcionar acceso de bajo nivel para audio, teclado, ratón, joystick, y hardware 3D mediante OpenGL. Estas librerías son utilizadas por muchos juegos, también incluyendo programas de reproducción de música.

SDL soporta Linux, Windows, Mac OS X, FreeBSD, Solaris, IRIX. Además, el código incluye soporte para Dreamcast, Atari, AIX, SymbianOS, pero no son oficiales. El SDL está escrito en C, pero utiliza clases nativas para otros lenguajes como C++, C#, Erlang, Haskell, Java, ML, Pascal, Perl, PHP, Python, Ruby.SDL se distribuye bajo licencia GNU LGPL versión 2. Esta licencia permite el uso de SDL libremente en los programas comerciales, siempre y cuando se vincule con la biblioteca dinámica [35].

OSGExporter

OsgExporter es un plugin para 3D Studio Max que permite exportar los objetos en el formato nativo de OpenSceneGraph (.osg y .ive). El OsgExporter es una fuente de código abierta, tiene soporte para exportar geometría, material, textura, mapas de ambiente, cámaras y animaciones de la escena en 3D Studio Max [36].

Microsoft Visual C++ Express Edition

Visual C++ 2008 Express es un entorno de desarrollo integrado (IDE), creado por Microsoft dirigido para los desarrolladores que quieran programar en este lenguaje con una herramienta gratuita. Esta edición Express es más ligera que la versión de Visual Studio 2008, contiene todo lo necesario para programar aplicaciones en C++ [37].

Polhemus SDK

El tracker electromagnético Polhemus Liberty incluye un CD de instalación el cual provee las librerías necesarias para poder desarrollar programas con el tracker. El conjunto de librerías también llamado PDI (Polhemus Developer Interface) ha sido desarrollado para facilitar la comunicación entre la entrada de bajo nivel de datos con la aplicación [38].

Para poder desarrollar una aplicación utilizando el Polhemus Liberty se necesitan incluir las librerías y encabezados que vienen en el SDK, en el proyecto de Visual C++ Express Edition.

5DT Data Glove SDK

El SDK del Data Glove es un conjunto de librerías que proporciona el acceso a los datos de los guantes virtuales a un nivel intermedio.

El SDK del Data Glove soporta los sistemas operativos de Windows Me/98/XP, y sus librerías (.lib), encabezados (.h) y vínculos dinámicos (.dll) pueden ser incluidos dentro de un proyecto de Visual Studio C++.

La funcionalidad del SDK del Data Glove permite manejar varias instancias a la vez, es de fácil uso al incluirlo en el código, tiene una auto calibración de los sensores, reconoce 15 gestos básicos sin necesidad de entrenarlos con anterioridad y se pueden agregar funciones de calibración [39].

  • Herramientas del Hardware

Para el desarrollo del juego educativo se utilizaron, entre los equipos que se encuentran en el área de realidad virtual: el tracker electromagnético Polhemus para el posicionamiento del jugador, el 5DT Data Glove para el reconocimiento de gestos, una pistola de juguete para simular el disparo a la proyección y el proyector 3D Ben Q Depth (figura 3.8).

Los equipos que se involucran para la interacción del juego corresponden a una composición entre un sistema de realidad virtual de escritorio y un sistema de realidad virtual inmersivo.

edu.red

Figura 3.8 Equipos utilizados en el desarrollo del juego.

Polhemus Liberty

El Polhemus Liberty es un sistema de rastreo de movimiento, electromagnético que permite la lectura de 6 grados de libertad, soporta hasta 16 sensores y tiene una interfaz con el usuario muy intuitiva. Tiene una frecuencia de lectura de 240 Hz. por sensor, una exactitud estática de la posición de 0.03 in. y una exactitud estática de la orientación de 0,15° RMS lo que la hace uno de los rastreadores de movimiento con mejor manejo del error. Su latencia es de 3,5 milisegundos, y su rango de lectura en condiciones normales es de 90 cm [41]. Es compatible con el sistema operativo de Windows lo que lo hace poco portable.

5DT Data Glove

El 5DT Data Glove es un guante virtual que permite reconocer los gestos de la mano (figura 3.9). Utiliza como sensores unos alambres de fibra óptica para sensar el movimiento y tiene 14 sensores, dos para cada dedo (10) y uno para cada unión entre los dedos (4). Permite la lectura de 256 posiciones de los dedos por tener una resolución de 8 bits. Su velocidad mínima de muestreo es de 75 Hz y hace un seguimiento de 200 Hz. para cada dedo. Para ser calibrado se necesita una pequeña rutina de calibración con el Administrador del Data Glove que viene incluido en el SDK y es compatible con Windows [42].

edu.red

Figura 3.9 Guantes 5DT Data Glove

Dell Precision Workstation 7400n

La Dell Precision 7400 es una estación de trabajo con alto rendimiento diseñada para maximizar el rendimiento y la escalabilidad (figura 3.10). Las características de la Dell Workstation 7400 se detallan a continuación:

  • Quad core Intel Xeon Processor E505 (2.00 GHz, 2x6M L2, 1333)

  • Memoria de 4G DDR2, SD RAM FBD Memory 667 MHz ECC (4 DIMMS).

  • Teclado Enhanced USB.

  • Tarjeta Gráfica 512 MB PCIe x16 Nvidia Quadro FX3700 Dual Monitor DVI Capable.

Los gráficos que ofrece la Dell Workstation 7400 pueden manejar gráficos en 2D y OpenGL 3D para operaciones de ingeniería, arquitectura o diseño de aplicaciones. La Dell Precision T7400 ofrece una amplia gama de opciones de alto rendimiento, incluyendo Dual PCIe Gen 2 nativo x16 y un máximo de 225 watts en la tarjeta gráfica. Puede ser utilizada para MCAD, visualización y creación de contenido digital, configurado con múltiples monitores una máxima eficiencia [43].

edu.red

Figura 3.10 Dell Precision Workstation 7400n

Proyector estereográfico 3D Depth BenQ

El proyector BenQ 3D han sido diseñado para tener el mejor rendimiento en gráficos 3D. Es capaz de de mostrar una pantalla de 81 pulgadas a una distancia de 1 metro (figura 3.11).

Este proyector pertenece a la serie de proyectores para la educación y se puede lograr una imagen en 3D al utilizar los lentes estereográficos. Su resolución es nativa XGA y con un contraste de 24,000:1.

Tiene un nivel de 1600 lúmenes con una conectividad de VGA o HDMI. Una de las características de estos proyectores es que tienen corrección de color, lo que permite proyectar en cualquier pantalla de color y no necesariamente en una superficie blanca [44].

edu.red

Figura 3.11 Proyector BenQ 3D

CAPÍTULO 4

Implementación

En esta sección se describe la configuración de los equipos y el detalle de las clases como parte de la implementación del juego.

  • Configuración de los equipos

  • Tarjeta grafica

Para obtener el mejor desempeño de la tarjeta gráfica Nvidia Quadro FX3700 se tomaron las siguientes consideraciones: se configuraron las variables de entorno estéreo y quaq buffer en la pantalla de administración de tarjeta.

La variable de entorno estéreo sirve para que la tarjeta modifique parámetros de visualización del sistema y el usuario perciba en cada ojo la imagen correspondiente. El quaq buffer sirve para que la imagen que se proyecta a cada ojo tenga un doble buffer y reducir el retardo [45].

  • Tracker

Para la configuración del tracker se incluyeron las librerías en la administración del proyecto. Estas librerías vienen incluidas en el CD instalador y sirve para que el programa pueda interpretar los datos enviados por el tracker.

Para la configuración del eje y la unidad de los valores del tracker se lo realizó en el administrador de la aplicación del Pi Manager (figura 4.1). Además, de configurar los ejes en esta aplicación, también se puede visualizar el funcionamiento del sensor, la posición del receptor y grabar datos para luego ser analizados.

edu.red

Figura 4.1 Ventana del Pi Manager.

  • Guante

Para la configuración del guante se incluyó la librería fdglove.lib, el archivo de cabecera fdglove.h y la librería dinámica fdglove.dll, en la administración del proyecto. Estos recursos vienen incluidos en el CD instalador y sirve para que el programa pueda interpretar los gestos realizados por el usuario.

En la configuración de los gestos se utilizó el administrador de la aplicación instalada en el computador, en la opción "configurar gestos". Lo que hace esto es configurar un gesto de la mano y asociarlo a un número para que después pueda ser utilizado en el programa.

En el juego se utilizan dos gestos para el reconocimiento de las acciones. El gesto 0 y el gesto 1 como se muestra en la figura 4.2.

edu.red

Figura 4.2 Gestos utilizados para el reconocimiento de las acciones.

  • OSG

Para la configuración del OSG primero se obtuvo el paquete de librerías del internet [30] para copiarlas en una carpeta del sistema. Luego se configuraron las variables de entorno de los archivos de cabecera y las librerías para que puedan ser reconocidas por el sistema. Para finalizar se incluyeron las variables de entorno en la administración del proyecto en la opción "external links" para que puedan ser utilizadas por el programa.

  • SDL

Para la configuración del SDL primero se obtuvo el paquete de librerías de la página web del proyecto [35]. Luego se copiaron los archivos necesarios para el funcionamiento del audio en el programa y se añadieron al proyecto los archivos de cabecera. Para cargar el audio al programa se lo hace inicializando las estructuras de datos Mix_Chunk y Mix_Music.

  • Clases implementadas

Para la implementación del juego educativo se escribieron varias clases siguiendo el paradigma Orientado a Objetos. A continuación se explican las principales clases del juego (figura 4.3).

edu.red

Figura 4.3 Diagrama de clases

  • Clase Archivo

Esta clase forma parte del módulo de datos y se encarga de guardar y de leer los datos del jugador como el nombre y el puntaje de un archivo. Este archivo luego será cargado en la interfaz de altos puntajes o se guardará cuando termina una sesión del juego.

Cuando se carga el archivo, lo hace a través de un arreglo de objetos Jugador.

En el caso que se termine la sesión del juego se llama a la función encargada de verificar si el puntaje es alto, para esto un objeto jugador es pasado a través de esta clase y se verifica que el archivo en cuestión exista. Si el archivo existe, el objeto es convertido a texto y guardado de tal manera que el arreglo de objetos se encuentre ordenado de mayor a menor para minimizar el tiempo de ordenamiento al cargar los objetos. Si no existe el archivo se maneja el error correspondiente y se muestra un mensaje en el juego.

  • Clase Pickhandler

Esta clase pertenece al módulo de manejador de eventos y carga todas las rutas de las escenas para luego ser vistas dependiendo de la acción. Al inicio, esta clase inicializa todas sus variables y carga la escena raíz de cada ruta.

La función handle recibe un parámetro de EventAdapter que maneja los cambios de ventanas en el escenario y otro parámetro de ActionAdapter que llama al Viewer para cada cambio de escena. Cuando se encuentra el caso de que el manejador de eventos ha sido lanzado, la pantalla actual va a ser asociada con una función que conlleva a cambiar la raíz de la escena y colocar otra ruta de escenas.

La función picker obtiene los datos del EventAdapter y se encarga de cambiar los datos de la escena en el Viewer cuando haya algún cambio en la escena. Este cambio se puede generar por los datos del guante y del tracker.

La función createScene se encarga de crear las escenas correspondientes para cada pantalla. Se crea la raíz y dentro de él los objetos correspondientes incluyendo, la posición, el texto, los objetos, etc.

  • Clase Tracker

Esta clase forma parte del modulo del tracker y se encarga de realizar la conexión y de interpretar los datos del tracker para que el programa los pueda procesar.

La función ValoresTracker() obtiene los datos del tracker que lee de cada sensor conectado. Esta función los guarda en un arreglo de pfloat que después serán utilizados en la clase pickHandler para que realice los movimientos deseados por el usuario.

  • Clase Simulator

Esta clase forma parte del modulo de visualización y se encarga de manejar toda la parte grafica del programa. Una de las funciones principales de esta clase es el de manejo del tiempo, ya que con este se pueden realizar las predicciones de las colisiones entre bolas.

Otra función de la clase es de inicializar el viewer del programa en el cual se carga la raíz principal, con los objetos de la escena principal.

  • Clase PhysicApp

Esta clase forma parte del módulo de datos el cual se encarga de inicializar la clase del guante, del tracker, música y asigna los valores de las variables 3D para que el proyector pueda trabajar de la manera más eficiente. También llama a la clase Simulator para que esta a su vez cargue el viewer del programa.

  • Calibración

En el juego se usa el tracker para saber la posición del puntero de disparo. Sin embargo su precisión no siempre es buena debido a que este sistema se basa en campos magnéticos que pueden ser fácilmente alterados por muchos factores externos, como por ejemplo: una computadora, un celular, etc. Además de este problema, se debe tener en cuenta que la relación entre el movimiento del tracker y el movimiento del puntero en la proyección sea la más adecuada para poder tener una experiencia de inmersión.

Debido a los problemas presentados se implementó una función que calibre los errores de los datos leídos por el tracker, la función de calibración estática; y otra función que calibre la relación entre los movimientos, la función de calibración de la pantalla.

  • Calibración estática

Basándose en funciones de calibraciones conocidas por el grupo EVL de la Universidad de Chicago [46], dentro de este proyecto se implementa la función de calibración por interpolación de datos en la que involucra el valor real del tracker, el valor leído del tracker, el cálculo del error y la distancia.

La metodología que se usó para obtener esta función de calibración se basa en la utilizada por Kindratenko [46], en la que se obtienen lecturas del tracker por medio de una tabla estática. Para minimizar el error por el campo magnético, las medidas se tomaron en una mesa de madera tratando de estar aislados de equipos que puedan interferir con los datos (figura 4.4).

edu.red

Figura 4.4 Obtención de datos para la calibración

Luego que se obtienen los datos, se calcula la distancia al valor real del tracker por medio de la función de distancia euclidiana:

edu.red

Donde P es el punto edu.reddel valor tomado del tracker, y P" es el punto edu.redde la malla graficada en el espacio real. El valor de z no puede ser medido por falta de equipo especializado para hacerlo [46].

Una vez que calculamos la distancia, construimos una tabla de valores con los valores reales del tracker, los valores que obtenemos del programa del tracker, el valor de la distancia, y el valor del error que se obtiene de restar el valor real con el valor del tracker.

Con la tabla construida, graficamos la función de error vs. Distancia, en donde tenemos una función exponencial del tipo edu.redPara calcular las constante a se proyecta la función hacia el eje de la Y y la intersección con este eje corresponde a la constante. Para calcular la constante b se proyecta una relación lineal de la curva, y la pendiente de la recta representa a la constante b.

Como resultado tenemos la función (figura 4.5):

edu.red

edu.rededu.red

Distancia (cm)

Figura 4.5 Gráfica de Error vs. Distancia

La función resultante tiene una forma exponencial debido a que el campo magnético que se forma en el receptor tiene la forma de un toroide. Con esta función se realiza la interpolación de la función a los valores del tracker. El valor X y Y del tracker se reemplaza en la función y el resultado obtenido es el error que se le restará a los valores de X y Y.

  • Calibración de la pantalla

Para la calibración de pantalla se tomo en cuenta dos factores: el ancho de la pantalla de proyección y la distancia que puede recorrer loa brazos con las manos juntas de izquierda a derecha o viceversa.

Esta calibración es importante porque va a determinar la distancia de la navegación entre el movimiento del tracker y el movimiento resultante en el puntero.

Para obtener el parámetro en X que relaciona las dos distancias, se divide el ancho de la pantalla "d1" con el valor promedio de la distancia que puede correr los brazos con las manos juntas "d2", lo que nos da un coeficiente de relación.

También es necesario obtener un coeficiente de relación para Y, por lo que tomamos como referencia el alto de la pantalla proyectada "y1" y la distancia promedio tomada desde el nivel de los hombros hasta el nivel del tronco "y2" (figura 4.6).

edu.red

El resultado de x y de y es multiplicado con el valor de X y Y del tracker, y agregando el resultado de la función de calibración descrita en el apartado anterior conseguimos una mejor navegación y precisión en la pantalla.

CAPÍTULO 5

Pruebas y análisis de los resultados

Para las pruebas del juego educativo se evaluaron a 15 estudiantes de la materia de graduación de realidad virtual (5 mujeres y 10 hombres) con una edad entre 24 y 28 años. Los estudiantes saben utilizar la computadora y han jugado juegos en la computadora.

Las pruebas que se realizaron se basaron en una investigación previa en donde se implementó un juego con la realidad virtual y otras pruebas realizadas en la implementación de una aplicación utilizando mouse y guante con sensor [47] [48].

Las pruebas se clasifican en dos tipos: objetivas y subjetivas.

  • Pruebas Objetivas

Estas pruebas ayudaron a medir el tiempo de interacción del juego educativo, basándose en el tiempo en el que se demora el usuario al realizar una tarea específica dentro del juego. El tiempo de selección de objetos se obtuvo a partir de las tareas que se le pidió realizar al usuario primero utilizando el mouse y luego utilizando el tracker/guante.

En la primera prueba se le pidió al usuario elegir dentro del menú principal del juego la opción de puntaje, en la segunda prueba se le pidió al usuario seleccionar las letras "a, l, p, z" que se encuentran separadas en el teclado del juego utilizando el mouse y luego utilizando con el tracker/guante haciendo el gesto predeterminado (figura 5.1).

edu.red

Figura 5.1 Distribución de letras en el teclado del juego

Para medir la primera prueba se implementó la función getTime() que empieza a contar el tiempo desde que inicia el juego hasta que selecciona la opción "puntaje".

Para la segunda prueba se utilizó la misma función antes mencionada con la diferencia que el inicio del contador se ubicó en el momento que el teclado del juego era cargado en la escena.

En la figura 5.2 se observa el promedio del tiempo resultante en la primera y en la segunda prueba.

edu.red

Figura 5.2 Resultado las pruebas objetivas, a) se muestra el tiempo promedio obtenido de la primera prueba, b) se muestra el tiempo promedio de la segunda prueba.

En la primera prueba, el tiempo promedio en realizar la selección del objeto "puntaje" fue de 0,161 s para el uso del mouse con un valor mínimo de 0,104 s y un valor máximo de 0,27 s. El tiempo promedio para realizar la misma tarea usando el tracker/guante fue de 0,58 s con un valor mínimo de 0,45 s. y un valor máximo de 0,73 s.

En la segunda prueba, el tiempo promedio en seleccionar las letras con el mouse fue de 8,87 s. con un tiempo mínimo de 7 s. y un tiempo máximo de 11 s. Para la selección de las mismas letras con el tracker/guante se obtuvo un tiempo promedio de 19, 07 s. con un tiempo mínimo de 17 s. y un tiempo máximo de 22 s.

En las pruebas se observó que los usuarios al momento de seleccionar el objeto primero movían el guante con el sensor para verificar en donde se encontraba el puntero al inicio y luego seleccionaban el objeto.

  • Pruebas subjetivas

Estas pruebas ayudaron a medir el grado de interacción entre el mouse vs. el guante con el sensor.

Para realizar las pruebas se hizo un cuestionario con una serie de preguntas de opción múltiple. Los factores que se evaluaron fueron: diversión, exactitud, comodidad, dificultad e interactividad. Para evaluar la diversión, exactitud, la comodidad y la dificultad se pidió a los usuarios que calificaran en una escala del 1 al 5, siendo el 1 la calificación más baja y 5 la calificación más alta.

Para evaluar la interactividad se pidió a los usuarios elegir cual medio de interacción simulaba mejor el juego de disparos. En la figura 5.3 se observa los resultados de la encuesta, en donde la comodidad parece estar pareja para ambos casos. En el caso del mouse las 4 personas dijeron que es normal la comodidad del mouse en este tipo de juegos mientras que 5 personas dijeron lo mismo usando el guante con el sensor.

edu.red

Figura 5.3 Resultado la encuesta en donde se evaluaba la comodidad de los dispositivos.

Los resultados de la evaluación de la dificultad de uso se muestran en la figura 5.4, en donde 7 personas ven que el mouse es de fácil uso en comparación al tracker/guante en donde 5 personas expresan su uso es normal, entre fácil y difícil.

edu.red

Figura 5.4 Resultado la encuesta en donde se evaluaba la dificultad de uso de los dispositivos.

En la figura 5.5 se muestran los resultados de la evaluación de la diversión del juego con el mouse y con el tracker/guante. Las personas evaluadas demostraron que el tracker/guante resulta ser divertido al momento de interactuar con el juego.

edu.red

Figura 5.5 Resultado la encuesta en donde se evaluaba la

diversión del juego.

La figura 5.6 indica que las personas evaluadas sienten que el mouse es más exacto que el tracker/guante, el 73% de las personas indicaron su grado de conformidad con el mouse, mientras que el 60% dice estar menos conforme con la exactitud del tracker/guante.

edu.red

Figura 5.6 Resultado la encuesta en donde se evaluaba la exactitud de los dispositivos

En la figura 5.7 se muestra que las personas prefieren el tracker/guante para jugar este tipo de juego en realidad virtual. El 66,67% prefiere utilizar el tracker y el guante para el juego mientras que el 33,33% prefiere utilizar el mouse.

edu.red

Figura 5.7 Resultado la encuesta en donde se evaluaba la preferencia de dispositivos en el juego.

Lamentablemente no se pudo medir el juego en características de enseñanza dado que los equipos que se usan en el laboratorio de realidad virtual son para adultos, además, de recalcar que por razones de logística este tipo de prueba no pudo ser realizada.

Conclusiones

  • 1. Como se revisó en la escritura del documento, la tecnología de la realidad virtual tiene muchos usos en el campo educativo. Esta nueva manera de representar el mundo real ha tenido iniciativa desde 1980, demostrando que contextualmente su utilización tiene muchos beneficios e impacto en los usuarios, por esta razón se debe comenzar a explotar esta tecnología. Aunque, por el momento los costos para implementar una aplicación de este tipo sean altos, en el futuro se espera que dichos costos sean menores.

  • 2. En el desarrollo del juego se vio la necesidad de mejorar la precisión del puntero del tracker por lo que fue necesario implementar dos modelos de calibración. La primera calibración involucró al sensor con la distorsión de sus valores. La segunda calibración involucró al sensor con la navegación en la proyección. La calibración estática mejoró la lectura de los valores del tracker. Antes de la calibración el error mínimo promedio era de 0,49 cm, ahora con la función de calibración se redujo a 0,27 cm.

  • 3. En lo referido al análisis de la interacción en el juego implementado se demostró en los resultados que los usuarios prefirieron utilizar el guante con el sensor para este tipo de juegos. Además, se comprobó que el juego es más divertido con un grado de comodidad normal entre los usuarios. También, se mencionó que el guante es menos exacto que el mouse. Entre los participantes, el 86,7% hizo referencia que les resultó difícil usar el guante.

  • 4. El problema enfrentado en el análisis de resultados se debe a la poca experiencia que tienen los usuarios con los dispositivos de realidad virtual. La contrariedad encontrada se puede minimizar haciendo que el usuario gane más experiencia con los dispositivos. Un ejemplo similar sucede con el Wii, al principio las personas tienen que adaptarse al control para poder manejarlo bien.

  • 5. En cuanto al análisis de la eficiencia de los dispositivos de interacción con el entorno virtual, se demostró que el tiempo de respuesta medido con el guante es mayor con 9 segundos en comparación al tiempo medido con el mouse. Los factores que afectan este resultado es la cantidad de información que se procesa y el OSG no optimiza los recursos para cargar la información.

Recomendaciones

  • 1. Los proyectos de realidad virtual donde se usa rastreador electromagnéticos suele ser poco preciso debido a muchos factores, se recomienda seguir con la investigación sobre la calibración del mismo para obtener un error mínimo menor que el encontrado aquí. Una sugerencia para reducir el error en la lectura del tracker es utilizar ajuste con polinomios de grado 5. Con este método el error se reduce 4 veces su valor real [46].

  • 2. Para poder mejorar el desarrollo de ambientes virtuales en un menor tiempo, se recomienda analizar otras herramientas diferentes a las utilizadas en este proyecto. Una de las herramientas recomendadas que pudimos investigar durante la creación de este proyecto es Alice [50], que es un programa de fácil desarrollo de ambientes virtuales. Además, de permitir integrar con módulos los diferentes dispositivos de realidad virtual.

  • 3. El guante utilizado en el desarrollo del juego no es el más óptimo para ser usado. Como la medida del guante es estándar, cuando trata de leer los gestos de una mano pequeña, los datos no concuerdan con el gesto indicado. Se recomienda tener otro tipo de guante que permita la aceptación de toda talla de manos.

Anexos

ANEXO A.-Dispositivos de Realidad Virtual

Los dispositivos físicos que forman parte de un sistema de realidad virtual son los que estimulan los sentidos (vista, oído, tacto) del usuario para poder mejorar la inmersión hacia el mundo virtual.

Existen diferentes tipos de dispositivos usados en la realidad virtual, a continuación describimos los principales agrupados por el estímulo sensorial que involucran [21].

Dispositivos de Visión

Los seres humanos interpretamos en una mayoría las imágenes, es decir que somos visuales. Es por eso que la RV se esfuerza en ofrecer una experiencia visual lo más real posible. Entre los dispositivos de visión tenemos:

  • Gafas Estereoscópicas

Las gafas estereoscópicas son hechas de cristal líquido y tienen mucho parecido a un par de anteojos. Estas gafas vienen con un fotosensor incorporado, que es el encargado de leer las señales de la computadora. La computadora le envía una señal a los lentes para indicar a cual lado del lente (derecho o izquierdo) se debe de pasar luz. Cuando pasa luz a través del lente izquierdo se emite el lado izquierdo de la escena, lo mismo sucede con el lado derecho, así se construye la escena estereoscópica.

Las gafas son inalámbricas, lo que las hace fáciles de usar, sin embargo su campo de vista es limitado por lo que el usuario debe ver fijamente la pantalla para ver la escena tridimensional (figura A.1).

edu.red

Figura A.1. Gafas estereoscópicas

  • Head Mounted Display (HMD)

El HMD o casco virtual está formado por una pantalla que se presenta en frente de cada ojo de la persona todo el tiempo. El casco cubre casi toda la cabeza de la persona por lo que se consigue una mayor inmersión en el mundo virtual. Algunos de estos cascos incorporan audífonos con sonido estéreo y un tracker que permite sensar el movimiento de la cabeza.

El casco funciona de la misma manera que lo hace la computadora con las gafas: dos imágenes son proyectadas, una en cada pantalla para el ojo izquierdo y el ojo derecho (figura A.2).

edu.red

Figura A.2. Head Mounted Display

Dispositivos Auditivos

El sonido es una parte importante dentro de los sistemas de RV puesto que el sonido incrementa la capacidad perceptiva del hombre. Además ha sido demostrado que "usar sonido para proporcionar información alternativa o suplementaria a un usuario de computadora puede grandemente aumentar la cantidad de información que ellos pueden ingerir" [22]. El sonido puede aportar información fuera del campo de visión y del espacio, permitiendo que la experiencia sea más convincente.

El sonido se puede reproducir mediante audífonos colocados en un HMD o en unos parlantes tipos "teatro en casa" para que los efectos del sonido en 3D y estéreo puedan reproducirse de manera adecuada.

Se pueden reproducir dos tipos de sonido en un ambiente virtual: el sonido 3D y el sonido estéreo. El sonido en 3D puede ser colocado en cualquier lugar del ambiente virtual mientras que el sonido estéreo necesita un lugar específico entre el lado izquierdo y el lado derecho.

El sonido debe de ser realista en el momento de inmersión. Resulta muy difícil representar el sonido del mundo real, por lo que algunos investigadores sugieren utilizar sonidos pregrabados.

Dispositivos Táctiles

El ser humano tiene la capacidad de percibir diferentes tipos de sensaciones relacionadas con lo táctil, y cada tipo de sensación se encuentra asociado a un grupo específico de terminaciones nerviosas. Un tipo de sensación es la que nos permite saber cuando un objeto es pesado o liviano, es duro o blando; a este tipo se le llama realimentación cinética que es la que se siente en los músculos o tendones. Otro tipo de sensación es la que nos permite saber la textura de los objetos; a este tipo se le llama realimentación táctil que es la que se siente en la piel.

Para simular estas sensaciones se han creado varios dispositivos, pero uno de los más nombrados es el Phantom [23]. El Phantom es similar a un brazo mecánico, cuando el usuario manipula un objeto dentro del mundo virtual, este dispositivo se encarga de hacer "sentir" que éste es pesado, liviano, rugoso, liso. Todo esto es posible gracias a los motores que se activan para oponer resistencia a los movimientos que hace el usuario (figura A.3).

edu.red

Figura A.3. Dispositivos Táctiles

Dispositivos de interacción

Los dispositivos de interacción sirven para navegar dentro del mundo virtual de forma intuitiva y fácil para el usuario. Existen varios dispositivos de este tipo, generalmente emiten señales a la computadora para luego ser mapeadas y realizar alguna función específica.

  • Guante Virtual

Los guantes virtuales permiten interactuar directamente con los objetos del mundo virtual. Existen diferentes modelos de guantes dependiendo a la forma como recolecta sus datos. Todos los guantes cuentan con dispositivos que recogen señales para saber que dedos se encuentran flexionados, es así como se reconoce los gestos de agarrar, señalar, soltar, etc. Basta con que el usuario realice un gesto en el mundo real y en el mundo virtual se reflejará como una acción (figura A.4).

edu.red

Figura A.4. Guante Virtual

  • Tracker 3D

El Tracker o posicionador, tiene como objetivo capturar la posición u orientación de un objeto en el mundo real para luego enviar esta información al mundo virtual. Para navegar dentro del mundo virtual, el Tracker puede ser colocado estratégicamente en la mano donde se encuentra el guante virtual, cuando la mano se mueva en el mundo real, el receptor del Tracker captará el movimiento y la retroalimentación en el mundo virtual se verá reflejada con el movimiento de un objeto, de la cámara o de la vista principal [20].

Existen trackers que miden 3 grados de libertad (Degrees Of Freedom), que corresponden a las coordenadas X, Y y Z; y otros que miden 6 grados de libertad adicionando los anteriores e incluyendo los ángulos de rotación del eje X, Y y Z (Yaw, Pitch y Roll respectivamente). Los valores de las coordenadas dependen del lugar en donde se encuentre el transmisor.

La forma de recoger la información del Tracker 3D depende de la tecnología que utiliza, en este caso revisaremos el tracker electromagnético.

El Tracker electromagnético está compuesto de tres partes: el receptor, el emisor y la unidad central. Las coordenadas del emisor son enviadas a través de un campo magnético producido por el receptor que se encuentra en un lugar fijo y cercano a los emisores, ambos conectados a la unidad central. Son muy sensibles a interferencias magnéticas y su alcance es de 1.5 metros; mientras el emisor se aleja del receptor los datos pierden precisión (figura A.5).

edu.red

Figura A.5. Tracker electromagnético Polhemus

  • Immersa Desk

Este dispositivo de proyección fue creado por el Laboratorio de Visualización Electrónica (EVL) en la Universidad de Illinois, Chicago, Estados Unidos.

Immersa Desk consiste en una pantalla de 1.27 metros de largo por 1.7 metros de ancho (figura A.6), con un sistema de proyección posterior, dispone de sensores de movimiento para la cabeza y las manos y emplea los lentes estereoscópicos para presentar las imágenes en 3D [26]. Este dispositivo es comúnmente usado en aplicaciones educativas de Realidad virtual en donde se puede interactuar con un pequeño grupo de niños simultáneamente.

edu.red

Figura A.6 Immersa Desk

  • CAVE

El CAVE (Cueva Automática para Ambientes Virtuales) fue desarrollada por el mismo grupo EVL en la Universidad de Illinois, Chicago, Estados Unidos.

Este dispositivo de proyección es implementado dentro de un cuarto en donde las paredes, el techo y el piso son usados como pantallas para proyectar el mundo virtual (figura A.7).

edu.red

Figura A.7 Un CAVE en realidad virtual permite al usuario moverse naturalmente.

El CAVE y su sistema de proyección posterior, utiliza cuatro pantallas para rodear al usuario y crear la sensación de inmersión.

Las pantallas son ordenadas de tal manera que se forma un cubo, tres paredes con proyección posterior y una proyección hacia el piso que se coloca en el techo.

El espectador lleva puesto unas gafas estereoscópicas y un tracker en su cabeza de 6 grados de libertad (6 DOF). Cuando el espectador interactúa con el tracker dentro del CAVE, la perspectiva para cada proyección es calculada para cada pared.

Los objetos en el CAVE no solo aparecen en las paredes, sino que también se proyectan dentro del cubo, permitiendo al espectador interactuar directamente con él, semejando la interacción con los objetos reales (figura A.8). [27].

edu.red

Figura A.8 Cave

ANEXO B.-Tabla de calibración

Valor Tracker

Valor Real

Error sin calibración

x

y

x

y

x

y

0,73

-0,93

0,73

-0,93

0,00

0,00

0,77

-1,04

0,73

-0,93

0,04

-0,11

0,85

-1,13

0,73

-0,93

0,12

-0,20

0,94

-1,23

0,73

-0,93

0,21

-0,30

1,03

-1,32

0,73

-0,93

0,30

-0,39

1,11

-1,42

0,73

-0,93

0,38

-0,49

1,18

-1,52

0,73

-0,93

0,45

-0,59

1,27

-1,63

0,73

-0,93

0,54

-0,70

1,38

-1,75

0,73

-0,93

0,65

-0,82

1,55

-1,88

0,73

-0,93

0,82

-0,95

1,80

-2,03

0,73

-0,93

1,07

-1,10

2,25

-2,20

0,73

-0,93

1,52

-1,27

3,22

-2,42

0,73

-0,93

2,49

-1,49

2,64

-0,97

0,73

-0,93

1,21

-1,90

2,73

-1,09

2,73

-1,09

0,00

0,00

2,78

-1,19

2,73

-1,09

0,09

-0,10

2,89

-1,29

2,73

-1,09

0,14

-0,20

2,96

-1,38

2,73

-1,09

0,25

-0,29

3,05

-1,48

2,73

-1,09

0,32

-0,39

3,14

-1,59

2,73

-1,09

0,41

-0,50

3,23

-1,69

2,73

-1,09

0,50

-0,60

3,32

-1,81

2,73

-1,09

0,59

-0,72

3,44

-1,94

2,73

-1,09

0,68

-0,85

3,65

-2,09

2,73

-1,09

0,80

-1,00

4,00

-2,26

2,73

-1,09

1,01

-1,17

4,80

-2,46

2,73

-1,09

2,87

-1,37

4,62

-1,02

4,62

-1,09

0,00

0,00

4,72

-1,14

4,62

-1,14

0,10

-0,09

4,79

-1,23

4,62

-1,14

0,17

-0,19

4,86

-1,33

4,62

-1,14

0,24

-0,28

4,95

-1,42

4,62

-1,14

0,33

-0,38

5,02

-1,52

4,62

-1,14

0,40

-0,47

5,10

-1,61

4,62

-1,14

0,48

-0,58

5,17

-1,72

4,62

-1,14

0,55

-0,69

5,25

-1,83

4,62

-1,14

0,63

-0,81

5,33

-1,95

4,62

-1,14

0,71

-0,96

5,43

-2,10

4,62

-1,14

0,81

-1,12

5,62

-2,26

4,62

-1,14

1,00

-1,16

6,00

-2,52

4,62

-1,14

1,38

-1,38

6,59

-1,06

4,62

-1,14

1,97

-0,08

6,67

-1,15

6,67

-1,23

0,00

0,00

6,75

-1,23

6,67

-1,23

0,16

-0,08

6,85

-1,31

6,67

-1,23

0,26

-0,16

6,93

-1,40

6,67

-1,23

0,34

-0,25

7,00

-1,49

6,67

-1,23

0,41

-0,34

7,05

-1,59

6,67

-1,23

0,46

-0,44

7,12

-1,68

6,67

-1,23

0,53

-0,53

7,16

-1,78

6,67

-1,23

0,57

-0,63

7,19

-1,90

6,67

-1,23

0,60

-0,75

7,18

-2,03

6,67

-1,23

0,59

-0,88

7,10

-2,19

6,67

-1,23

0,51

-1,04

7,10

-2,19

6,67

-1,23

0,51

-1,04

6,90

-2,42

6,67

-1,23

0,31

-1,27

Referencias bibliográficas

  • [1] Ricardo Hernández Patiño, Avances en la Investigación Científica en el CUCBA, www.cucba.udg.mx, año 2006

  • [2] Alejandra Muñoz, Juegos Educativos y materiales manipulativos: un aporte a la disposición para el aprendizaje de las matemáticas, página web biblioteca.uct.cl, año 2005

  • [3] Diego Levis, Realidad virtual y Educación, página web http://www.arrakis.es/~dlevis/diecom, año 1997

  • [4] Giti Javidi, Virtual Reality and Education,EEUU- Florida año 1999

  • [5] José María Gairín Sallán, Efectos de la utilización de juegos educativos en la enseñanza de las Matemáticas, página web www.ddd.uab.cat Zaragoza, año 1990

  • [6]  Rosa M. Carro, Generación de Juegos Educativos Adaptativos, Interacción 2002. Actas del III Congreso Internacional de Interacción Persona-Ordenador, año 2002.

  • [7]  Clements- Swaminathan, Technology and school change; New lamps for old?, Artículo por Douglas H. Clements; Childhood Education, Vol. 71, año 1995

  • [8] Schacter J, The impact of Education Technology on Student Achievement, página web http://www.mff.org/pub, año 2002

  • [9] Roy Kfir, Virtual Laboratories in education, Computer graphics, virtual reality, visualisation and interaction in Africa, año 2003

  • [10] Furness- Winn, The impact of three Dimensional Immersive Virtual Environments on modern Pedagogy. Global Change, VR and Learning Workshops, año 1998

  • [11] Sector Semántica, Paradigmas de Aprendizaje, página web www.sectormatematica.cl, año 2010

  • [12] Youngblut, Educational Uses of Virtual Reality Technology, Institute for Defense Analyses, 1998

  • [13] Open Learning Technology Corporation, Learning with Software: Pedagogies and Practice, scout.wisc.edu/Projects Australia, año 2001

  • [14] Definición de que es un juego, página web es.wikipedia.org/wiki/Juego, año 2010

  • [15] Adams Rollings, Fundamentals of Game Design, año 2009

  • [16] First Person Shooter, página web http://en.wikipedia.org/wiki/First-person_shooter, año 2010

  • [17] Hao Wu, Virtual Reality: improving the fidelity of architectural visualization, página web etd.lib.ttu.edu/theses, año 2005

  • [18] Auld, L., Pantelidis, V., Virtual reality: the Virtual Reality and Education Laboratory at East Carolina University, página web vr.coe.ecu.edu/, año 1999

  • [19]  William R. Sherman, Alan B. Craig, Understanding Virtual Reality, Elsevier Books Oxford, año 2003

  • [20]  Ko Cheng, Virtual Reality and Java 3D, IEEE Computer Graphics and Applications, vol. 19 año 1999

  • [21] Rodrigo Cadena Martínez, Motor de realidad virtual para escenarios 3D, página web itzamna.bnct.ipn.mx, año 2008

  • [22] Cristina Díaz Busch, José Luis Paz Moscoso, Realidad virtual: Visión Artificial, página web http://www.varpa.es, año 2006

  • [23] Computer Graphics, Recent Developments and Applications of haptic Devices, Computer Graphics Forum Vol.22 Number 2, año 2003

  • [24] Isdale, What is Virtual Reality?, página web vr.isdale.com/WhatIsVR.html, año 2002

  • [25] Powers – Darrow, Special Education and Virtual Reality: Challenges and Possibilities, Journal Research on Computing Education ,año 1994

  • [26] Czernuszenko – Pape, The ImmersaDesk and Infinity Wall Projection-Bases Virtual Reality Displays, ACM SIGGRAPH Computer Graphics Volume 31,  año 1997

  • [27] Pape,D., Cruz-Neira,C, Czernuszenko, CAVE User's Guide Electronic Visualization Laboratory, página web www.evl.uic.edu/pape/CAVE, año 2002

  • [28]  Winn, W., Technological Horizons in Education Journal Virtual Reality: New Frontiers in Education, página web http://jme.sagepub.com, año 1995

  • [29] Salzman, M., Dede, C, ScienceSpace: Virtual Realities for learning complex and abstract scientific concepts. IEEE Computer Graphics and Applications, año 1999

  • [30]  OpenSceneGraph, descripción de las características del OSG, página web http://www.openscenegraph.org/, año 2010

  • [31] Qué es el OpenScenceGraph, página web http://en.wikipedia.org/wiki/OpenSceneGraph, año 2010

  • [32] Herrera Pedro, Martín de Blas, Sistema multiagente con capacidad de percepción y toma de decisiones en un entorno 3D, año 2008

  • [33] Vortex, descripción del motor de física para OSG, página web http://www.vxsim.com/en/software/vortex_osg/index.php, año 2010

  • [34] Universidad de Navarra Servicios Informáticos, qué es 3DStudio Max, página web www.unav.es/SI/servicios/manuales.html año 2007

  • [35] SDL, Librería SDL, página web http://www.libsdl.org/, año 2010

  • [36] OsgEXP, OsgExporter, página web http://www.osgart.org/wiki/Using_osgExp_for_3DS_Max, año 2010

  • [37] Visual C++, descargar Microsoft Visual C++ Express Edition, página web http://visual-c.malavida.com/, año 2009

  • [38] Polhemus SDK, cómo funciona el SDK de Polhemus, página web http://www.polhemus.com/polhemus_editor/assets/DealwithSpeed.pdf, año 2010

  • [39]  5DT Data Glove SDK, Manual de instalación, CD de instalación del 5DT Data Glove, año 2009

  • [40] D. Andolsek, Virtual Reality in Education and Training, International Journal of Instructional Media, año 1995

  • [41]  Especificaciones del Polhemus Liberty, página web, http://www.vrlogic.com/html/polhemus/liberty.html, año 2010

  • [42] Especificaciones 5DT Data Glove, página web, http://www.vrealities.com/5dtglove14.html, año 2010

  • [43] Especificaciones Dell Workstation, página web, http://www.dell.com/us/en/dfb/desktops/precn_t7400, año 2010

  • [44] Especificaciones del proyector DepthQ, página web, http://giz3d.com/949/3d-projectors/benq-stereoscopic-3d-projector-series-benq, , año 2010

  • [45] Sistemas Inmersivos y Aplicaciones de Realidad Virtual, Página web, http://www.labsis.usc.es/mar/DEA/ , año 2010

  • [46] Volodymyr V. Kindratenko, A survey of electromagnetic position tracker calibration techniques, página web http://www.ncsa.uiuc.edu/~kindr, año 2000

  • [47] Rudolph Darken , Mixed – Dimension Interaction in virtual environments, Proceedings of the ACM symposium on Virtual reality software and technology, año 2005

  • [48] Peng Song, Hang Yu, Vision – based 3D finger interactions for mixed reality games, International Conference on Virtual-Reality Continuum and Its Applications in Industry, año 2009

  • [49] Miguel Ángel García Ruiz, La tecnología de realidad virtual aplicada a la educación: el futuro ya está aquí, www.hrl.uoit.ca/~miguelga/Realidad_virtual_educacion_Iridia.pdf, año 2010

  • [50] Proyecto Alice, Alice: An educational software that teaches students computer programming in a 3D environment, página web, www.alice.org, año 2010

 

"DISEÑO E IMPLEMENTACIÓN DE UN JUEGO MATEMÁTICO DE DISPAROS EN 3D Y ANÁLISIS DE LOS DISPOSITIVOS INTERACCIÓN DE 2D Y 3D"

Autores: Vanessa Ivonne Echeverría Barzola & Iván Francisco Silva Feraud

Enviado por:

Ing.+Lic. Yunior Andrés Castillo S.

"NO A LA CULTURA DEL SECRETO, SI A LA LIBERTAD DE INFORMACION

Santiago de los Caballeros,

República Dominicana,

2015.

"DIOS, JUAN PABLO DUARTE Y JUAN BOSCH – POR SIEMPRE"®

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente