La Tecnología de la Realidad Virtual.

Definición.

Cuando hablamos de la tecnología de Realidad Virtual (RV) nos referimos a sistemas computarizados capaces de generar un entorno tridimensional (3D) interactivo, inmersivo y multisensorial. Como resultado de su naturaleza interactiva, una aplicación de RV será capaz de reaccionar de inmediato (en tiempo real) ante la actividad del usuario frente a una situación o evento que se le presenta. Esta reacción, percibida por el usuario origina una ilusión de presencia real en el seno del ambiente simulado [1].


Figura 1. Izq.: Head Mounted Display (HMD). Der.: Entorno CAVE utilizado con VIRTUAL FIRES [4].

El grado de inmersión dependerá en buena medida en los recursos de equipamiento (hardware) de que se disponga. Numerosos sistemas se han desarrollado con el objetivo de procurar distintos grados de inmersión, desde las simulaciones en PCs de sobremesa (Figura 2), conocidas como Fish Tank VR (RV de Pecera) [2], los sistemas montados en cascos o Head Mounted Displays (HMD), hasta los carísimos sistemas CAVE (Cave Automatic Virtual Environment) en los que el entorno generado por computador rodea totalmente al usuario (Figura 1).

 La opción Fish Tank resulta sumamente efectiva en relación con su bajo costo, especialmente ahora que se dispone de pantallas LCD de dimensiones cada vez mayores y tarjetas gráficas 3D con aceleración por hardware a precios asequibles. Una variante consistiría en el uso de un proyector para mostrar la imagen virtual en una pantalla de mayor tamaño [9], lo que permitiría la participación de varios usuarios en una sala de reuniones (Figura 4, abajo).


Figura 2. Simulador de conducción de naves utilizando tres pantallas LCD. Demostración de Ship Simulator. Wereld Haven Dagen (World Harbour Days) Rotterdam, Agosto 2006 [7].


Un grado de inmersión aún mayor pudiera obtenerse a partir de presentaciones estereoscópicas, en pantallas especiales o mediante el uso de gafas con lentes coloreados o polarizados (Figura 3) [4]. Pero estos sistemas utilizados durante períodos largos de tiempo (más de media hora) tienden a producir mareos [2][6]. A pesar de esto, la estereoscopía se está utilizando como elemento de promoción de la industria cinematográfica, que la presenta falsamente como algo nuevo. Pero lo cierto es que la tecnología utilizada -a base de la proyección a través de filtros polarizadas- ya se utilizó en la década de 1950. Y el resultado fue que acabó aburriendo al público y cayendo en el olvido.


Figura 3. Imágenes estereoscópicas, izq.: anaglifo para ser visto con gafas verde-rojo, der.: Sistema ColorCode® para ser visto con gafas azul-ámbar [4]. Este último sistema permite la percepción de colores en la imagen estereoscópica resultante.

En un sistema Fish Tank es posible acoplar la vista que se presenta en pantalla a los movimientos de la cabeza del usuario, en lo que suele denominarse tracking. Debido a la interrelación de los aparatos sensoriales del ser humano, la información originada a partir de los distintos sentidos y en especial la percepción kinestésica relacionada con los movimientos del organismo, unida a los cambios percibidos en la imagen visual resulta crucial para la comprensión del espacio. Las experiencias realizadas por Ware, Arthur y Kellog [2] demuestran la posibilidad de sustituir la estereoscopía por el tracking con resultados comparables e incluso superiores en lo que se refiere al desempeño exitoso de tareas en un espacio virtual. Aunque es posible controlar un sistema de estas características con un dispositivo 2D como el ratón, también en este campo se vienen produciendo innovaciones a pasos agigantados, pudiendo señalarse como ejemplo los sistemas Wii, en los que el puntero 3D cuenta además con respuestas de carácter háptico. En este contexto debe hacerse referencia al trabajo de J. Chung Lee, ampliamente difundido a través de Internet [10].

El Grupo Investigador de Expresión Gráfica en la Ingeniería (EGICAD), pionero en estos temas dentro de la Universidad de Cantabria, cuenta actualmente con SOROLLA (Figura 4), un sistema prototipo que reúne todas las características mencionadas, diseñado y construido por el grupo ARTEC del Departamento de Robótica de la Universidad de Valencia. Este equipo dispone de dos pantallas de gran formato, de uso alternativo, donde la inmersión se logra mediante el uso de un par de proyectores para estereoscopía pasiva basada en luz con polarización circular. La primera pantalla, para trabajo en modo escritorio, tiene unas dimensiones de 90 x 70 cm. y está realizada en filmscreen no despolarizante con un recubrimiento de cristal laminado. La segunda, para uso en presentaciones, tiene un tamaño de 1,75 x 1,50 m. también en filmscreen no despolarizante. El sistema de tracking óptico está formado por dos cámaras conectadas a un procesador dual para el análisis de imagen en tiempo real. Cuenta con un sistema de interacción y gestión inalámbrico a partir de un dispositivo PDA de alta resolución. Este sistema se ha empleado en el desarrollo de aplicaciones de ayuda a la toma de decisiones en el diseño de carreteras en entorno RV [7][8] y para la evaluación del impacto ambiental [9] de estas infraestructuras.


Figura 4. Sistema SOROLLA, arriba en modo escritorio, abajo en modo presentación. Fuente: Grupo ARTEC, Universidad de Valencia.

Recientemente, con el vertiginoso desarrollo de la Internet, han proliferado los entornos multiusuario en red conocidos como Mundos Virtuales Distribuidos (DVE) [11], que permiten la participación de un gran número de personas, representadas por avatares, en un mismo mundo virtual, (Figura 5).


Figura 5. Escenarios realistas y avatares en el entorno Second Life.

Como ejemplo podemos citar Play2Train [12] un entorno virtual desarrollado en la Universidad de Idaho para entrenamiento contra incidentes de bio-terrorismo sobre la plataforma Second Life (Figura 6). Este entorno virtual abarca dos islas, Asterix y Obelix (65.536 m2 × 2 y de acceso restringido), una de ellas dedicada a simular una ciudad virtual y la otra un hospital virtual. El diseño de estos mundos virtuales corresponde al de los dioramas usados por los servicios de emergencia como apoyo para sus ejercicios. Play2Train se ha utilizado, entre otros, para la simulación de la respuesta a una pandemia de gripe aviar.


Figura 6. Demostración de Play2Train [16].

Software de Modelado 3D.

El procesamiento de modelos 3D (Figura 12) en nuestro entorno se realiza fundamentalmente a partir de  productos Autodesk (y en menor medida Microstation), incluidos en el currículum de todas las ingenierías que se imparten en nuestra Universidad. Sin embargo existen alternativas de libre distribución no exentas de mérito. Resulta interesante la suite Blender [16], distribuida bajo los términos de la Licencia Pública General de GNU (GPL).Blender es un paquete de creación totalmente integrado, que ofrece una amplia gama de herramientas esenciales para la creación de contenido 3D, incluyendo modelado, mapeado uv, texturizado, rigging, weighting, animación, simulación de partículas y otros, scripting, renderizado, composición, post-producción y creación de juegos. Es multiplataforma, con una interfaz unificada basada en OpenGL, por lo que puede ser usado en todas las versiones de Windows, Linux, OSX, FreeBSD, Irix y Sun, etc.Otro modelador gratuito que no debe despreciarse, especialmente por su facilidad de uso es Google Sketchup, con su complemento on-line del
Modelador 3D de edificios. Basta una visita a su Galería 3D en la web para comprender sus posibilidades entre las que no debe olvidarse la posibilidad de integración con Google Earth.

Desarrollo de Aplicaciones Interactivas.

La industria de los juegos de computador o videojuegos ha aportado valiosos productos y tecnologías a un buen número de industrias “serias”. Su tecnología se está introduciendo en campos como la defensa, la medicina, la arquitectura, la educación, el planeamiento de ciudades, etc. La industria del juego es ahora fuente de innovación, tecnología, y productos especialmente para el desarrollo de simuladores para entrenamiento, tanto para uso militar como civil.

Características de los Motores de Juego.

El Motor de Juego (Game Engine) es el componente de software fundamental en la operación del videojuego. El motor de juegos combina los diversos elementos multimedia y los hace trabajar en conjunto. Gestiona la representación gráfica y otras tecnologías necesarias, pero puede también gestionar tareas adicionales tales como la inteligencia artificial que defina el comportamiento de los personajes o la detección de colisiones entre objetos del entorno virtual. El elemento más usual suministrado por un motor de juegos es la capacidad de dibujo en pantalla o render. Pero a ello será necesario incorporar otros subsistemas como son:
  1. Detección de Colisiones, que calcula los efectos del choque entre objetos;
  2. Física, que simula la gravedad y otras propiedades relacionadas con la física;
  3. Inteligencia Artificial (AI), que controla el comportamiento de los personajes y objetos animados creados por el computador;
  4. Gestión de Red, para aplicaciones que se ejecutan en modo multiusuario;
  5. Interfaz Gráfica de Usuario (GUI), que gestiona ventanas, menús, información superpuesta (HUDs), etc.
Un factor de suma importancia es el que se refiere a las prestaciones de Inteligencia Artificial (AI) que aseguren la posibilidad de modelar la conducta de agentes para representar personas aisladas o multitudes. Por su parte, los subsistemas de modelado de propiedades físicas y de detección de colisiones deben asegurar un comportamiento creíble durante el desplazamiento de personas y objetos.
Un último aspecto de suma importancia, que tiene que ver con el personal disponible para acometer el desarrollo de las aplicaciones radica en las opciones que ofrece el motor de juegos en lo que se refiere a lenguajes de programación. Estas oscilan entre la exclusiva posibilidad de programación C++ a medio y bajo nivel en un extremo y en el otro extremo la programación visual que se desarrolla conectando componentes funcionales (cajas negras) en una estructura de árbol, que es característica de Quest3D [17]. Aunque en el entorno universitario es posible encontrar personal especializado en programación a medio y bajo nivel, se considera ventajoso el disponer de otras alternativas más simples.

Criterios para la Elección de un Motor de Juegos.

Los entornos comerciales de desarrollo de gama alta para videojuegos y software de simulación suelen ser, por una parte excesivamente costosos y por la otra suelen conllevar grandes limitaciones en cuanto a las licencias para la distribución del producto terminado. La primera dificultad suele mitigarse en el caso de Departamentos y Grupos de Investigación vinculados a la Universidad por la concesión de licencias educacionales y para investigación a precios reducidos e incluso gratuitas. Pero en caso de que el producto de la investigación amerite su distribución comercial nos encontraríamos con grandes dificultades debido a los términos en que estas licencias educacionales se conceden.
Esto nos ha llevado a investigar el software disponible en el mercado. La 3D Engines Database [18] del sitio Web DevMaster.net incluye un total de 289 entradas. De éstas hemos excluido las que se encuentran en etapas de desarrollo (versiones alfa o beta), quedándonos con 127.Esta selección incluye tanto motores comerciales como de libre distribución. Considerando que el disponer del código fuente puede ser una garantía frente a una posible desaparición del proveedor, que dejara sin soporte y sin posibilidades de desarrollo ulterior a las aplicaciones desarrolladas sobre esa plataforma, hemos seleccionado las 71 que en que el código fuente está a disposición del usuario. Pero de esos 71 motores gráficos 3D, en la mayor parte de los casos se trata de software comercial en que el código fuente sólo se suministra para las licencias más costosas, cuyo precio puede superar los $100,000 y con grandes restricciones para su utilización.Como software de libre distribución y código abierto encontramos sólo 20. De ellas, no todas pueden considerarse incluidas en la categoría de motores de juego, al no cumplimentar requisitos como la posibilidad de programar comportamientos, la animación de caracteres, la Inteligencia Artificial (AI), la gestión de propiedades físicas, la detección de colisiones, etc., quedando como meros motores gráficos 3D que, como OpenSceneGraph, se limitarían a funcionar como subsistemas especializados de los verdaderos motores de juego.

TABLA 1. SOFTWARE OPEN SOURCE ANALIZADO.

Por este motivo establecimos como requisito el cumplimiento de algunos requisitos básicos enunciados en el epígrafe anterior: la implementación de sistemas de modelado de física, las prestaciones de inteligencia artificial, el suministrar la posibilidad de scripting para el control de la aplicación, el disponer al menos de editores interactivos de escenas y el tener previsto el soporte para redes. Estos requisitos sólo son cumplidos por cinco de los paquetes de software analizados (Tabla 1): El plug-in de desarrollo para Blender, Cube 2, Delta3D, Elemental Engine, y Reality Factory.

Análisis de un Motor de Juego.

Como ejemplo de las características deseables en un motor de juego nos prponemos estudiar en más detalle el paquete Delta3D.
Delta3D fue desarrollado en el Modeling, Virtual Environments and Simulation Institute (MOVES) dependiente de las Fuerzas Armadas de Estados Unidos y ubicado en Monterey, California. Ha sido creado precisamente para el desarrollo de simuladores de entrenamiento [20]. Se trata de un API coherente que integra, a manera de módulos, muchas bibliotecas preexistentes (Figura 13).
Figura 13. Estructura modular del Motor de Juegos Delta3D.

Cada uno de estos módulos consiste, ya sea en una de esas bibliotecas de código abierto, o en código fuente desarrollado al efecto por los creadores del sistema. En ambos casos, se ha procurado mantener los diversos módulos tan separados como ha sido posible. Por ello, si uno de los módulos que componen Delta3D es superado por otro proyecto Open Source, resultando no ser ya “el mejor de su clase”, es posible substituirlo sin demasiadas dificultades.
OpenSceneGraph (OSG).
Delta3D utiliza OpenSceneGraph (OSG) como módulo de renderizado. OSG es una biblioteca gráfica 3D Open Source de alto rendimiento, usada por los desarrolladores de aplicaciones en campos tales como la simulación visual, los juegos, la realidad virtual, la visualización científica, y el modelado.
Open Dynamics Engine (ODE).
La simulación de propiedades físicas en Delta3D se logra a partir de la biblioteca Open Dynamics Engine (ODE). ODE es una biblioteca de alto rendimiento para simular la dinámica de cuerpos rígidos.
Character Animation Library 3D (Cal3D).
Para la animación de personajes se utiliza la Character Animation Library 3D (Cal3D). Cal3D es una biblioteca de animación de personajes 3D tridimensional basada en esqueletos escrita en C++. Una útil característica de Cal3D es la de los exportadores, plug-ins para los más populares programas de modelado (tanto de libre distribución como propietarios). Así, los artistas pueden utilizar sus herramientas de modelar preferidas para crear personajes, animaciones, y texturas, y después exportarlas en un formato que Cal3D puede utilizar para controlar los personajes en la aplicación. Además de Cal3D, también se utiliza ReplicantBody, otra biblioteca Open Source para animación de personajes construida sobre Cal3D y OpenSceneGraph, con la que se logra que en el movimiento de un personaje sus pies se mantengan sobre el terreno haciendo que el movimiento de un avatar parezca mucho más real.
Inteligencia Artificial (AI).
La Inteligencia Artificial (AI) se gestiona en Delta3D a partir de las estructuras desarrolladas por J. Orkin [19] para el juego F.E.A.R. El sistema de planeamiento permite que los programadores definan “planes” para que el computador determine cómo llevarlos a efecto. Permite al programador crear comportamientos de AI complejos sin tener que generar un enorme número de estados, como sucedería en el caso de las máquinas de estado finito tradicionales.
Módulos específicos de Delta3D:
  • Editor Gráfico de Niveles:
    El Editor de Niveles (Figura 14) permite a los desarrolladores la construcción de escenarios avanzados sobre una interfaz gráfica. Puede importar todos los formatos de modelos soportados por OSG, de manera que el desarrollador pueda colocarlos en el mundo virtual, definir sus movimientos, insertar disparadores, e incorporar la lógica del juego.
  • Renderizador avanzado para la simulación del terreno y la vegetación.
  • Módulo de características ambientales avanzadas.
  • Editor para Sistemas de Partículas.
    El Editor de Sistemas de Partículas (Figura 15) permite utilizar herramientas gráficas para modificar las características de un sistema de partículas comprobando el resultado de manera inmediata y en tiempo real. Esto acelera el proceso de desarrollo, eliminando la necesidad de ejecutar la aplicación para ver el efecto de cambiar los parámetros de un sistema de partículas.
  • Capacidad de registro y reproducción del desarrollo de la simulación.
  • Visor de Modelos 3D.
  • Lenguaje de scripting.
    Por último hemos considerado la disponibilidad de un lenguaje para el desarrollo de scripts como uno de los factores críticos para el desarrollo de comportamientos avanzados al simulador sin necesidad de recurrir a la programación C++. Para ello Delta3D emplea Phyton, un lenguaje interpretado de uso muy extendido.
Figura 14. Delta3D: Interfaz del Editor de Niveles.

Figura 10. Delta3D: Interfaz del Editor de Sistemas de Partículas.

REFERENCIAS

  1. PM Stothard, JM Galvin, JCW Fowler, “Development, Demonstration and Implementation of a Virtual Reality Simulation Capability for Coal Mining Operations”. Proceedings ICCR Conference, 2004
  2. C. Ware, K. Arthur y K.S. Booth, “Fish Tank Virtual Reality”. INTERCHI ’93, pp. 24-29 abril, 1993.
  3. "Quest3D|Log » Blog Archive » Ship Simulator @ Wereld Haven Dagen", disponible en: http://www.rgb255.nl/questlog/2006/09/13/ship-simulator-wereld-haven-dagen/
  4. J. A. González, C. Valero, J.C. de Francisco, J. Marco. "LA IMAGEN ESTEREOSCÓPICA EN FORMATO DIGITAL. UN NUEVO MEDIO DE EXPRESIÓN." XIV Congerso Internacional de Ingeniería Gráfica, Santander, junio 2002,
  5. M.N. Louka y C. Balducelli, “Virtual Reality Tools for Emergency Operation Support and Training”, TIEMS 2001 International Conference on Emergency Management, 2001
  6. E.M. Kolasinski, “Simulator Sickness in Virtual Environments”. U.S. Army Research Institute for the Behavioral and Social Sciences. Alezandria, Virginia, 1995.
  7. C. Bosch, F. Ballester, C. Otero, M. Fernández, I. Coma, R. Togores et al. “VALLE®: A HIGHWAY DESIGN SYSTEM IN A VIRTUAL REALITY ENVIRONMENT”. Joint International Conference on Computing and Decision Making in Civil and Building Engineering, Junio 14-16, 2006 - Montréal, Canada.
  8. C. Bosch, F. Ballester, C. Otero, M. Fernández, I. Coma, R. Togores et al. “Integración de las Técnicas de Realidad Virtual en el Proceso de Diseño y Revisión de Proyectos de Infraestructuras Viarias: VALLE”. 3er Congreso Internacional Ciudad y Territorio Virtual, Bilbao, octubre 25 al 27 de 2006.
  9. C. Otero, A. Cendrero, V. Bruschi, R. Togores, C. Manchado, R. Arias, "MOYSES V 3.0 MODELADOR Y SIMULADOR DE IMPACTO VISUAL" XVIII Congreso Internacional de Ingeniería Gráfica, Barcelona, 31 Mayo, 1 y 2 de Junio de 2006
  10. J.C. Lee, “Johnny Chung Lee – Projects – Wii”. Documento disponible en: http://www.cs.cmu.edu/~johnny/projects/wii/.
  11. P. Morillo, J.M. Orduña, M. Fernández and J. Duato, "On the Characterization of Distributed Virtual Environment Systems”, en European Conference on Parallel Processing (Euro-Par' 2003), volume 2790 of Springer LNCS, pp. 1190-1198, Klagenfurt, Austria. August 2003. Springer Verlag.
  12. R. Ramloll, J. Beedasy, B. Hudnall, N. Piland, B. Cunningham et al., “Distance Learning and Simulation Technologies to Support Bioterrorism Preparedness Education”, Proceedings of the ISCA 21st International Conference (2006), ISBN: 1-880843-58-7, pp 235-241.
  13. Bazjanac, V., "Virtual Building Environments (VBE) -applying information modeling to buildings." en Ework and Ebusiness in Architecture, Engineering and Construction: Proceedings of the 5th European Conference on Product and Process Modelling in the Building and Construction Industry : ECPPM 2004, 8-10 September 2004, Istanbul, Turkey. Eds. D. Dikbas, R. Scherer, A. Dikbas, S. Raimar. pp. 41-48
  14. D.A. Campbell, "Building information modeling: the Web3D application for AEC" en Proceedings of the twelfth international conference on 3D web technology, pp: 173 – 176 Perugia, Italy, 2007. SIGGRAPH: ACM Special Interest Group on Computer Graphics and Interactive Techniques
  15. J. Cheng and K. H. Law. "Using Process Specification Language for Project Information Exchange," Proceedings of 3rd International Conference on Concurrent Engineering in Construction, pp. 63-74, Berkeley, CA, July 1-2, 2002.
  16. T. Roosendaal, S. Selleri, "The Official Blender 2.3 Guide: Free 3D Creation Suite for Modeling, Animation, and Rendering", No Starch Press (2007).
  17. Ming-Hsin T., Chun-Hsiung H., Jing-Yi Z., "Game programming courses for non programmers" Proceedings of the 2006 international conference on Game research and development, Australia, pp. 219 - 223.
  18. F. Skilton, DevMaster.net - 3D Game and Graphics Engines Database. Disponible en http://www.devmaster.net/engines/
  19. J. Orkin, "Three States and a Plan: The AI of FEAR", Game Developers Conference. San Jose. California. 2006.
  20. P. McDowell, R. Darken, J. Sullivan, E. Johnson, "Delta3D: A Complete Open Source Game and Simulation Engine for Building Military Training Systems" JDMS, Volume 3, Issue 3, July 2006, pp. 143–154