sábado, 18 de mayo de 2013


Evolucion de los lenguajes de Realidad Virtual



El lanzamiento en 1991 de la WWW (World Wide Web) como interface gráfico de Internet supuso una auténtica revolución dentro de las Tecnologías de la Información, que posibilitó el posterior desarrollo de tecnologías como VRML.
    La idea del VRML como lenguaje independiente nació en la primavera de 1994 con ocasión de la primera conferencia anual de la World Wide Web, que fue donde tuvo lugar el nacimiento de la propia WWW.
    Se propuso el desarrollo de interfaces de realidad virtual. Para ello el primer acuerdo al que se llegó fue la necesidad de un lenguaje común para la realidad virtual, de forma análoga a como el HTML.
    El nombre que se propuso originalmente para este lenguaje fue Lenguaje de marcas de realidad virtual (VRML) por extensión directa del lenguaje de marcas de hipertexto (HTML). El término marcas se cambió por el de modelado para que reflejase tanto la complejidad del VRML como su naturaleza gráfica.
    La primera versión de VRML (VRML 1.0) se diseño con tres objetivos principales. El primero es que el lenguaje debe ser independiente de la plataforma, es decir, que ha de funcionar igual en distintos tipos de plataformas PC (Unix, Windows), Macintosh. El segundo, que el lenguaje ha de ser extensible, lo que significa que pueda ampliarse en el futuro sin problemas. Por último el lenguaje debe funcionar bien en conexiones a baja velocidad de transmisión de datos.
    Esta primera versión permitió al usuario navegar a través de un mundo 3D, mediante el empleo del ratón, de tal forma que era posible avanzar y explorar en el entorno 3D, de una forma análoga a la que se emplea en otros tipos de navegación (HTML, Explorador de Windows, etc.).
    A finales de 1995 el grupo de interés "VRML Arquitecture Group (V.A.G.)" empieza la discusión sobre la nueva versión de VRML. En la primera mitad de 1996, se procede a la presentación de distintas propuestas. En Marzo de 1996 el grupo V.A.G. decide por votación adoptar la propuesta de Silicon Graphics que concluye su elaboración en Agosto de 1996.
    En esta nueva versión se amplían las capacidades de la versión anterior que básicamente permitía la navegación a través de mundos virtuales estáticos, incorporando como principales novedades: interacción, animación, guiones ("scripts") y prototipos. Los guiones permiten dotar de interactividad a la escena, mientras que los prototipos posibilitan la creación de nuevos nodos, elemento básico con los que se construye un mundo virtual. La navegación en este entorno 3D se realiza mediante movimientos de ratón, y empleando un reducido juego de iconos que permite modificar ciertos parámetros de navegación, modo de visualización, etc 
¿Cómo funciona VRML?
    La información que define un mundo virtual, modelado mediante VRML, se transmite a través de Internet mediante archivos de texto que siguen la normaISO 10646-1: 1993. En esta se define el juego de caracteres UTF-8 que permite representar el alfabeto latino, arábigo, japonés entre otros, y del cual el habitual código ASCII es un subconjunto.
    El VRML diferencia mayúsculas de minúsculas (es 'case-sensitive'), es decir, que para efectos de su sintaxis, no es lo mismo, por ejemplo, una "A" que una "a". Esto hace que reaccione distinto a un nombre escrito en mayúscula que en minúscula lo cual es importante de recordar siempre.
    La estructura básica empleada en VRML para modelar un espacio virtual es el nodo. Un nodo es una abstracción de un objeto o un concepto del mundo real. Los nodos están ordenados según estructuras jerárquicas denominados "GRAFOS DE ESCENA" (scene graphs). Ejemplos de nodos serían una esfera, un punto de luz, los atributos de un material, etc. Un nodo tiene las siguientes características:




Nodos comunes
Apariencia
Nodos de agrupamiento
Sensores
Appearance
CylinderSensor
FonStyle
PlaneSensor
ProximitySensor
Script
SphereSensor
Shape
TimeSensor
PixelTexture

TouchSensor

VisibilitySensor



Geometría
Interpoladores
Agrupamientos especiales
Nodos de activación excluyente
Box
ColorInterpolator
Cone
CoordinateInterpolator
Cylinder
NormalInterpolator
NavigationInfo
OrientationInterpolator

Viewpoint
Extrusion
PositionInterpolator
Propiedades geométricas

ScalarInterpolator
Color




Normal

Sphere

TextureCoordinate

Text


























Campos: En ellos se almacenan los parámetros que contienen la información que caracteriza al nodo. Estos campos pueden ser de dos tipos: privados, que contienen un valor que define una propiedad del nodo que no es posible modificar, y públicos cuyo valor puede ser modificado por otros nodos.
Conjunto de eventos: Son mensajes que se envían de un nodo a otro, y que ocasionan que se modifiquen los valores de los campos, permitiendo de esta forma dotar de interactividad los objetos que constituyen la escena. Estos mensajes se generan cuando ha cambiado algún valor de los campos del nodo.

    


Para canalizar la información de los eventos de un nodo a otro existe una construcción que se denomina ruta, que permite relacionar los nodos entre sí, de tal forma que es posible por ejemplo si el usuario pica con el ratón sobre un objeto que simula un interruptor de la luz, hacer que como consecuencia de esta acción se encienda una luz en la habitación.
    Para modelar la geometría y el aspecto visual de los objetos que constituyen la escena, se dispone de los nodos del tipo "shape". Además es posible iluminar la escena con diferentes tipos de luces. Para dar mayor realismo a las escenas es posible el empleo de texturas. Una de las posibilidades muy interesantes es la incluir sonidos y/o secuencias de vídeo.
    Una de las novedades que introduce la versión 2.0 es la posibilidad de realizar animaciones. El mecanismo que permite generar el proceso de la animación se basa en un encadenamiento de eventos. Estos eventos normalmente son generados por un tipo especial de nodo denominado "sensor". Otra novedad que incorpora es la posibilidad de definir nuevos nodos mediante la utilización de prototipos.
    No hay que olvidar que es posible asignar hiperenlaces a los objetos que constituyen la escena, de tal forma que picando sobre ellos, el navegador se conectará a algún servidor en Internet y cargará un nuevo mundo virtual "vrml" o una nueva página "html". (bilbao)
    En cuanto a las posibilidades de navegación, VRML permite explorar una escena de tres maneras diferentes:
Caminando.- en este modo el visitante se desplaza a nivel del suelo, y tiene que evitar los obstáculos que surgen a su paso, pues si tienen un determinado tamaño no puede saltar por encima de ellos.

Volando.- el visitante se libera de la restricción de moverse sobre el terreno y puede hacerlo libremente en el espacio.
Examinando.- permite tratar al mundo virtual como si fuera un objeto, de tal forma que es posible girar sobre sí mismo al objeto que se está examinando y acercarse al mismo mediante un zoom para ver sus detalles.

Características:  

VRML 1.0 es un lenguaje para la descripción de mundos virtuales estáticos, que cumple tres requisitos fundamentales: 

-         Es independiente de la plataforma donde se ejecute el visualizador.
-         Tiene capacidad para trabajar de un modo eficiente con conexiones lentas.
-         Extensibilidad, es decir, facilidad para futuras ampliaciones del lenguaje.

El principal problema de esta versión de VRML se encontraba en la ausencia de semántica. Se trataba simplemente de un lenguaje de especificación de geometrías. Por tanto, a través de él, únicamente era posible recorrer mundos inertes. La ausencia de semántica llevaba incluso a situaciones inesperadas, como la posibilidad de atravesar los objetos representados, incluyendo suelos y paredes.


VRML 2.0

Debido a los problemas de la versión 1.0, enseguida surgió la versión 1.1 del lenguaje que añadía algunas extensiones para la incorporación de sonido y animaciones simples. Paralelamente, la totalidad de las empresas que desarrollaban browsers VRML incorporaban sus propias extensiones, comenzando por la detección de colisiones. Esto hizo peligrar la existencia de un estándar por lo que inmediatamente se comenzó el trabajo para la especificación de la versión 2.0 de VRML. Así, se creó el VAG, VRML Architecture Group.

Seis propuestas fueron presentadas para la versión 2.0 en las que se pretendía eliminar el problema de la semántica: 1. Active VRML de Microsoft, 2. Dynamic Worlds de GMD y otros, 3. HoloWeb de SUN, 4. Moving Worlds de SGI y otros, 5. Out of this World de Apple y 6. Reactive Virtual Environment de IBM Japón.
Tras el correspondiente proceso de estudio y revisión de las mismas se decidió aceptar la propuesta Moving Worlds de SGI, Sony y Mitra. La propuesta fue revisada en diversos borradores que dieron lugar a la versión definitiva de VRML 2.0 en otoño de 1996. Esta versión aporta grandes mejoras sobre su predecesora, que se reflejan en las siguientes características :

•        Semántica: Esta es la principal mejora de la versión 2.0. que se consigue mediante la incorporación de nodos de comportamiento que pueden ejecutar scripts realizados en lenguajes como C++, Java, JavaScript y VRMLScript. Para ello es necesaria una comunicación entre nodos, comunicación que se realiza mediante eventos que se propagan a través de rutas (conexiones entre nodos generadores y receptores de eventos). De esta forma, es posible definir, por ejemplo, que al acercarse el usuario a determinado objeto, un nodo de proximidad genere un evento que sea recibido por un nodo de comportamiento, que ejecutará en programa adecuado.

•        Mayor poder descriptivo: La nueva versión 2.0 de VRML permitía la definición de mundos más reales, al incorporar superficies irregulares, condiciones atmosféricas como niebla y nodos de sonido espacial.

•        Mayor interactividad: Mediante la incorporación de nodos sensores de proximidad, contacto, visibilidad y tiempo.

•        Animación: Mediante la incorporación de interpoladores.

•        Modularidad: Mediante la generación de prototipos que agrupan conjuntos de nodos predefinidos.

Finalmente, VRML 2.0 se sometió al ISO/IEC para su aprobación y estandarización. VRML97 es el resultado de ese proceso, y es una norma de ISO/IEC. VRML97 es prácticamente idéntico a VRML 2.0, con un par de cambios menores en detalles muy pequeños.


VRML evolucionó en X3D

El lenguaje VRML se estancó, pero lo que había conseguido sirvió como base a X3D, un lenguaje también para definir mundos vituales que tiene la particularidad de usar XML para representar y comunicar los mundos tridimensionales. X3D es un lenguaje abierto y libre de royalties, con lo que se puede utilizar para cualquier propósito gratuitamente, cuyas especificaciones están a cargo del grupo Web 3D Consortium. Soporta gráficos 3D, 2D datos CAD, animaciones, audio, vídeo, interacción con el usuario, navegación, scripting y simulaciones en tiempo real.
Gracias a estar basado en XML, X3D puede ser utilizado en arquitecturas de servicios web o en redes distribuidas. Además, como todo XML, es independiente de plataforma (algo que ya ocurría con VRML), y se pueden utilizar diversas tecnologías existentes para procesar archivos XML. Otras cosas que se ha potenciado es que se pueda retransmitir en tiempo real y que se pueda integrar en múltiples dispositivos.
La parte que más nos ha llamado la atención de X3D es el objetivo que de incluirlo dentro de HTML5. Según podemos ver en la página del Web 3D Consortium, uno de sus miembros ha creado una interfaz Javascript basada en X3D, que podría ejecutarse en cualquier navegador compatible con HTML5 y que permitiría dar soporte nativo a X3D dentro de cualquier página HTML. Este proyecto lo han llamado x3dom y está basado en WebGL, con lo que los navegadores más modernos lo pueden ejecutar.


APLICACIONES DE VRML
    Pese a su corta vida el VRML se ve inmerso ya en un gran número de aplicaciones. Un resumen no exhaustivo de ellas a señalar:
Apoyo a Diseño de Automóviles.
Apoyo a exploraciones planetarias.
Arte Virtual.
1. Manipulación de esculturas.
2. Museos Virtuales. (Fábrica Nacional de Moneda y Timbre)
Bancos de Información Virtuales.
Arquitectura Virtual.
1. Edificaciones Virtuales.
2. Interiores Virtuales. (Telefónica España)
3. Usos de la Tierra Virtuales.
4. Desarrollo Urbano. (Bilbao)
5. Infraestructura de Servicios.
Astronomía.
Caminatas Virtuales. (Cieza)
Control Virtual de Vuelos.
Educación Virtual.
1. Arte.
2. Ciencia.
3. Geografía.
4. Historia. (Telefónica España)
5. Matemáticas.
6. Tecnología.
Estudios Ambientales.
Industrias Virtuales.
1. Modelos de Procesamiento.
2. Modelos de Transporte.
Ingeniería Virtual. (Faro)
Juegos Virtuales.
Medicina.
Medios de Comunicación Masiva.
Simulaciones de Sismos.
Sitios de Reunión Virtuales.
Visualización Científica.
Visualización de Eco-Sistemas.
Visualización de Modelos Químicos.
Visualización de Redes.
Educación Virtual.
  
  
 PROS Y CONTRAS DEL VRML
    PROS.- Los propulsores del VRML alegan que el lenguaje ofrece las siguientes ventajas:
Ofrece independencia de plataformas. Tecnología "abierta". Estándar ISO.
Se apoya en un conjunto de recursos gratuitos o de "shareware". (Visualizadores, constructores, herramientas varias).
Ofrece facilidad de aprendizaje.
Incrementa la capacidad de comunicación interactiva en Red.
Ofrece rapidez de construcción de mundos sencillos.
Supone un manejo más compacto de información. Y mayor facilidad en la transferencia de información.
Aporta una mayor facilidad de visualización.
Integración progresiva de matemática /ciencia /tecnología /arte /diseño.
Constituye un recurso importante de apoyo para la publicidad en la feroz competencia comercial que se apoya en el diseño de páginas WEB.
Promueve un acercamiento entre clientes y profesionales en aquellas áreas que dependen de la modelación tridimensional para la visualización de situaciones y productos complejos.

    CONTRAS.- Entre las debilidades que se detectan en el desarrollo y uso actual del VRML se encuentran:
Está aún distante de desarrollar el potencial que promete.
Las nuevas versiones del VRML evidencian una creciente complejidad en su contenido.
El incremento de poder y de amplitud de banda requerido para la visualización (browsing) de mundos virtuales es elevado.
Presenta dificultades de conciliación con respecto al CAD y sus objetivos de producción y en la precisión de escala ofrecida actualmente por el VRML para armonizar objetos muy pequeños y muy grandes.
Estaríamos mejor refinando y optimizando los medios ya existentes.
No alcanza aún la calidad de resolución que ofrece la representación de objetos y escenas tridimensionales con herramientas de computación gráfica más convencionales.
La navegación de espacios tridimensionales no preprogramados en base a "ratón" es difícil de dominar.


Ventajas e inconvenientes de los editores de VRML

Ventajas: Poder crear escenarios complejos, sin necesidad de programar en VRML. Posibilidad, en algunos programas de modelado gráfico en 3D, de poder exportar directamente los ficheros al formato VRML.
Inconvenientes: El sistema manual no exige ninguna inversión, pero los programas editores de VRML son todos comerciales, variando su precio desde unos $50 para los más sencillos, hasta varios miles de dólares para los más profesionales y completos.
Otro inconveniente es que el código generado por estos programas puede ser muchísmo más voluminoso, para conseguir los mismos efectos que con el método manual, lo que se traduce en un tiempo de carga en Internet mucho mayor.


Tipos de editores de VRML

Se puede hacer una clasificación de estos programas, en función de su potencia (y por tanto, precio):
Personales: programas adecuados para incluir algo de VRML en una página personal, pequeñas animaciones o algún detalle curioso, pero sin mayores pretensiones.
Profesionales: programas adecuados para la creación de mundos en 3D profesionales, de carácter comercial, científico, etc.
A continuación se comentan algunos de estos editores de VRML. Se puede encontrar una lista exhaustiva en The VRML Repository.

Editores de VRML personales

Simply 3D 2.0 de Micrografx: Se pueden crear animaciones, aunque no sonidos tridimensionales ni indicar niveles de detalle. Incorpora una gran librería de unos 400 objetos en 3D, más de 100 texturas y más de 50 animaciones. Interfaz muy sencillo. Todo se hace arrastrando los objetos. Potente "Explorador de escenas", para manipular los objetos y animaciones incorporados. Permite añadir diversas fuentes de luz. Se pueden añadir sombras al suelo. Un excelente producto para uso personal, pero se puede aspirar a crear escenarios profesionales, aunque con algunas limitaciones. Un detalle muy importante es que da soporte alVRML 2.0, lo que no es habitual en programas personales. Disponible una versión de prueba en Micrografx (Precio aproximado: $70)

Caligari Pioneer 1.0 de Caligari Corporation: Se puede considerar el hermano menor del programa profesional TrueSpace, también de Caligari (ver más adelante). Aunque ofrece un funcionamiento sencillo y potente, hay que tener en cuenta que no da soporte para el VRML 2.0 (sino para el VRML 1.0), por lo que no tiene algunas de las propiedades de la segunda versión de estándar del VRML (sensores, uso de scriptsexteriores, etc), pero sí incorpora cosas como sonido tridimensional, uso de materiales y texturas, enlaces a otros mundos y niveles de detalle para objetos y grupos de objetos. Se puede considerar como un programa adecuado para los que deseen iniciarse en el mundo del VRML. (Precio aproximado $95)
3D Website Builder de Virtus Corporation: Similar al anterior. Da soporte sólo al VRML 1.0 (Precio aprox. $95)

Editores de VRML profesionales

V-Realm Builder 2.1 de Ligos Technology: Tiene un completo soporte del lenguaje VRML, para lo que ha sido específicamente creado. Importa ficheros gráficos en multitud de formatos. Optimizado para conseguir una máxima velocidad de transferencia. Adecuado para diseñar mundos de una cierta complejidad. (Precio aprox. $600)

Caligari trueSpace3 de Caligari: Programa muy famoso en el campo del diseño tridimensional. Es en esta versión donde se añade la posibilidad de crear además mundos en VRML, aunque el código generado no es demasiado eficiente. Consume muchos recursos del sistema. (Precio aprox. $775)
CosmoWorlds de Silicon Graphics Inc., los creadores del más popular de los visualizadores de VRML, Cosmo Player, así como del estándar VRML 2.0 Este programa es muy recomendable. (Precio aprox. $700)

Programas auxiliares para el VRML
Existen otros programas concebidos para realizar tareas concretas relacionadas con el VRML. A continuación se señalan algunos de ellos. Se puede consultar una relación más extensa en el VRML Repository.

Avatar Maker 1.1: Como indica su nombre, este programa sirve para la creación de avatares. Se pueden escoger distintos modelos de cabezas, brazos, piernas, etc., definir el grado de musculatura, personalizar la textura del vestuario. Se puede dotar al avatar con una cara extraída de una foto. El programa incluye algunas de las posturas más corrientes (corriendo, sentado, atacando, etc.). Su interfaz es muy intuitivo y sencillo. Optimiza el código para reducir el tamaño del fichero obtenido. (Precio aprox. $40)
3D Text: Una combinación de VRML y JavaScript que permite introducir el texto que se desee y seleccionar el color de fondo, generando un fichero en VRML con el que se visualiza el texto en tres dimensiones. Disponible el código.

Internet3D Font Magic de ParaGraph International: Similar a anterior. Permite crear logos interactivos en 3D, carteles para los mundos virtuales,etc.

Visual Explorer 2.0 de WoolleySoft Ltd.: Modelador de terreno. Genera modelos optimizados en VRML 2.0 a partir de los datos introducidos. Los datos pueden ser importados en diferentes formatos, e incluso directamente de imágenes topográficas escaneadas. 


 INTRODUCCION

 X3D

X3D (extensible 3D) es la próxima-generación del estandar 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 reuna 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 extension 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.
Perfíl completo VRML (full) para soportar contenidos existentes.
Soporte para otras codificaciones includa 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 rapidamente!

Estos requisitos fueron logrados introduciendo una arquitectura basada-componente para apoyar extensiones, incompatibilidades, y errores, y codificaciones como problemas separados. Un componente representa una agrupación de rasgos relacionados, tales como una colección de nodos relacionados, una extensión al modelo de evento, o un nuevo soporte de script. 

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 una área no retarda la especificación en conjunto. 

1. ¿Qué es X3D?

X3D (extensible 3D) es la próxima-generación del estandar abierto para la Web. Este es un estandar extensible que puede ser soportado fácilmente por herramientas de creación, browsers propietarios, y otras
aplicaciones 3D, sea para importar y exportar. Reemplaza VRML, pero también proporciona compatibilidad con los contenidos y browsers VRML existentes. El contenido actual VRML podrá ser usado sin modificación en cualquier browser X3D-2, el contenido nuevo X3D-a y X3D-2 lo es en aplicaciones VRML existentes.

X3D discute las limitaciones de VRML. Este se especifica totalmente, por lo que el contenido será totalmente compatible. Es extensible, lo que significa que X3D puede usarse para hacer una pequeña y eficiente animación 3D, o puede usarse para soportar lo ultimo en extensiones Streaming o de Renderizado. Soporta codificaciones múltiples y APIs, para que pueda integrarse fácilmente con browsers Web a través de XML o con otras aplicaciones. Además para ir cerrando el circulo con XML, X3D es la tecnología detrás del soporte 3D del MPEG-4. 
2. ¿Cómo luce X3D?
En términos más simples, X3D es VRML 97 en componentes, con un mecanismo para agregar nuevos componentes para extenderse más allá de la funcionalidad del VRML 97. X3D luce solo como VRML. Para convertir un archivo de VRML en un archivo X3D, usted agrega las siguientes líneas de comentario:
#X3D profile:base

si su contenido tiene rasgos que no son VRML estandar, usted agrega una línea como: 
#X3D component:streaming:1 

Esto le dice al browser que este contenido requiere la funcionalidad streaming, nivel 1. 
Esta podría ser una colección de nodos que soporten streaming, o podría ser una facilidad de nivel API. Si es una colección de nodos, esto podría activar al browser para cargar mundo que contenga las declaraciones EXTERNPROTO de esos nodos. 

Para que las personas que crean contenido no tengan que preocuparse por listar o incluir docenas de componentes, se crean Perfiles qué consiste en muchos componentes. De esta manera, usted puede especificar un perfil que puede tener perfeccionamientos en varias áreas funcionales. Por ejemplo, el perfil Base incluye nuevos componentes (PROTO, Audio, etc.) y nuevos niveles de componentes existentes (es decir el nodo de la Caja en el componente de la geometría) encima del Perfil del Núcleo, pero usted sólo especifica el perfil, no la lista de componentes; por ejemplo, 
#X3D profile:base 

Como los browsers avancen, se adoptarán componentes dentro de nuevos perfiles, para que el próximo perfil del browser pueda incluir componentes para NURBS y streamnig, etc. Esta es la arquitectura básica.

Ahora porque es difícil importar VRML totalmente, nosotros quisimos hacerlo fácil para las compañías que quieran importar y exportar algún nivel de X3D. Esto es por qué VRML se ha agrupado en componentes y perfiles. Los componentes se agrupan nodos o funcionalidades, por ejemplo, que el componente de la geometría agrupa los nodos VRML de geometría. Los componentes tienen niveles diferentes, la geometría nivel 1 no contiene el nodo de la Caja, pero el nivel 2 sí, etc. Como nuevos tipos de nodo de geometría se agregan, se agregan nuevos niveles a ese componente. 

Un perfil es una colección de componentes, para que el perfil del núcleo (X3D-1) consiste en componentes de nivel 1 que soportan geometría y animación. X3D-2 es el perfil VRML97 que soporta todos los nodos VRML 97 más la funcionalidad adicional de PROTOs y Scripts.

Una compañía que hace un producto X3D-1 sabe que puede importar contenido que es X3D-1 compatible, y ese contenido que genera puede leerse en browser X3D-1, X3D-2, y VRML97 . 

Note que no hemos mencionado XML. Eso es porque el soporte de XML no es requerido. Los browsers VRML97 actuales son X3D-2 complatibles. Este es un requisito básico de la especificación. XML es una codificación adicional, sólo como una codificación binaria. El XML y las APIs relacionadas son un mecanismo poderoso para integrar X3D con otras tecnologías Web, y mucho trabajo se ha hecho en este área por el Grupo de Trabajo para asegurar que X3D sea soportados por herramientas XML. Traductores también estarán disponibles para traducir contenido entre las codificaciones. Debido al alcance de las codificaciones, se han pasado las codificaciones a un documento separado. 

En resumen, todo el contenido de VRML y las herramientas trabajarán fuera del estante con X3D. Más X3D tendrá una manera de tener características no-VRML97 como Nurbs y GeoVRML soportadas como nuevos nodos nativos en todos los browsers dentro del alcance de la especificación ahora en lugar una extensión propietario. X3D también da una manera de que muchas compañías que apoyen importando y exportando de X3D a cualquier nivel fácilmente, y asegurándose que ellos lo apoyen bien en lugar de tener soporte defectuoso. Y da una manera a las compañías que desarrollen browsers X3D pequeños, eficaces que no necesiten el nivel de funcionalidad que VRML proporciona, ala Shout3D. Para mas adelante, da a las compañías de browser una forma para extender sus actuales browsers VRML97 con nuevos rasgos que puedan fácilmente y RÁPIDAMENTE ser incorporados en la especificación en lugar de quedarse como extension propietaria. Y las codificaciones de XML optativas y soporte proporcionan de un mecanismo para la firme integración con otras tecnologías del Web. 
3. ¿Porqué X3D es mas extensible que VRML?
Un componente puede contener muchos nodos (es decir el perfil Nurbs contiene todos los nodos del nurbs relacionados). También, un componente puede agregar otras áreas de funcionalidad, como el soporte de un nuevo lenguaje de scripting, o requisitos de la interface del usuario, etc. Un componente también puede ser simplemente una colección de externprotos.

VRML tiene sólo el mecanismo de Externproto para la extensibilidad, pero ningún mecanismo real por crear grupos de extensiones de funcionalidad. El componente, nivel, y los mecanismos del perfil X3D permiten esto. Y mientras los browsers individuales pueden llevar a cabo perfiles usando protos y externprotos, no se fuerza a las compañías de browser hacer esto.

Más, los componentes pueden ser más que sólo nodos. Puede ser áreas funcionales enteras. Por ejemplo, podríamos decidir que necesitamos en-línea ECMAScript dentro del archivo X3D en algún punto. El mecanismo del componente permite este tipo de extensión. 
4. Componentes, Niveles, y Perfiles en X3D.
X3D para ser de verdad un estandar industrial amplio, los diseñadores comprendieron que las diferentes compañías no necesitan o querian soportar cada rasgo que X3D puede ofrecer. Por ejemplo, si una compañía quiere hacer una pequeño, eficiente animación 3D, podría no estar interesada en dar características de soporte a la geología. Debido a esto, se encapsulan grupos de características en lo que se llama "componentes." Un componente puede ser específico para una área particular de funcionalidad (es decir un "Geo" el componente por manejar datos geográficos, o un componente "geometría" que contiene un grupo de "nodos" de geometría , o un componente del scripting que introduce el concepto de soporte de script). 

Mientras los componentes proporcionan un medios para introducir una colección de nuevos nodos, X3D todavía apoya extensiones a través de Externprotos, protos, scripts, etc. De hecho, el soporte del componente puede llevarse a cabo a través del uso de estos rasgos. 

Un perfil es una agrupación de componentes que cubren varias áreas diferentes de funcionalidad (i.e. un "Completo" perfil que maneja todos los nodos VRML97 y las áreas funcionales). UN perfil puede contener la funcionalidad de varios perfiles incluso (i.e. el perfil "Completo" incluye la funcionalidad del pequeño perfil "Núcleo"). 

Una vez que un grupo de perfiles se considera importante para la inclusión a través de muchas aplicaciones, una nueva versión de X3D puede crearse que incluirá por defecto un juego de los perfiles. Una nueva Versión implica más funcionalidad que la Versión del número anterior.

Las compañías pueden crear browsers X3D, herramientas, importadores, y exportadores que soporten Versiones diferentes y Perfiles. Por ejemplo, un Player pequeño podría ser compatible con X3D-1. Un browser compatible VRML97 totalmente sería compatible con X3D-2. X3D-3 podrían incluir áreas extras de funcionalidad incluyendo NURBS y streaming, etc. 
5. Creación de nuevos Componentes y Perfiles.
Las compañías pueden crear nuevos Componentes que sus productos y enviarlos al Cuerpo X3D Tabla para someterlo a la aprobación. Cuando un componente se envía, contiene un prefijo de la compañía que envia el perfil, similar a como son las extensiones de OpenGL tienen un prefijo para la compañía que creó la extensión (es decir OW_) los Componentes sufrirán testeos y revisaciones por el Cuerpo X3D, el Consorcio Web3D , y a lo largo de la comunidad.
Una vez que el componente se acepta e implementa por más de una compañía, el prefijo cambia a EXT_. Si el componente es ratificado por el Cuerpo, entonces consigue el prefijo X3D_.
El Cuerpo puede considerar que ciertos componentes son adoptados así ampliamente y que ellos deberían ser incluidos en la próxima versión de X3D. 
Editores

X3D-Edit 3.1 es un editor de archivos de gráficos de 3D Extensible (X3D) que permite la edición simple libre de errores, edición y validación de archivos de escena-gráfico X3D o VRML. Información sobre herramientas contextuales proporcionan resúmenes concisos de cada nodo VRML y atributo. Estos información sobre herramientas simplifican la creación y mejorar la comprensión de los usuarios novatos y expertos por igual.


SwirlX3D es un potente entorno de edición de X3D y VRML que muestra escenas, ya que se están construyendo. X3D es un medio 3D interactivo que está diseñado a partir de la comunicación a través de Internet. No sólo contiene una rica variedad de nodos de geometría, pero también es compatible con la animación a través TimeSensor, interpolador y nodos de 

Submarine X3D es ligero, multiplataforma (el paquete es liberado para Linux, Windows y Mac OS X) y editor de código abierto para el desarrollo de mundos virtuales basadas en el lenguaje X3D norma ISO. Con esta aplicación, el usuario va a trabajar en un entorno de desarrollo integrado (IDE), en la que el usuario tiene acceso sencillo al código fuente X3D, con el apoyo de las herramientas integradas, que son capaces de facilitar y acelerar el desarrollo de un complejo virtual ambientes.

Ejercicios:

Ejemplo sencillo, este programa muestra una simple figura geométrica.







Definir un color cielo degrado como fondo y una esfera de color café


Definir un fondo con 6 imágenes.






Crear un texto y definir los parámetros como es tipo, estilo, tamaño y color.



No hay comentarios:

Publicar un comentario