III. TECNOLOGIA DE REALIDAD VIRTUAL

La tecnología de un sistema de realidad virtual trata sobre algo mas que los dispositivos físicos que se utilizan para la visualización, interacción o retroalimentación de este tipo de sistemas, también incluye el software o programas que se utilizan para la modelación de este tipo de sistemas. Ambos elementos, se complementan uno con el otro, el hardware se encarga no solo de mandar señales al usuario sino también de recibir señales por parte de éste, el software es el encargado de procesarlas y transformarlas en un nuevo comportamiento del mundo virtual. En las secciones subsecuentes se describe tanto el hardware como el software de una manera mas detallada.



III.1 Hardware

El hardware consiste de dispositivos físicos que forman parte de un sistema de RV y son los que estimulan al usuario en distintas maneras. Estos estímulos son los que le permiten alimentar los sentidos del usuario, y así, inducirlo a un mundo creado para él.


Existen diferentes tipos de dispositivos como los de entrada, los cuales son dispositivos visuales, de sonido, la máquina de realidad (reality engine) y de salida como los dispositivos hápticos 1. Ambos tipos de dispositivos se describen brevemente a continuación.



      III.1.1 Máquina de realidad

      La máquina de realidad se refiere al hardware que nos permite generar modelos virtuales, este hardware puede ser desde una simple PC, hasta estaciones de trabajo diseñadas especialmente para tratar con este tipo de tareas, como por ejemplo la familia de estaciones de trabajo y sistemas Onyx2 como son Onyx2Reality visualization u Onyx2 RealityMonster de Silicon Graphics. Estas máquinas se encargan de realizar todo el proceso de trazado de las imágenes.



      III.1.2 Dispositivos visuales

      Cuando se escucha hablar sobre realidad virtual generalmente, lo primero que viene a la mente es una persona usando unos lentes o un casco y visualizando algún modelo virtual. Los dispositivos visuales son una de las herramientas más importantes de retroalimentación para el usuario, en la mayoría de los casos es la entrada primaria que este recibe del sistema de RV.


      Uno de los principales consideraciones en este tipo de dispositivos es el detalle de los imágenes contra la rapidez en la formación de las imágenes que forman las escenas, además de una visión monoscópica contra una estereoscópica. La formación de escenas en tiempo real le dan un sentido de realidad al usuario al eliminar la discontinuidad.


        • Lentes LCD resplandecientes
          Los lentes resplandecientes de despliegue de cristal líquido tienen la apariencia de un par de anteojos, donde un fotosensor es montado en estos lentes para así poder leer una señal de la computadora. Esta señal le comunica a los anteojos si le permite al lente pasar luz del lado izquierdo o derecho del lente. Cuando la luz se le permite pasar a través del lente izquierdo, la pantalla de la computadora mostrará el lado izquierdo de la escena, lo cual corresponde a lo que el usuario verá a través de su ojo izquierdo. Cuando la luz pasa a través del lente derecho, la escena en la pantalla de la computadora es una versión ligeramente deslizada hacia la derecha. Los lentes de LCD resplandecientes son ligeros y sin cables. Estas dos características los hacen fáciles de usar, sin embargo, el usuario tiene que mirar fijamente y solo a la pantalla de la computadora para ver la escena tridimensional, ya que el campo de vista es limitado al tamaño de la pantalla de la computadora, el medio ambiente real puede también ser visto lo cual no proporciona un efecto de inmersión.

Imagen tomada de Stereo Graphics http://www.stereographics.com



        • Despliegues montados en la cabeza (Head-Mounted Display)
          Los despliegues montados en la cabeza(HMD por sus siglas en inglés) colocan una pantalla en frente de cada ojo del individuo todo el tiempo. El casco que usa el usuario tiene unos sensores montados en él, los cuales le permiten reconocer el movimiento de la cabeza por lo que una nueva perspectiva de la escena es generada (ver foto).


Imagen tomada de Fifth Dimension Technologies http://www.5dt.com/p_hmd.html




        • Despliegue HMD con LCD
          En este tipo de despliegues se utiliza la tecnología de LCD para desplegar las escenas. Este tipo de despliegues es más claro con respecto a los otros tipos de HMDs, y proporciona un efecto de inmersión, sin embargo, la resolución y el contraste es bajo, debido a que los cristales son polarizados para controlar el color de un pixel lo cual crea un retardo en la formación de la imagen, esto trae como consecuencia que el individuo no pueda identificar objetos o juzgar correctamente la posición de éstos provocando un retardo en la formación de la imagen, por lo que el individuo puede juzgar mal la posición de los objetos.

        • HMD proyectado
          En este tipo de casco se utiliza la fibra óptica para transmitir la escena a la pantalla. Esta es similar a la CRT con la diferencia de que el fósforo es iluminado por la luz transmitida a través de la fibra óptica, donde cada fibra controla una celda con varios pixeles. El casco proyectado proporciona mejor resolución y contraste que el despliegue de LCD, esto significa que el individuo es capaz de ver una imagen con mucho mayor detalle. La desventaja de este tipo de dispositivos es que es caro y complicado de fabricar.

        • HMD con CRT pequeño
          Este casco utiliza dos tubos de rayos catódicos(CRT) que se posicionan en el lado del casco. Se utilizan espejos para reflejar la escena al ojo del individuo. Una diferencia con el casco proyectado es que en este tipo de casco el fósforo es iluminado por cables de fibras ópticas, aquí el fósforo es iluminado por un rayo de electrones. El casco con CRT es muy similar al casco proyectado, sin embargo, este tipo de casco es mas pesado que la mayoria de los otros tipos de casco debido a los componentes electrónicos que le son agregados lo que tambien conlleva a la generación de grandes cantidades de calor lo cual puede hacer que el individuo que usa este tipo de dispositivo se sienta incómodo debido al peso y el calor.



        • Monitor Omni-direccional Binocular
          El monitor Omni-direccional binocular(Binocular Omni-Orientation Monitor-BOOM) es montado sobre un brazo mecánico articulado con sensores de posicionamiento localizados en las articulaciones. Un contrapeso es usado para estabilizar el monitor. Para ver el ambiente virtual, el usuario debe sostener el monitor y posicionarse enfrente de este, entonces la computadora generará una escena de acuerdo a la posición y orientación de las articulaciones del brazo. Al no tener el usuario que ponerse un despliegue BOOM como sucede con los HMD el paso entre el mundo virtual y el real es solo de mover los ojos lejos del BOOM (ver foto).


Imagen tomada de Fakespace Labs Inc. http://205.55.130.40/producst/boom3c.html


      III.1.3 Dispositivos sonoros

      La utilización de sonido provee un canal de comunicación muy importante dentro de los sistemas de realidad virtual puesto que el sistema auditivo es uno de nuestros componentes perceptuales más importantes, y "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"[3]. El sonido estéreo convencional fácilmente puede poner un sonido en cualquier lugar entre el lado izquierdo y el derecho. Sin embargo, con el sonido 3D, puede ser colocado en cualquier lugar, ya sea en el lado izquierdo, derecho, arriba, abajo, cerca o lejos.


        • Sonido 3D
          Además de una composición visual, un mundo virtual válido de experimentarse debe incorporar un campo de sonido tridimensional que proporcione al usuario una imagen fidedigna de las condiciones que se desean presentar en el ambiente virtual que se este experimentando. El tener un campo de sonido que reaccione al ambiente(como el reflejo del sonido en paredes, tener múltiples fuentes de sonidos, ruido de fondo, etc.) requiere de un gran poder de cómputo puesto que para tener una buena simulación de un ambiente virtual una computadora debe determinar la posición de la fuente relativa al oyente, calcular los efectos del ambiente (como por ejemplo un eco en la pared). El problema de producir un sonido es que no se puede repetir el sonido previamente grabado de manera que el sonido se escuche detrás del usuario cuando este gira su cabeza.
          Para crear un campo de sonido tridimensional se produce sonido que es sintonizado a la cabeza de un individuo. Cuando el sonido alcanza el oído externo, este dobla al frente de la onda del sonido y conduce este al canal del oído. El sonido que realmente alcanza el tambor del oído es diferente para cada persona. Para resolver este problema, la computadora debe crear un sonido que sea diseñado para adecuarse a un usuario en particular. Esto se logra al colocar un micrófono pequeño dentro del canal del oído, para crear sonidos de referencia de varias ubicaciones alrededor del oyente. Entonces se resuelve algunas relaciones matemáticas que describen como el sonido cambia dentro del canal del oído. Estas relaciones matemáticas son llamadas Funciones de Transferencia Relacionadas(HRTFs por sus siglas en inglés). Sin embargo, para evitar estos cálculos también se puede optar por utilizar HRTFs que son comunes a la mayoría de las personas.

        • Sonido realista
          El sonido de fondo es importante para la persona que desea entrar a un mundo creíble. Como el ruido es de fondo no se necesita utilizar la tecnología del sonido 3D, algunos investigadores sugieren el uso de sonidos pregrabados así que el poder de cómputo se dedica a determinar la posición y dirección de la fuente. El problema con los sonidos es que cuando el usuario se da la vuelta, los sonidos que estaban detrás de el deberían estar ahora frente a él. Sin embargo, con métodos de pregrabar/repetir, los sonidos que estaban detrás del individuo están todavía detrás de él aunque este se haya dado la vuelta.



      III.1.4 Dispositivos hápticos

      Según Ivan Sutherland "el sentido humano kinestésico es como otro canal independiente al cerebro, un canal cuya información es asimilada de una manera bastante subconciente"[8].Háptica es el estudio de cómo utilizar el sentido del tacto en un mundo generado por computadora. El estimular el sentido del tacto, como permitir al usuario "tocar" objetos de manera que pueda sentir la forma, textura, temperatura, firmeza y fuerza de éstos, puede agregar un buen nivel de realismo al ambiente virtual.
      Existen dos subáreas en las que se divide la háptica para su mejor investigación: la retroalimentación de fuerza (kinestética) y la retroalimentación táctil, la primera trata sobre como el usuario aplica fuerzas en músculos y tendones por medio de dispositivos que lo hacen sentir las condiciones correspondientes al ambiente virtual que está experimentando, por ejemplo, el usuario debe chocar con una pared en vez de pasar a través de ella; la segunda subárea se enfoca a los nervios terminales de la piel y como perciben el contacto con un objeto al sentir las caracteristicas de éste como su temperatura, tamaño, forma, firmeza, textura entre otras.


        • Plataformas en movimiento
          La plataforma de movimiento nació junto con los simuladores de vuelo, éstas plataformas se mueven hacia los lados o se inclinan hacia enfrente o atrás de acuerdo a las imágenes que el individuo está percibiendo, esto le da la sensación de que realmente se está moviendo (ver foto).




Universidad de Houston y NASA/Johnson Space Center http://www.vetl.uh.edu/Equipment/motion.html



        • Guantes
          El uso de guantes es común como un medio de interacción con objetos en un mundo virtual, éstos guantes están diseñados especialmente para proveer al individuo retroalimentación sobre las características de los objetos, los guantes tienen pistones neumáticos montados sobre la palma del guante, de esta forma cuando un objeto es colocado virtualmente en la palma de la mano la mano verdadera puede cerrarse alrededor del objeto virtual, cuando esta se encuentre al objeto, la presión en el guante aumentará dando la sensación de resistencia del objeto virtual.



          Imagen tomada de Fifth Dimension Technologies http://www.5dt.com/p_glove16.html


        • Mayordomos
          El mayordomo es un robot que se encarga de poner un objeto real donde se supone que el objeto virtual se encuentra, es decir, si el individuo toca virtualmente un escritorio, el mayordomo pondrá un objeto al alcance del individuo, para que se tope con el objeto y se de la sensación de toparse realmente con un escritorio. Un inconveniente de este tipo de robots es que solo puede hacer su trabajo para un objeto a la vez.

III.2 Software

Existen diferentes programas para el desarrollo de simulaciones de mundos virtuales los cuales se pueden considerar dentro de dos categorías:

• Herramienta de autoría de mundos virtuales
• Un API de realidad virtual

    APIs de realidad virtual

    • Dive por SICS
      IVE(Ambiente virtual interactivo distribuido) es un sistema de RV el cual ha ganado un fuerte uso particularmente entre la investigación de realidad virtual distribuida. DIVE actualmente se ofrece solamente para UNIX es un sistema no comercial que puede ser obtenido gratuitamente con el código fuente, lo cual lo ha convertido en una opción popular entre los investigadores que lo pueden adaptar a sus necesidades. El visualizador o graficador(rendering engine) usado en DIVE esta enfocado básicamente para realidad virtual de escritorio. Soporta periféricos de E/S tales como HMDs y guantes.



    • dVS por Division Ltd.
      VS es un producto enfocado a la simplificación del diseño y desarrollo de ambientes virtuales interactivos y de multi-usuarios. dVS se propone como un sistema operativo de realidad virtual que provee servicio tales como despliegues visuales, salida de audio, sistemas de posicionamiento y dispositivos de entrada en un nivel abstracto. Una de las ventajas de dVS es que es independiente de plataformas permitiendo a los desarrolladores de RV portar sus aplicaciones entre diversos ambientes.



    • Render Ware por Criterion Software
      RenderWare es un API portable para un número de plataformas, principalmente Windows, Macintosh y X-Windows. RenderWare esta dirigido al desarrollo de juegos que ofrece un mapeo de texturas de gran velocidad con un buen soporte multiplataformas. Este API ha ganado un buen soporte de los desarrolladores y se ha establecido como un excelente graficador (graphics engine).



    • 3DR por Intel
      DR es una biblioteca gráfica para PC producida por Intel que permite aplicaciones gráficas a alta velocidad en tiempo real, para desarrollar en ambientes de windows (NT, 95). 3DR también está disponible con el SDK y hace un buen uso del hardware disponible y de las tarjetas gráficas avanzadas. 3DR puede importar objetos de 3D Studio.



    • World Toolkit por Sense8
      World ToolKit(WTK) es un API 3D comercial que consiste de un conjunto de rutinas en C (Aprox. 400) que permite a los desarrolladores contruir simulaciones 3D y aplicaciones RV. WTK provee de soporte a una gran variedad de hardware incluyendo varias formas de dispositivos de E/S tales como HMDs y dispositivos de seis grados de libertad. WTK está disponible en un número de plataformas incluyendo PC, aunque su plataforma primaria esta basada en máquinas basadas en UNIX que usan ya sea OpenGL o SGI Performer.



    • Vega por Paradigm Simulations
      Esta herramienta fue desarrollada para programadores y no programadores, combina herramientas faciles de usar que permiten la creacion de prototipos y permite la realización de complicadas simulaciones. Además de incluir herramientas para la construcción, edición y ejecución de aplicaciones sofisticadas. El API que se incluye puede accesar a lenguajes como Performer, IrisGL y OpenGL. Soporta sistemas de un solo procesador, multiprocesadores/multi-canales.



    • VRML
      El lenguaje de modelado de realidad virtual (VRML por sus siglas en inglés) es un estandar para el manejo de escenas tridimensionales dentro de Internet que permite la interacción con el usuario. Con VRML se puede realizar modelación de objetos, permitiendo darles forma, color, movimiento o comportamiento. Este lenguaje permite la incorporación de pequeños programas en Java o JavaScript lo que le permite agregarle lógica y sentido a los modelos.



    • Lenguajes de alto nivel
      También los lenguajes de alto nivel pueden ser usados para desarrollar aplicaciones de RV, como son C, C++, Java3D, OpenInventor, entre otros.



    Programas de Autoría

    • Superscape VRT por Superscape VR plc.
      Superscape es un sistema de autoría de realidad virtual para PC. Consiste de un Visualizador en su nivel más bajo el cual es la aplicación que se usa para explorar mundos virtuales. Para poder crear nuevos mundos se requiere de Superscape VRT (o herramienta de desarrollo de realidad virtual) el cual incluye el visualizador y un número de editores como son el editor de formas, de sonido, texturas, entre otros.

    • dVISE por Division Ltd.
      dVISE es una herramienta de autoría dirigido a los no programadores lo que le permite una fácil creación de mundos virtuales sin ningún conocimiento de programación. DVISE acepta modelos de varias fuentes como AutoCAD, 3D Studio, Wavefront, ModelGen, y cualquier sistema que pueda producir archivos .DXF estándares.

    • Meme por Immersive Systems, Inc.
      Meme es un paquete de software para el desarrollo de aplicaciones multi-usuarios distribuidas. Esta diseñada con portabilidad en la mente para permitir que un mundo virtual pueda ser visitado por varios usuarios distribuidos geográficamente, posiblemente usando diferentes tipos de hardware. Meme provee de una funcionalidad similar a la de dVS en el sentido de que se comporta como una especie de sistema operativo virtual que provee al programador con funciones del sistema adicionales específicamente para realidad virtual. Meme incorpora un lenguaje intérprete para la definición y control de un ambiente virtual.

    • VRCreator por VREAM Inc.
      VRCreator es un ambiente virtual dirigido a programadores y no programadores. Permite al usuario construir aplicaciones de VR poderosas que corren bajo Windows NT y 95. Para programadores, VRCreator incluye accesso a su API permitiendo el uso completo de sus capacidades. VRCreator provee soporte para interacción sofisticada permitiendo que a los objetos se les de un rango amplio de atributos dinámicos. El soporte para importar desde varios tipos de archivos como 3D Studio y DXF de AutoCAD es permitido, incluyendo la habilidad de exportar a VRML.

    • COVISE/COVER High Performance Computing Center
      Es un software de ambiente distribuido que permite la integración casi de forma transparente de simulaciones basadas en supercomputadoras y visualización colaborativa. Este software permite que varios usuarios trabajen colaborativamente en una sesión sincronizada. Las aplicaciones de COVISE puede contener varias tareas modeladas como procesos que se distribuyen a través de diferentes máquinas. COVER( o COVISE Virtual Environment) es una parte integral de COVISE, y está desarrollado para el soporte de aplicaciones tanto técnicas como científicas.

    • WorldUp Release 4 por Sense8
      WorldUp es un software de desarrollo de interfaces que provee el ambiente para la construcción de aplicaciones tridimensionales y de realidad virtual. Esta construido bajo los fundamentos de la EAI(Interfaz de autoría externa por sus siglas en inglés) de WorldToolKit. WorldUp provee funcionalidad en tiempo real en un ambiente orientado a objetos.


Grupo de Supercómputo