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.
Tomado de: http://oei.es/noticias/spip.php?article823