The Technology of Virtual Reality.


When we talk about Virtual Reality (VR) technology we are referring to computer systems capable of generating an interactive, immersive and multisensory three-dimensional (3D) environment. As a result of its interactive nature, a VR application will be able to react immediately (in real time) to the user's activity in front of a situation or event that is presented to him. This reaction, user-perceived, causes an illusion of real presence within the simulated environment [1].

Figure 1. Left: Head Mounted Display (HMD). Right: CAVE environment used with VIRTUAL FIRES [4].

The degree of immersion depends largely on the resources of equipment (hardware) available. Numerous systems have been developed with the aim of providing different degrees of immersion, from desktop PCs simulations (Figure 2), known as Fish Tank VR [2], the Head Mounted Displays (HMD) or the expensive CAVE (Cave Automatic Virtual Environment) systems in which the computer generated environment completely surrounds the user (Fig. 1).

The Fish Tank option is highly effective in relation to its low cost, especially now that LCD screens become available in always larger sizes and 3D graphics cards with hardware acceleration can be obtained at affordable prices. A variation would be to use a projector to show the virtual image in a larger screen [9], which would allow the participation of multiple users in a meeting room (Figure 4, below). 

Figure 2. Ship driving simulator using three LCD screens. Ship Simulator demonstration. Wereld Haven Dagen (World Harbour Days) Rotterdam, Agosto 2006 [7].

An even greater degree of immersion may be obtained from stereoscopic presentations, using special screens or spectacles with colored or polarized glasses (Figure 3) [4]. But these systems used for long periods of time (half an hour) tend to cause dizziness [2][6]. Despite this, stereoscopy is being used as a promotional item for the film industry, which falsely presents it as something new. But the truth is that the technology used -based on projection through polarized filters, was used in the 1950s. It then fell into oblivion as the public ended up getting bored of it.

Figure 3. Stereoscopic images, left: anaglyph to be seen with red-cyan glasses, right: ColorCode® System to be seen with blue-amber glasses [4]. This last system allows the perception of different colors in the resulting stereoscopic perception.

In a Fish Tank system it is possible to couple the view presented on screen to the user's head movements, in what is often termed tracking. Because of the interconnectedness of the human sensory apparatus, information originating from different senses and especially the related kinesthetic perception of body movements, coupled with the perceived changes in the visual image is crucial to the comprehension of space. The experiments carried out by Ware, Arthur and Kellogg [2] demonstrate the possibility of replacing stereoscopy with tracking, with comparable or even superior results in regards to the successful performance of tasks in a virtual space. Although it is possible to control a system of this kind with a 2D device such as a mouse, in this field innovations have taken place rapidly. Wii systems in which the 3D pointer also has responses of a haptic character can be noted as an example. In this context reference should be made to the work of J. Chung Lee, widely publicized on the Internet [10].

The Graphic Expression in Engineering (EGICAD) Research Group, a pioneer in these areas within the University of Cantabria, currently uses SOROLLA (Figure 4), a prototype system that has all the above features, designed and built by the ARTEC group from the University of Valencia Robotics Department. This unit has two large screens, which can be used alternatively, where immersion is achieved by using a pair of passive stereoscopic projectors based on circular polarized light. The first screen designed for work in a desktop mode, has a size of 90 x 70 cm. made out of non-depolarizing filmscreen covered with laminated glass. The second one, used in group presentations, has a size of 1.75 x 1.50 m. also made out of non-depolarizing filmscreen. The optical tracking system consists of two cameras connected to a dual processor for real time image analysis. It has an interaction and management system controlled from a wireless high resolution PDA device. This system has been used in the development of applications to support decision making in the design of roads in a VR environment [7][8] and in the environmental impact assessment [9] of these infrastructures.

Figure 4. SOROLLA System, above in desktop mode, below in presentation mode. Source: ARTEC Group, University of Valencia.
Recently, with the rapid development of the Internet, network multiuser environments known as Distributed Virtual Environments (DVE) [11], which allow the participation of a large number of people represented by avatars in the same virtual world have proliferated, (Figure 5).

Figure 5. Realistic scenarios and avatars in the Second Life environment.

As an example we have Play2Train [12] a virtual environment developed at the University of Idaho for training against bioterrorism incidents on the Second Life platform (Figure 6). This virtual environment encompasses two islands, Asterix and Obelix (65,536 m2 × 2 with restricted access), one dedicated to simulate a virtual city and the other a virtual hospital. The design of these virtual worlds corresponds to the dioramas used by emergency services to support their exercise. Play2Train has been used, among others, to simulate the response to a bird flu pandemia.

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

3D Modeling Software.

The processing of 3D models (Figure 12) around us is done primarily using Autodesk products (and to a lesser extent Microstation), included in all of the engineering curriculums at our university. However, there are freeware alternatives not without merit. Especially interesting among them is the Blender suite [16], distributed under the terms of the GNU General Public License (GPL). Blender is a fully integrated development package, which offers a wide range of essential tools for creating 3D content, including modeling, UV mapping, texturing, rigging, weighting, animation, particle and other simulations, scripting, rendering, compositing, post-production and game creation. It is cross-platform, with a unified interface based on OpenGL, so it can be used in all versions of Windows, Linux, OSX, FreeBSD, Irix and Sun, etc.. Another free modeler that should not be neglected, especially for its ease of use is Sketchup, with its complement, the On-Line 3D Building Modeler. A visit to the 3D Warehouse on the web is enough to understand its possibilities among which we must not forget the possibility of integration with Google Earth.

Development of Interactive Applications.

The industry of computer or video games has provided valuable products and technologies to a number of "serious" industries. Its technology is being introduced in areas such as defense, medicine, architecture, education, city planning, etc.. The gaming industry is now a source of innovation, technology, and products especially for the development of training simulators for both military and civilian use.

Game Engine Characteristics.

The Game Engine software is the key component in a video game operation. The game engine combines various multimedia elements and makes them work together. It manages the graphical and other technologies needed, but can also handle additional tasks such as the artificial intelligence that defines the behavior of the characters or objects or collision detection between objects within the virtual environment. The most usual element provided by a game engine is the renderig ability used to display objects on the screen. But other subsystems will be necessary, such as:
  1. Collision Detection, which calculates the effects of the collision between objects;
  2. Physics, which simulates gravity and other physical properties related;
  3. Artificial Intelligence (AI) that controls the behavior of the characters and animated objects created by the computer;
  4. Network management for applications running in multiuser mode;
  5. Graphical User Interface (GUI), which manages windows, menus, information overlays (HUDs), etc.
    A very important factor is that referred to Artificial Intelligence (AI) that permits to attain the ability to model the behavior of agents representing single individuals or crowds. On the other hand, subsystems modeling physical and collision detection must ensure a credible behavior during the movement of people and objects.

    A final important aspect that has to do with the staff available to undertake the development of applications lies in the options offered by the game engine in regards to programming languages​​. These range from the unique possibility of programming in C++ at a medium and low level at one end and at the other end visual programming that is done by connecting functional components (black boxes) in a tree structure, which is characteristic of Quest3D [17]. While in the university environment we can find programming staff specialized in medium and low level programming, it is considered advantageous to have simpler alternatives.

    Criteria for Selecting a Game Engine.

    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 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.


    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.


    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:
    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:
    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, - 3D Game and Graphics Engines Database. Disponible en
    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