¿Qué son los ambientes virtuales inmersivos?
Los ambientes virtuales inmersivos son espacios tridimensionales, reales o imaginarios, generados por computadora, con los que el usuario puede interactuar y que le producen la sensación de estar dentro de un ambiente o lugar. La sensación de presencia se genera cuando se integran varios elementos, como son una rápida generación de varias imágenes de alta calidad por segundo, desplegadas en un área que cubra un amplio grado de campo de visión del usuario, y que resultan cuando el usuario interactúa al moverse o modificar el espacio y sonido espacial relacionado con el ambiente al que se da vida. Para que la interacción en estos ambientes sea de la forma mas natural posible, se recurre al uso de dispositivos especiales que nos permiten una manipulación natural con el ambiente, como pueden ser el uso de guantes, sistemas de rastreo de movimiento, o interfaces de entrada muy específicos, estrechamente vinculados con el ambiente en que se trabaja. Por ejemplo, en simuladores de manejo se utilizan volantes y palancas de velocidades, o en el caso de simulación para cirugía se utilizan simuladores de los instrumentos, según la cirugía en cuestión.
Una de las ventajas de poder utilizar ambientes virtuales inmersivos es accesar a espacios inaccesibles o con riesgo, y poder modificar los eventos que ahí ocurren. Por ejemplo: recorrer libremente ambientes arquitectónicos ya desaparecidos; diseñar edificios, casas , autos u otros objetos, teniendo una proyección en escala real y realizar modificaciones antes de pasar a la construcción real. Recrear ambientes para entrenamiento que serían muy costosos o no son posibles, por ejemplo, para el adiestramiento en casos de siniestros, en los ambientes virtuales se pueden generar diversas situaciones de riesgo y el usuario puede interactuar con respecto a el, permitiendo tener fallas, lo que en una simulación real podría ser peligroso o de alto costo.
Diferencias con ambientes virtuales no inmersivos
Existen varios sistemas tridimensionales interactivos como son los creados con VRML (Virtual Reality Modeling Language), con alto grado de interactividad y fácil acceso desde páginas web. Estos mundos virtuales se les conoce como no inmersivos, ya que carecen de la sensación de presencia, la cual se logra con el uso de hardware especial de despliegue, dispositivos, audio espacial y la generación de espacios tridimensionales con escala 1 a 1 con el mundo real.
Ventajas de los ambientes inmersivos sobre los no inmersivos
Las ventajas se producen al tener capacidades con las que no se cuentan en los sistemas no inmersivos. La libertad y amplitud de movimiento en la escena generada, las sensaciones que se producen con el sonido espacial y la retroalimentación táctil, los mayores detalles al visualizar y la escala a la que se proyectan los ambientes. Por ejemplo, en los casos de manufactura y arquitectura, el poder analizar los objetos en escala real, permite tomar decisiones, realizar y observar las modificaciones en el espacio del objeto. En aplicaciones como las de psicología o entrenamiento tener un despliegue que cubre la mayor parte de campo de visión del usuario, crea la sensación de estar dentro, generando mayor impacto en las sensaciones generadas, que son importantes en esta clase de aplicaciones. En el área de visualización de datos, el análisis de estructuras complejas se amplía cuano el usuario puede moverse entre los datos que está visualizando, lo que permite analizar y relacionar resultados desde otros puntos de vista.
Requerimientos en software de las aplicaciones inmersivas
Los ambientes virtuales inmersitos, dependiendo de la aplicación a la que estén dirigidas, requieren de alguno o varios de los siguientes elementos:
- Cargadores de escenas 3D Éstos son componentes de software que permiten leer desde uno, o varios archivos, en diversos formatos la escena 3D o las partes que forman la escena 3D, como son: geometrías, imágenes, personajes, sonidos, etc.
- Diversas formas de navegación Las formas de navegación son las opciones con las que el usuario cuenta para mover los objetos virtuales, inspeccionarlos o moverse a través de la escena. Algunas de estas formas de navegación son, por ejemplo: el moverse alrededor del objeto, ubicado en el centro de su visión, “volar libremente” en una escena 3D o simular que el usuario camina en la escena 3D.
- Manejo de colisiones Dependiendo de las formas de navegación, se puede requerir atravesar cualquier objeto para la navegación libre o que se detectan las colisiones con los objetos para simular que el usuario camina por la escena 3D.
- Animación de objetos Las escenas 3D pueden contener elementos no estáticos, como objetos animados desde dentro de la aplicación o animaciones creadas con algún software de animación.
- Simulación de física Para incrementar el realismo en las escenas 3D es necesario implementar una simulación de física que permita a los objetos ser afectados por la gravedad, que haya fricción entre ellos, que puedan aplicarse fuerzas a mecanismos, etc.
- Integración de personajes Se pueden agregar personajes a las escenas 3D, ya sea para tener un avatar que nos guíe atraves del mundo virtual o para incrementar el realismo de la escena, al tener muchos personajes que pasean en ella.
- Inteligencia Artificial Para la simulación de comportamientos complejos dentro de los ambientes virtuales, se requiere la implementación de algoritmos de inteligencia artificial. Por ejemplo: para determinar que metas requiere cumplir un usuario en una aplicación de entrenamiento o para simular el comportamiento de dos grupos de personas caminando en un cruce de dos calles de una ciudad.
- Sonido espacial La escena puede contener sonidos que tienen posiciones específicas en el espacio 3D, de manera que el usuario que navegue en ella tenga la sensación auditvamente se que esta en un ambiente real.
- Programación de despliegue en espacios envolventes El despliegue de la aplicación de realidad virtual inmersiva se puede realizar en cascos, caves (seis pantallas que forman un cubo dentro del cual está el usurio), pantallas curvas, etc; los cuales dan la sensación de que la escena 3D envuelve al usuario.
- Integración de interfaces de interacción Para interactuar con las escenas 3D, existen diversos dispositivos que permiten manipular los objetos virtuales. Por ejemplo, guantes electrónicos para “tomar” moléculas virtuales o los complejos brazos electro-mecánicos (llamados dispositivos hápticos) para las simulación de cirugias.
Opciones de desarrollo comercial
Para la integración de los elementos mencionados anteriormente existe software comercial que permite desarrollar las aplicaciones por medio de programación visual, como son los paquetes de Virtools y Quest3D, entre varias opciones. Estas aplicaciones funcionan en plataformas Windows y excluyen plataformas como Linux e Irix. Además son herramientas de costo muy elevado por estar enfocados al mundo comercial.
Desarrollo con software libre
Con la finalidad de buscar la portabilidad de las bibliotecas en los diferentes sistemas, la distribución y el uso del software de forma libre, además de adquirir el conocimiento y la capacitación en el desarrollo de estas aplicaciones, en el Departamento de Realidad Virtual de la DGSCA se optó por la programación de las aplicaciones, integrando diferentes bibliotecas de software libre.
Para desarrollar alguna de las aplicaciones, se pueden conjuntar varias bibliotecas de software libre que cubren cada una de las partes requeridas. Al centro de éstas se requiere de una estructura para manipular los objetos geométricos que forman la escena. A esta estructura se le conoce como grafo de escena que nos permite realizar una optimización del ambiente que estamos creando. Existen varias bibliotecas gráficas que cubren este nivel la aplicación, entre ellas podemos mencionar OpenSceneGraph, OpenSG, Inventor y OGRE. Todas ellas son programables a partir del lenguaje C++ y como cada una define su grafo de escena, tienen diferencias que las hacen adecuadas a diversos tipos de aplicación. Podemos mencionar que el rendimiento en escenas de grandes bases de datos es mejor en OpenSceneGraph, y OpenSG, pero la implementación de manipuladores y métodos de interacción son mas accesibles desde Inventor.
Nuestra mejor experiencia ha sido con OpenSceneGraph, que entre sus ventajas cuenta con una gran cantidad de loaders de geometría para cargar modelos y animaciones con base en transformaciones de rotación y traslación de los objetos cargados. Esto nos permite generar modelos desde Maya, 3DMax, Multigen o Blender, en los cuales existen plug-ins que facilita exportar luces, animaciones, materiales y texturas. A partir del grafo de escena, la funcionalidad de el mundo virtual como: colisiones, física , personajes, inteligencia artificial e integración de dispositivos se realiza incluyeno otras bibliotecas.
Incluir la animación de objetos, a través de transformaciones básicas como son traslaciones, rotaciones y escalas, se puede hacer directamente desde los modeladores 3DMax o Maya, con formatos directos de animación sobre los nodos de OpenSceneGraph o utilizando el formato de VRML.
Para utilizar la integración de caracteres basados en esqueletos (como son los humanos ) se utiliza la biblioteca osgCal, que integra a Cal3D dento de OpenSceneGraph. Para la creación de personajes con animaciones, se utiliza la biblioteca Replicant Body desarrollada por la Universidad de Umeå en Suecia, la cual está desarrollada sobre OSG y Cal3D, y nos permite integrar un conjunto de personajes, a los cuales se les asocia diferentes animaciones como: caminar, correr, saludar , etc, que pueden ser controladas de forma interactiva y acceder a los movimientos y acciones de los personajes dentro de los ambientes virtuales.
Para la simulación de física newtoniana sobre los objetos, (crear efectos de caidas, bote , choques) se utilizan bibliotecas que nos permitan calcular dinámica de cuerpos rígidos, como son las bibliotecas ODE, Newton y Bullet. Cada una de ellas posee diferentes implementaciones de los mismos algoritmos de física.
El sonido espacial se refiere a la posibilidad de asociar sonido a los objetos en la escena que nos proporciona claves auditivas sobre el ambiente en cuestión: por ejemplo, si el usuario está atravesando una calle pueda identificar donde está el sonido del auto con respecto a la distancia o la dirección, si nos acercamos a una fuente de sonido, ésta será más clara y localizada por el objeto que la emite, acuerdo con los movimientos del usuario a través del espacio. Para la generación de sonido espacial se utiliza la biblioteca llamada OpenAL, que fue desarrollada por Creative Labs. Y osgAL, que es la integración de openAL++ con OSG desarrollada por el laboratorio VrLab de la Universidad de Umeå.
Para la integración y el manejo de dispositivos se ha utilizado la biblioteca de vrJuggler. Esta biblioteca fue creada por la Dr. Carolina Cruz-Neira y un conjunto de estudiantes del Centro de Aplicaciones de Realidad Virtual de la Universidad de Iowa State. Este proyecto tiene la filosofía de crear aplicaciones de realidad virtual totalmente portables de los dispositivos. La ventaja de utilizar vrJuggler es que se puede desarrollar las aplicaciones en sistemas de bajo costo con pocos dispositivos como joystick, y despliegue en monitor en un modo simulado y después, por medio de archivos de configuración, transportar las aplicaciones a dispositivos mayores, como a una o varias pantallas envolventes con sistemas de rastreo de movimiento, como son los Cave con 4 ó 6 paredes de proyección envolvente o cascos de realidad virtual con dispositivos de interacción. Además de poder transportar la aplicación de un ambiente de una sola máquina a un sistema de cluster de varios nodos.
Algunas de las aplicaciones desarrolladas
Navio
NAVIO es un visualizador para espacios arquitectónicos, cuyas siglas significan Navegador de Ambientes Virtuales Interactivos y Optimizados. Este software fue desarrollado en el grafo de escena OpenSceneGraph e integra la biblioteca de vrJuggler. Este sistema facilita a los usuarios de ambientes arquitectónicos cargar sus modelos y realizar navegación en el espacio como si estuvieran dentro de él, sin permitirles atravesar paredes; caminar según el terreno del espacio tridimensional; grabar recorridos que quieran reproducirse en tiempo posterior; manejar sonido espacial; planos de corte, que permiten la mejor visualizacion del espacio; manejo de diversas geometrías que pueden intercambiarse para mostrar, por ejemplo, diferentes etapas en el tiempo del espacio arquitectónico. Este navegador es portable para Windows, Linux e Irix, y permite interactuar con el espacio a través de un sistema de rastreo de movimiento y mouse tridimensional, con el que podemos navegar a través del espacio con una navegación más natural. Este sistema es de código abierto, fue desarrollado en el Departamento de Realidad Virtual, DGSCA, UNAM, y es de libre distribución. Entre sus ventajas, debido a que está desarrollado sobre vrJuggler, puede ser utilizado en diversos dispositivos de ambientes virtuales inmersivos que van desde CAVES, pantallas curvas, como es el caso del Observatorio de Visualizacion Ixtli, cascos de realidad virtual o simples estaciones de trabajo con simulación de dispositivos de interacción.
Programadores: Ing. Miguel Miranda(DGSCA), Ing. Jose Larios Delgado(DGSCA), M. en C. Daniel Alejandro Cervantes Cabrera(DGSCA).
Aparato fonador humano
Para esta aplicación, que se realizó en conjunto con el Centro de Estudios para Extranjeros y la Dra. Rosa Esther Delgadillo, se creó un visualizador que permite reproducir diversos sonidos, y los elementos anatómicos involucrados en ellos, para mostrar al alumno cómo debe generarse la pronunciación de sílabas y palabras. Esta aplicación está orientada a la enseñanza del español para extranjeros. Aquí era muy importante cuidar la sincronización de la generación del sonido junto con el movimiento del avatar que muestra cómo debe realizarse, por lo que se utilizaron, por un lado, la biblioteca de osgCal para la integración del personaje que genera los sonidos y osgAL que sincroniza el audio con los movimientos del personaje.
Programadores: Pas. de Ing. Uriel Quezada (CEPE),Pas. de Ing. Gerardo Cardelas Gómez(CEPE), Mat. Renato Leriche Vázquez (DGSCA), M. en C. Daniel Alejandro Cervantes Cabrera(DGSCA).
Tratamiento de fobias
En una colaboración conjunta con la Facultad de Psicología de la UNAM, con el grupo a cargo de la Dra. Georgina Cárdenas, se trabajó en la elaboración de varios ambientes para el tratamiento de desórdenes de agorafobia. En estas aplicaciones se integraron varias características como son: personajes, colisiones, efectos de visión borrosa y de túnel, y manejo de sonido espacial. La opción de poder integrar varios personajes y aumentar su número se hizo a través del uso de Replicant Body, que inlcuye diversos comportamientos de los personajes, de forma aleatoria. La programación de la visión de túnel y visión borrosa se realizó directamente en OpenSceneGraph y el manejo de sonido espacial con la biblioteca de osgAL.
Programadores: Pas. de Ing. Mauricio Flores Gerónimo(Psicología), Mat. Renato Leriche Vázquez(DGSCA).
Conclusiones
Es posible realizar las aplicaciones de realidad virtual a partir de la conjución de varios proyectos de software libre. Actualmente, al no existir un estándar en software para el desarrollo de aplicaciones virtuales inmersivas, encontramos varios proyectos de bibliotecas de código abierto que implementan de forma separada cada una de las partes que se requieren en una aplicación. Es decir encontramos diversidad en grafos de escena, bibliotecas de física, de manejo de personajes, sonido, interfaces, etc. De aquí que el primer paso, que es la selección del conjunto de bibliotecas sea largo, porque además de analizar si cumplen con los requerimientos que la aplicación pide, se debe asegurar la compatibilidad entre las diversas bibliotecas. Al ser proyectos independientes, encontramos que pueden o no ser compatibles entre si, o hay que modificar en código para que se logre esa compatibilidad. Este proceso de integración puede resultar largo, pero se obtienen varias ventajas, como es la optimización de código, la posibilidad de modificar las bibliotecas y la portabilidad de las aplicaciones.
Una gran ventaja de desarrollar en esta forma es que la gama de aplicaciones que se pueden construir es muy amplia, ya que contrario a lo que suele ocurrir en las bibliotecas comerciales que se enfocan a una cierta clase de aplicaciones, al conjuntar las bibliotecas de software libre, se eligen las adecuadas para los requerimientos de la aplicación que se está implementando, ampliando la capacidad para el desarrollo de las aplicaciones.
- María del C. Ramos, José Larios, Daniel Cervantes y Renato Leriche
|
|
RAMOS NAVA, María del Carmen, Larios Delgado, José, Cervantes Cabrera,Daniel y Leriche Vázquez , Renato “Creación de ambientes virtuales inmersos con software libre”. Revista Digital Universitaria [en línea]. 10 de junio 2007, Vol. 8, No. 6. [Consultada: 11 de junio de 2007]. Disponible en Internet: ISSN: 1607-6079. |
Bibliografía
BURDEA, Grigore C., Philippe Coiffet. Virtual Reality Technology. Second Edition, iley-IEEE, 2003.
UST, Christopher, Kevin Meinert, Allen Bierbaum, and Patrick Hartling. Open Source Virtual Reality. Proceedings of the IEEE Virtual Reality 2002 (VR.02), 2002.
HERMAN, William R., Alan Craig. Understanding Virtual Reality: Interface, Application, and Design. Morgan Kaufmann.
Sitios de interés:
www.openscenegraph.org
www.opensg.org
www.tgs.com
www.vrjuggler.org
www.openal.org
www.vrlab.umu.se/research/osgAL
www.vrlab.umu.se/research/replicantbody/
gna.org/projects/cal3d/
Descargar en PDF |