La realidad virtual está muy relacionada con la ciencia-ficción, la simulación y el diseño tridimensional y por tanto, sus orígenes se funden con los primeros desarrollos de estas técnicas.
Aunque se suele mencionar a Mort Heilig (Cinerama, Cinemascope, Sensorama,...), como el pionero de la simulación interactiva, el primero en hablar del término "realidad virtual" (virtual reality) fue Ivan Southerland en 1965 y poco después, en 1982, Myron Krueger publicó su libro "Realidad Artificial" (Artificial Reality). El impulso definitivo lo dio William Gibson, cuando en 1984, escribió "Neuromante" (Neuromancer) que incluía el concepto de ciberespacio (cyberspace), para definir al mundo generado por el computador, por el que transitaban los protagonistas de su novela.
El resultado de las investigaciones militares y aeronáuticas de los años setenta, con la finalidad de simular entornos peligrosos para el hombre y experimentar en ellos sin riesgos, ha dado lugar a las técnicas que actualmente se utilizan en la realidad virtual.
A continuación una breve explicación y concepto de varios lenguajes de Realidad Virtual:
VRML (Virtual Reality Modelling Language)
El lenguaje de modelado de realidad virtual (VRML) se utiliza para describir simulaciones interactivas de participantes múltiples, esto es, mundos virtuales enlazados de manera global vía Internet e hiperenlazados con el World Wide Web. Si el usuario selecciona un enlace a un documento VRML desde el interior de un visualizador WWW, considerado de modo adecuado, se lanza un visor VRML. Por tanto, para navegar y visualizar el Web, los visores VRML son las aplicaciones de compañía perfectas para los visualizadores WWW estándar. Las versiones futuras del VRML, permitirán comportamientos más complicados, incluidos animaciones, elementos físicos en movimiento y una interacción de multiusuario en tiempo real.
Historia
En 1989, Rikk Carey y Paul Strauss de Silicon Graphics Inc., iniciaron un nuevo proyecto con el fin diseñar y construir una infraestructura para aplicaciones interactivas con gráficos tridimensionales. Los dos objetivos originales eran:
En 1994, Mark Pesce y Brian Dehlendorf crearon el VRML mailing list o lista de discusión "WWW-VRML" donde se hizo un llamado abierto al todo el público para dar propuestas para una especificación formal de 3D en el WWW. Dada la magnitud del trabajo se decidió avanzar por etapas y adoptar estándares existentes donde fuera posible. En este mismo año Mark Pesce y Tony Parisi crearon un prototipo de visor de 3D para el WWW.
Después de varias propuestas se escogió la sintaxis de OpenInventor de Silicon Graphics como base de un formato de descripción de objetos geométricos texturizados, agregando la posibilidad de combinar objetos guardados remotamente en la red (mediante hiperligas como en HTML). De esta manera nació VRML 1.0 que aunque solo era una solución parcial, era una muestra de lo que VRML podría llegar a ser.
Durante la primer mitad de 1995 la especificación de VRML 1.0 sufrió un gran número de clarificaciones y reparaciones, pero funcionalmente quedó igual. En Agosto de 1995 hubo mucha discusión dentro del grupo de discusión WWW-VRML en cuanto a la creación de VRML 1.1 o de VRML 2.0. Algunos pensaban que VRML necesitaba solo de unas cuantas adiciones de contenido, mientras que otros sentían la necesidad de una completa revisión del estándar. El segundo paso comenzó en Siggraph 95 culminó en Siggraph 96. El nuevo estándar consistió en permitir el movimiento de la geometría estática definida en VRML 1.0. Se hizo un llamado a presentar propuestas públicamente y se estableció una página de Web para votar. Hubo propuestas de más de 50 compañías como Silicon Graphics, Sony, Netscape, Apple, IBM, Microsoft, entre otras. Ganó la propuesta Moving Worlds de Silicon Graphics, Inc., Sony Corporation y Mitra.
En VRML 2.0 se agrega la posibilidad de interpolar o programar movimientos. Los lenguajes sugeridos son Java y JavaScript, aunque se piensa permitir otros lenguajes en el futuro.
VRML 3.0: Socialización. El último paso está ya en preparación. Se trata de definir interfaces para especificar interacción multiusuario. Es necesario definir protocolos para seguir y sincronizar los comportamientos de objetos programados y de usuarios interactuando en tiempo real en múltiples sistemas distribuidos.
X3D (eXtensible 3D)
X3D (extensible 3D) es la próxima-generación del estándar abierto para la Web. Es el resultado de varios años de desarrollo por parte del Grupo de Trabajo X3D del Consorcio Web 3D y el reciente Grupo de Trabajo Browser. Este último ha trabajado de cerca con el Grupo de Trabajo X3D para crear una nueva Especificación X3D que reúna las necesidades de los Browser de las compañías y las necesidades de toda la comunidad. Esos requerimientos son:
En lugar de una especificación enorme que requiera adopción completa para complacer, una arquitectura basada en componentes que apoya la creación de "perfiles" diferentes qué pueden ser soportados individualmente. Estos perfiles son colecciones de componentes, y dos ejemplos de perfiles son el pequeño "núcleo" para soportar una simple animación no-interactiva, y el perfil "base" VRML-compatible para soportar mundos totalmente-interactivos. Pueden extenderse componentes individualmente o pueden modificarse a través de agregar nuevo "niveles", o pueden agregarse nuevos componentes para introducir nuevas características, como streaming. A través de este mecanismo, los avances de la especificación pueden moverse rápidamente porque el desarrollo en un área no retarda la especificación en conjunto.
3DMLW (3D Markup Language for Web)
3DMLW es un lenguaje de marcado basado en XML para la representación de contenido interactivo en 3D y 2D en la World Wide Web. Sirve como una piedra angular para una plataforma más amplia también conocida como 3DMLW.
Con 3DMLW cualquier diseñador puede desarrollar y publicar objetos en 3D en la web sin necesidad de conocimientos avanzados de codificación. Los desarrolladores de contenido pueden disfrutar de un proceso simplificado de crear cualquier cosa, desde escenas animadas estáticas hasta las más complejas presentaciones interactivas para videojuegos.
La plataforma 3DMLW es una suite de software de código abierto, que puede ser empleado para cualquier aplicación que requiera mostrar contenido dinámico en 3D. Su propio lenguaje de scripts ofrece unas posibilidades únicas para el diseño de software y soporte de formato ampliable para los modelos 3D permite que sea utilizado como una herramienta de integración 3D.
El contenido 3DMLW actualmente se puede ver con una de las aplicaciones de software oficiales proporcionadas por 3D Technologies R&D. Esto incluye plugins para Internet Explorer y navegadores compatibles NPAPI (Mozilla Firefox, Opera,…), un visor independiente y soluciones especializadas, como Kiosk 3D.
El software de terceros puede agregar a 3DMLW la capacidad de mostrar a través del plugin de la interfaz de 3DMLW.
3DXML
3DXML es un formato ligero y universal, basado en el lenguaje XML, y apto para el rápido y fácil intercambio de datos 3D. 3DXML es un formato de archivo 3D desarrollada por Dassault Systemes bajo su marca 3DVIA. Utiliza un contenedor XML cuyas especificaciones fueron publicadas. No debe confundirse con el formato de archivo X3D, el estándar ISO basado en XML para la representación de gráficos 3D por ordenador.
Hasta esta fecha, el formato 3DXML sólo es compatible con la línea de productos de Dassault Systemes. El 3DXML Player es una aplicación independiente que le permite ver los archivos 3D XML en Windows. El 3DVIA Player es un reproductor gratuito disponible tanto en el Mac OS X y la plataforma de Windows, permite la visualización de archivos 3D XML en un navegador web, con o sin conexión.
Características:
VRML (Virtual Reality Modelling Language)
El lenguaje de modelado de realidad virtual (VRML) se utiliza para describir simulaciones interactivas de participantes múltiples, esto es, mundos virtuales enlazados de manera global vía Internet e hiperenlazados con el World Wide Web. Si el usuario selecciona un enlace a un documento VRML desde el interior de un visualizador WWW, considerado de modo adecuado, se lanza un visor VRML. Por tanto, para navegar y visualizar el Web, los visores VRML son las aplicaciones de compañía perfectas para los visualizadores WWW estándar. Las versiones futuras del VRML, permitirán comportamientos más complicados, incluidos animaciones, elementos físicos en movimiento y una interacción de multiusuario en tiempo real.
Historia
En 1989, Rikk Carey y Paul Strauss de Silicon Graphics Inc., iniciaron un nuevo proyecto con el fin diseñar y construir una infraestructura para aplicaciones interactivas con gráficos tridimensionales. Los dos objetivos originales eran:
- Construir un ambiente de desarrollo que permitiera la creación de una extensa variedad de aplicaciones interactivas con gráficos tridimensionales distribuidos.
- Utilizar este ambiente de desarrollo para construir una nueva interfaz de usuario tridimensional.
En 1994, Mark Pesce y Brian Dehlendorf crearon el VRML mailing list o lista de discusión "WWW-VRML" donde se hizo un llamado abierto al todo el público para dar propuestas para una especificación formal de 3D en el WWW. Dada la magnitud del trabajo se decidió avanzar por etapas y adoptar estándares existentes donde fuera posible. En este mismo año Mark Pesce y Tony Parisi crearon un prototipo de visor de 3D para el WWW.
Después de varias propuestas se escogió la sintaxis de OpenInventor de Silicon Graphics como base de un formato de descripción de objetos geométricos texturizados, agregando la posibilidad de combinar objetos guardados remotamente en la red (mediante hiperligas como en HTML). De esta manera nació VRML 1.0 que aunque solo era una solución parcial, era una muestra de lo que VRML podría llegar a ser.
Durante la primer mitad de 1995 la especificación de VRML 1.0 sufrió un gran número de clarificaciones y reparaciones, pero funcionalmente quedó igual. En Agosto de 1995 hubo mucha discusión dentro del grupo de discusión WWW-VRML en cuanto a la creación de VRML 1.1 o de VRML 2.0. Algunos pensaban que VRML necesitaba solo de unas cuantas adiciones de contenido, mientras que otros sentían la necesidad de una completa revisión del estándar. El segundo paso comenzó en Siggraph 95 culminó en Siggraph 96. El nuevo estándar consistió en permitir el movimiento de la geometría estática definida en VRML 1.0. Se hizo un llamado a presentar propuestas públicamente y se estableció una página de Web para votar. Hubo propuestas de más de 50 compañías como Silicon Graphics, Sony, Netscape, Apple, IBM, Microsoft, entre otras. Ganó la propuesta Moving Worlds de Silicon Graphics, Inc., Sony Corporation y Mitra.
En VRML 2.0 se agrega la posibilidad de interpolar o programar movimientos. Los lenguajes sugeridos son Java y JavaScript, aunque se piensa permitir otros lenguajes en el futuro.
VRML 3.0: Socialización. El último paso está ya en preparación. Se trata de definir interfaces para especificar interacción multiusuario. Es necesario definir protocolos para seguir y sincronizar los comportamientos de objetos programados y de usuarios interactuando en tiempo real en múltiples sistemas distribuidos.
X3D (eXtensible 3D)
X3D (extensible 3D) es la próxima-generación del estándar abierto para la Web. Es el resultado de varios años de desarrollo por parte del Grupo de Trabajo X3D del Consorcio Web 3D y el reciente Grupo de Trabajo Browser. Este último ha trabajado de cerca con el Grupo de Trabajo X3D para crear una nueva Especificación X3D que reúna las necesidades de los Browser de las compañías y las necesidades de toda la comunidad. Esos requerimientos son:
- Compatibilidad con el existente contenido VRML, browsers, y herramientas.
- Mecanismo de extensión que permita introducir nuevas características, vista rápida de avances, y adopción formal de esas extensiones dentro de la especificación.
- Un perfil del "núcleo" pequeño y simple para la más amplia adopción posible del soporte X3D, importando y exportando.
- Perfil completo VRML (full) para soportar contenidos existentes.
- Soporte para otras codificaciones incluida XML para una firme integración con las tecnologías y herramientas WEB.
- Arquitectura y proceso de avance para la especificación y tecnología rápidamente
En lugar de una especificación enorme que requiera adopción completa para complacer, una arquitectura basada en componentes que apoya la creación de "perfiles" diferentes qué pueden ser soportados individualmente. Estos perfiles son colecciones de componentes, y dos ejemplos de perfiles son el pequeño "núcleo" para soportar una simple animación no-interactiva, y el perfil "base" VRML-compatible para soportar mundos totalmente-interactivos. Pueden extenderse componentes individualmente o pueden modificarse a través de agregar nuevo "niveles", o pueden agregarse nuevos componentes para introducir nuevas características, como streaming. A través de este mecanismo, los avances de la especificación pueden moverse rápidamente porque el desarrollo en un área no retarda la especificación en conjunto.
3DMLW (3D Markup Language for Web)
3DMLW es un lenguaje de marcado basado en XML para la representación de contenido interactivo en 3D y 2D en la World Wide Web. Sirve como una piedra angular para una plataforma más amplia también conocida como 3DMLW.
Con 3DMLW cualquier diseñador puede desarrollar y publicar objetos en 3D en la web sin necesidad de conocimientos avanzados de codificación. Los desarrolladores de contenido pueden disfrutar de un proceso simplificado de crear cualquier cosa, desde escenas animadas estáticas hasta las más complejas presentaciones interactivas para videojuegos.
La plataforma 3DMLW es una suite de software de código abierto, que puede ser empleado para cualquier aplicación que requiera mostrar contenido dinámico en 3D. Su propio lenguaje de scripts ofrece unas posibilidades únicas para el diseño de software y soporte de formato ampliable para los modelos 3D permite que sea utilizado como una herramienta de integración 3D.
El contenido 3DMLW actualmente se puede ver con una de las aplicaciones de software oficiales proporcionadas por 3D Technologies R&D. Esto incluye plugins para Internet Explorer y navegadores compatibles NPAPI (Mozilla Firefox, Opera,…), un visor independiente y soluciones especializadas, como Kiosk 3D.
El software de terceros puede agregar a 3DMLW la capacidad de mostrar a través del plugin de la interfaz de 3DMLW.
3DXML
3DXML es un formato ligero y universal, basado en el lenguaje XML, y apto para el rápido y fácil intercambio de datos 3D. 3DXML es un formato de archivo 3D desarrollada por Dassault Systemes bajo su marca 3DVIA. Utiliza un contenedor XML cuyas especificaciones fueron publicadas. No debe confundirse con el formato de archivo X3D, el estándar ISO basado en XML para la representación de gráficos 3D por ordenador.
Hasta esta fecha, el formato 3DXML sólo es compatible con la línea de productos de Dassault Systemes. El 3DXML Player es una aplicación independiente que le permite ver los archivos 3D XML en Windows. El 3DVIA Player es un reproductor gratuito disponible tanto en el Mac OS X y la plataforma de Windows, permite la visualización de archivos 3D XML en un navegador web, con o sin conexión.
Características:
- Los datos 3D pueden integrarse con suma facilidad en sitios web, documentación técnica, manuales de mantenimiento, folletos de marketing, correos electrónicos y demás usos corrientes
- El contenido 3D XML puede describirse totalmente en un esquema XML. El usuario podrá explotar dicho esquema, para implementarlo en sus propias aplicaciones, y también extenderlo y personalizarlo, con vistas a añadir datos aplicativos o de usuario
- 3DXML es un formato muy asequible. Los datos 3D XML pueden leerse o escribirse por medio de herramientas estándar y las aplicaciones pueden interpretarlos sencillamente
- El nuevo formato mejora considerablemente la colaboración en torno a los datos 3D
- La documentación pública 3D XML consiste en una serie de esquemas que responden a las necesidades de numerosas aplicaciones y una guía del usuario que facilita el acceso a las especificaciones 3DXML
- El lector 3D XML permite que el usuario capture y transmita datos 3D en tiempo real, de modo fácil y rápido. Se trata de un formato ligero, con archivos de un tamaño hasta 90% inferior a aquél que requieren otros formatos
U3D (Universal 3D)
Universal 3D (U3D) es un estándar de formato de archivo comprimido de datos de gráficos por ordenador en 3D.
Se trata de un formato de datos en tres dimensiones estandarizadas con el fin de facilitar el intercambio de datos 3D entre los programas de diversa índole. Adobe Acrobat admite este formato de la versión 7.0, por lo que dentro de documentos PDF los modelos 3D pueden ser representados, no sólo como imágenes estáticas, sino como verdaderos objetos 3D. Es posible navegar a través del modelo, definir las opciones de visualización y guardar vistas predefinidas.
El formato se define por un consorcio especial llamado 3D Industry Forum, que reunió a un grupo diverso de empresas y organizaciones, incluyendo Intel, Boeing, HP, Adobe Systems, Bentley Systems, Right Hemisphere y otros cuyo objetivo principal ha sido el desarrollo promocional de gráficos 3D para su uso en diversas industrias.
Se trata de un formato de datos en tres dimensiones estandarizadas con el fin de facilitar el intercambio de datos 3D entre los programas de diversa índole. Adobe Acrobat admite este formato de la versión 7.0, por lo que dentro de documentos PDF los modelos 3D pueden ser representados, no sólo como imágenes estáticas, sino como verdaderos objetos 3D. Es posible navegar a través del modelo, definir las opciones de visualización y guardar vistas predefinidas.
El formato se define por un consorcio especial llamado 3D Industry Forum, que reunió a un grupo diverso de empresas y organizaciones, incluyendo Intel, Boeing, HP, Adobe Systems, Bentley Systems, Right Hemisphere y otros cuyo objetivo principal ha sido el desarrollo promocional de gráficos 3D para su uso en diversas industrias.
OpenGL (Open Graphics Library)
Open Graphics Library. Conjunto de especificaciones estándar que definen una API multilenguaje y multiplataforma para escribir aplicaciones o juegos que producen gráficos en 3D. Fue desarrollada originalmente por Silicon Graphics Incorporated (SGI).
Ofrece al programador un API sencilla y estable para que pueda generar gráficos en 2D y 3D por hardware. Consiste en más de 250 funciones diferentes que pueden ser usadas para graficar complejos escenarios tridimensionales usando simples primitivas.
Es muy popular en la industria de los videojuegos y es competencia directa (en plataformas Windows) del Direct3D desarrollado por Microsoft.
Básicamente OpenGL consiste en una serie de librerías y rutinas de clases por lo cual, OpenGL no es un paquete de software de renderizado y modelado como Blender o 3D Max, es una API de bajo nivel que proporciona una interfaz de hardware de gráficos. No es por lo tanto ningún lenguaje de programación, sino tan sólo un conjunto de librerías que son utilizadas a través de lenguajes de programación como VisualC++ para conseguir un interfaz entre las aplicaciones y el hardware gráfico.
Ofrece al programador un API sencilla y estable para que pueda generar gráficos en 2D y 3D por hardware. Consiste en más de 250 funciones diferentes que pueden ser usadas para graficar complejos escenarios tridimensionales usando simples primitivas.
Es muy popular en la industria de los videojuegos y es competencia directa (en plataformas Windows) del Direct3D desarrollado por Microsoft.
Básicamente OpenGL consiste en una serie de librerías y rutinas de clases por lo cual, OpenGL no es un paquete de software de renderizado y modelado como Blender o 3D Max, es una API de bajo nivel que proporciona una interfaz de hardware de gráficos. No es por lo tanto ningún lenguaje de programación, sino tan sólo un conjunto de librerías que son utilizadas a través de lenguajes de programación como VisualC++ para conseguir un interfaz entre las aplicaciones y el hardware gráfico.
COLLADA
COLLADA define un esquema XML estándar abierto para el intercambio de recursos digitales entre varias aplicaciones de software de gráficos que de otro modo podrían almacenar sus activos en formatos de archivo incompatibles. Documentos COLLADA que describen los activos digitales son archivos XML, por lo general identificados con una extensión de nombre de archivo. dae (digital asset exchange).
COLLADA fue pensado originalmente como un formato intermedio para el transporte de datos de una herramienta creación de contenido digital (DCC) a otra aplicación. Existen aplicaciones que soportan el uso de varios DCC, incluyendo:
- 3ds Max (ColladaMax)
- Adobe Photoshop
- ArtiosCAD
- Blender
- Bryce
- Carrara
- Cheddar Cheese Press
- Chief Architect Software
- Cinema 4D (MAXON)
- CityEngine
- CityScape
- DAZ Studio
- E-on Vue 9 xStream
- EskoArtwork Studio
- FreeCAD
- FormZ
- GPure
- Houdini (Side Effects Software)
- iBooks Author
- LightWave 3D (v 9.5)
- Maya (ColladaMaya)
- MeshLab
- Mobile Model Viewer (Android)
- modo
- Okino PolyTrans for bidirectional Collada conversions
- OpenRAVE
- Poser Pro (v 7.0)
- Presagis Creator
- SAP Visual Enterprise Author
- Shade 3D (E Frontier, Mirye)
- SketchUp (v 8.0) Softimage|XSI
- Strata 3D
- Ürban PAD
- Vectorworks
- Visual3D Game Development Tool
- Xcode (v 4.4)