VRML

VRML

miércoles, 18 de abril de 2012

HISTORIA VRML

La primera propuesta pública sobre la posibilidad de crear un lenguaje que permitiese recrear mundos virtuales surge en la conferencia sobre WWW que se celebró en Ginebra en mayo de 1994, de la mano de Mark Pesce y Tony Parisi.

Ante el amplio apoyo recibido en dicha conferencia y junto a la ayuda de la revista Wired, se estableció una lista de correo con el objetivo de conseguir una primera especificación del lenguaje en unos cinco meses, de forma que se pudiese presentar en la segunda conferencia Web en octubre de ese mismo año.

Tras una serie de debates en los que se discutieron diferentes propuestas, la alternativa presentada por Silicon Graphics fue la que consiguió un mayor número de votos, convirtiéndose de este modo en la base del nuevo estándar. Esta propuesta consistía en utilizar como punto de partida el lenguaje en el que estaba basado Inventor, un producto de dicha compañía. Finalmente, en octubre de 1994 se presento la especificación de VRML 1.0.

Después de la conferencia de octubre, se fundó el VRML Architecture Group (Grupo para la Arquitectura de VRML), también conocido como VAG. Este grupo tenía la misión de ayudar en la clarificación e implementación de la especificación inicial de este nuevo lenguaje. Con posterioridad, este organismo ha sido sustituido por elConsorcio VRML, entre cuyos miembros se encuentran Netscape, Microsoft, IBM, Silicon Graphics, etc.

A principios de 1996, Silicon Graphics pone a disposición del dominio público QvLib, el cual se convirtió en el primer parser VRML capaz de traducir el texto de una escena virtual a un formato entendible por un navegador. Posteriormente aparecería WebSpace, el primer navegador capaz de leer e interpretar todo el estándar VRML.

QUE ES VRML

VRML se define como un lenguaje para modelado de realidad virtual, es un formato de archivo que describe objetos interactivos en 3D. Dentro de una escena especifica.

Es un lenguaje de modelamiento de escenas trdiminsionales interactivas. VRML permite implementar escenas estaticas y dinamicas en 3D.

LENGUAJE Y FORMATO DE VRML

LENGUAJE

Es un lenguaje descriptivo muy sencillo. Con el describes una escena y el programa visualizador de VRML lo representa- no necesitamos saber programación ni saber hacer figuras para crear aquí.

FORMATO

Es un archivo de texto sin formato, pero con la extensión .wrl

USO Y APLICACIONES DE VRML

Demostración dE Productos Es comúnmente utilizado para desplegar catálogos con hojas de especificaciones y diferentes tipos de literatura publicitaria. A través del uso de VRML la demostración de productos en línea toma las siguientes características: Interactividad: El usuario puede interactuar con el producto que el desee adquirir, observarlo de diferentes ángulos y visualizar el producto removiendo y añadiendo componentes del mismo. Integración de Multimedia: VRML provee la integración de otros tipos de multimedia tales como audio e imágenes. Ancho de banda: A través del uso eficiente de VRML y mundos optimizados, el tiempo de transmisión se puede decrementar enormemente, evitando que el usuario tenga que esperar mucho tiempo perdiendo el interés.


Anuncios publicitarios (banners)
Hasta ahora es muy común que las campañas de publicidad en el Web utilicen banners planos o imágenes animadas para atraer a los internautas a sus sitios. Con VRML es posible generar animaciones de mayor impacto y de menor tamaño. Además el hecho de que la animación se realice en un ambiente tridimensional provee de mucho mayor información al usuario, logrando esta técnica un mayor impacto publicitario.

ARQUITECTURA

Desde hace tiempo el Web ha sido el nuevo medio aprovechado por arquitectos y agencias constructoras para mostrar sus proyectos e ideas a sus clientes. Hasta ahora la forma convencional de hacerlo ha sido a través de imágenes y planos que muestren sus proyectos como en los medios tradicionales. Con el uso de VRML estos problemas se eliminan, permitiendo al usuario sentir que está dentro del edificio en demostración. Interacción mediante programación adicional permite al visitante modificar variables como colores, formas, texturas, luces o posiciones para visualizar al máximo los ambientes en construcción, incluso antes de colocar la primera piedra.

Comercio electrónico
A través de centros comerciales virtuales, VRML provee de nuevas opciones para que el comerciante llegue a su público objetivo.

Arte
La visualización de VRML tridimensional combinada con medios tradicionales como imágenes bidimensionales y sonidos es la que da la oportunidad a muchos artistas de comunicar conceptos que antes no podían, de explorar nuevos estilos y nuevos estímulos a nuestros complejos sentidos.

Entretenimiento
VRML abre nuevas formas de entretenimiento, con juegos más apegados a la realidad y con centros de encuentro virtual, en los que los visitantes pueden interactuar con los demás de varias formas, incluyendo sus voces, acciones y apariencias.

VENTAJAS VRML

VENTAJAS

No necesita de aprenderse grandes estructuras de programa para precursar el manejo del programa, no esta limitado a lo que el programador cree oportuno.

No tiene precio alguno utilizar vrml

Cumple la norma ISO

No pertenece a nadie no hay cobro alguno ni licencias

Es un lenguaje más flexible

Tardan menos en descargarse

Mas rápido y flexible

OBJETO REAL Y VIRTUAL








OBJETO REAL Y VIRTUAL


Un objeto real de uno virtual se diferencia por su presencia, función, desarrollo y significado.



Lo virtual tiene existencia aparente, pero no es real

MUNDO/REALIDAD VIRTUAL







MUNDO VIRTUAL

La realidad virtual es por lo general un mundo Nombre virtual generado por ordenador (o sistemas informaticos) en el que el usuario tiene la sensacion de estar en el interior de este mundo, y dependiendo del nivel de inmersion este puede interactuar con este mundo y los objetos del mismo en un grado u otro.

SCRIPT Y OBJETIVO DE VRML

SCRIPT

Un Script Node especial permite agregar códigos adicionales escritos en otros lenguajes como Java o JavaScript en un archivo VRML..

OBJETIVO

Su principal y unico objetico es crear entornos virtuales

ENCABEZADO Y EXTENSION.WRL

ENCABEZADO

La cabecera de todo fichero VRML es siempre la misma:

#VRML V2.0 utf8

donde VRML V2.0 indica el estándar empleado y utf8 autoriza el uso de caracteres internacionales.

Es importante resaltar que no debe existir ningún espacio en blanco entre el símbolo "#" y la palabra "VRML".


EXTENSION.WRL

Los archivos de extensión ".wrl" son ficheros de texto que describen escenas en 3D en lenguaje VRML. Estos archivos pueden comprimirse en zip para que puedan ser transmitidos más rápidamente por internet.

UNIDADES VRML

Los radianes son la unidad de medida empleada en la rotación de los objetos de VRML



Los metros son la unidad de medida que asume VRML por default para dibujar los objetos

FIGURAS PRIMITIVAS


FIGURAS PRIMITIVAS

BOX……CAJA

CONE….CONO

CYLINDER..CILINDRO

SPHERE….ESFERA
Mediante la combinación de estas formas geométricas básicas se pueden obtener otras formas de mayor complejidad.

NODO BOX

Sintaxis:

Box{
size anchura altura profundidad
}

NODO CONE

Sintaxis:

Cone{
height altura
bottomRadius radio_de_la_base
bottom valor_lógico
side valor_lógico
}

NODO CYLINDER
Sintaxis:

Cylinder{
height altura
radius radio
}


NODO SPHERE

Sintaxis:

Sphere{
radius radio
}

FIGURAS AVANZADAS

FIGURAS AVANZADAS

IndexedLineSet {...}: conjunto de líneas

PointSet {...} : conjunto de puntos

IndexedFaceSet {...} : conjunto de caras

ElevationGrid {...}: terrenos

Extrusion {...}: formas de extrusión

Los nodos PointSet, IndexedLineSet y IndexedFaceSet usan un nodo Coordinate como valor de su campo coord

NODO COORDINATE


Posee varios puntos, cuyas coordenadas están separadas por comas.

Sintaxis:

Coordinate {
point [
Eje_x Eje_Y Eje_Z,
Eje_x Eje_Y Eje_Z,
...
Eje_x Eje_Y Eje_Z
]
}

VISUALIZADOR


VISUALIZADOR

Un visualizador VRML es importante para ver los resultados, que se instala en el navegador como cualquier otro plug-in. Posiblemente tu navegador ya esté preparado para ver los mundos en VRML, si no es así, tienes que instalarlo.

Plug in: módulo de hardware o software que añade una característica o un servicio específico a un sistema más grande.

VISOR PANTALLA VRML


1: Se usa para caminar sobre la imagen

2: Se utiliza para volar sobre la imagen

3: Examinar

4: Para mover el objeto de arriba hacia abajo o abajo hacia arriba

5° Para mover el objeto en 4 direcciones; izquierda, derecha, arriba, abajo.

6: Para darle vuelta al objeto

7° Se usa para rodar el objeto sobre la pantalla

8° Al seleccionar un objeto, este icono te lleva hacia el, es decir acerca la imagen seleccionada.

9° se usa para enderezar la imagen

10° te enseña el punto de vista anterior

11° Te muestra el siguiente punto

12° Se usa para restaurar la imagen es decir la regresa a su forma normal

13° Se usa para ajustar el objeto

NODO SHAPE

NODO SHAPE

Las formas (Shapes) son los elementos que nos permiten visualizar los objetos en los mundos VRML. La sintaxis del nodo Shape es la siguiente:


sintaxis

Shape{
appearance ...
geometry ... }


El campo appearance especifica las propiedades en cuanto a textura, material, etc del objeto que se describe en el campo geometry.


Vemos que el nodo Appearance tiene, a su vez, un campo llamado material,
NODO MATERIAL

Con este nodo vamos a determinar el color y grado de transparecia de los objetos. Sintaxis:

Shape{
appearance Appearance{ material Material{
diffuseColor color_RGB
emissiveColor color_RGB
specularColor color_RGB
ambientIntensity valor
transparency valor shininess valor
}
}
geometry ...
}


Cada uno de los seis campos del nodo Material tiene su propio efecto específico sobre un objeto. Todos son opcionales. diffuseColor: representa lo que la mayoría de los usuarios llamarían como el color del objeto. emissiveColor: se utiliza para fijar el color del brillo del objeto, cuando dicho objeto necesite ser visible en la oscuridad. De esta forma se consigue un efecto en donde la figura representada parece iluminada desde el interior mediante una luz de un determinadocolor. specularColor: es un parámetro avanzado que permite indicar qué color de luz refleja el objeto. Por ejemplo, una cama roja no refleja un color rojo, pero una olla rojiza si puede reflejar su color. ambientIntensity: Este campo es otro parámetro avanzado que indica la cantidad de luz ambiental (producida por los diferentes focos de luz del escenario virtual) es reflejada por el objeto. shininess: controlan el brillo de un objeto. transparency: indica el nivel de transparencia del objeto.


Hablamos de formas primitivas cuando Shape utiliza nodos geométricos primitivos para construir una figura. Los nodos geométricos primitivos son los siguientes:


Nodo primitivo Box:

Las dimensiones que se manejan en VRML son dimensiones abstractas pero lo normal es suponer que la unidad de medida es el metro. De esta forma, en el ejemplo anterior estaríamos definiendo una caja de 2 metros de ancho, 0.5 metros de alto y 3 metros de profundidad.

Sintaxis:

Box{

size anchura altura profundidad
}



Nodo primitivo Cone:


Mediante los campos bottom y side se indica si se desea dibujar la base y la superfice lateral respectivamente. Por defecto estos campos toman el valor TRUE, lo cual indica que se dibuja el cono completo.

Sintaxis:



Cone{
height altura
bottomRadius radio_de_la_base
bottom valor_lógico
side valor_lógico
}


Nodo primitivo Cylinder:

Mediante los campos bottom, side y top se indica si se desea dibujar la base inferior,la superfice lateral y la base superior del cilindro. Por defecto estos campos toman el valor TRUE, lo cual indica que se dibuja el cilindro completo.

Sintaxis:

Cylinder{
height altura
radius radio
bottom valor_lógico
side valor_lógico
top valor_lógico
}





Nodo primitivo Sphere:

Sintaxis:

Sphere{
radius radio
}



NODO TEXT

Nodo Text:

Como en cualquier procesador de textos, se nos permitirá indicar el tipo de fuente, su estilo, su tamaño, el espaciado entre caracteres, justificación de los parrafos, etc.

Sintaxis:

Text {
string ["linea_texto 1",

"linea_texto 2",

"linea_texto N",]

fontStyle FontStyle {
family "Nombre_Fuente",
style "Estilo_Fuente",
size Tamaño_Fuente
spacing espaciado_entre_caracteres
justify "justificación_del_texto"
}
}

Como se puede apreciar el nodo Text posee dos campos:

string: Aquí se introduce el texto que se desea visualizar.

fontStyle: Este segundo campo es opcional, de forma que si se omite, el texto tendrá el estilo de la fuente por defecto.


Nodo FontStyle:

Sintaxis:

      FontStyle {
      family "Nombre_Fuente",
      style "Estilo_Fuente",
      size Tamaño_Fuente
      spacing espaciado_entre_caracteres
      justify "justificación_del_texto"
      }
Los posibles valores de los campos del nodo FontStyle son los que se muestran a continuación:

family:
Determina la fuente que se va a utilizar para el texto. Se puede escoger entre "SERIF", "SANS" o "TYPEWRITER". Obsérvese que los nombres están en mayúsculas.

style:
Se puede escoger entre "BOLD" (negrita), "ITALIC" (cursiva), "BOTH" (negrita y cursiva) o "NONE" (tipo de letra normal).

size:
Determina el tamaño de la fuente, pero en unidades VRML.

spacing:
Determina la separación entre líneas, también en unidades VRML.

justify:
Determina la justificación del texto. Puede ser "BEGIN" (Alinear a la izquierda), "MIDDLE" (centrar el texto) o "END" (Alinear a la derecha).

NODO TRANSFORM

Nodo Transform:
Por defecto todos los objetos (Shapes) se construyen en el centro del escenario virtual. El nodo transform nos va a permitir evitar esto, indicando la posición, orientación y tamaño de los diferentes objetos que va a crear.
Sintaxis:

Transform{
translation Eje_X Eje_Y Eje_Z
rotation Eje_X Eje_Y Eje_Z Ángulo
scale Eje_X Eje_Y Eje_Z
children[...]
}

Cada grupo creado mediante el nodo Transform va a poseer su propio sistema de coordenadas, cuyos atributos se determinan a través de los campos translation,rotation y scale, los cuales son optativos.

NODO ANCHOR Y VIEWPOINT

NODO ANCHOR

Su función es unir determinadas figuras en un solo grupo para su uso en conjunto y no uno por uno .Creando un grupo especial ya que seleccionando cualquier objeto perteneciente a dicho grupo se salta hacia otro lugar del escenario virtual o hacia otro mundo virtual almacenado en un fichero VRML (dirección URL). Cualquier objeto o grupo de objetos se puede convertir en un enlace.

Description: mediante una cadena de texto se describe el objeto

Sintaxis:

Anchor{
url"dirección_URL"
description "descripción_del_enlace"
children[...]
}

NODO VIEWPOINT

Este tiene como fin determinar el punto de la panorámica, es decir, ver desde que angulo y posición se va ver el mundo virtual para ellos la siguiente sintaxis:

Viewpoint {

position x y z

orientation 0 0 1 0

description "view all"

}

POSITION: se refiere desde que punto de los ejes x y y z se localizara

ORIENTAYION: a cargo del angulo del cual se vera

DESCRPTION: lleva acargo el “view all” para que se refiera a toda la ventana virtual.

NODO BACKGROUND

Nodo Background:
Incorpora un plano de suelo sombreado, texturas y cielo escénico. Sólo se emplea el primer nodo Background que se encuentre, debiéndose especificar en el archivo principal.
Sintaxis:

Backgroud{
groundAngle [ ]
groundColor [ ]
skyAngle [ ]
skyColor [ ]
backUrl "dirección_URL"
bottomURL "dirección_URL"
frontUrl "dirección_URL"
leftUrl "dirección_URL"
rightUrl "dirección_URL"
topUrl "dirección_URL"
}

Todos estos campos no se utilizan simultaneamente, sino que su uso dependerá del tipo de fondo que se desee crear.

NODO GROUP

Nodo Group:

El nodo Group permite unir un conjunto de nodos de forma que actúen como una entidad única, pero sin efectuar ninguna transformación en ellos. La principal característica de este tipo de grupo es que los objetos son creados todos en el mismo punto (en el centro del escenario de realidad virtual).
Sintaxis:

Group {
children [ ... ]
}

El campo children contiene la lista de los objetos que se quieren agrupar, representados por sus nodos Shape respectivos.

NODO DEF

NODO DEF

Tiene como fin el volver a colocar el nodo que ha sido creado con anterioridad al colocar la siguiente

SINTAXIS

DEF NOMBRE DEL NODO Shape {
appearance Appearance {
material Material { }
}
}


Cuando se requiera volver a utilizar el mismo nodo no es necesario volver a escribir la sintaxis pasada si no sòlo escribir:

USE nombre del nodo

Este también puede ser manipulado en cuanto a su ubicación auxiliado del TRANSFORM

Transform{
translation X Y Z
children [USE NOMBRE DEL NODO]
}

NODO INLINE

NODO INLINE

Permite crear un grupo en donde los archivos ya almacenados en distintos ficheros VRML, son recuperados, es decir, son requeridos para volverse a utilizar en otra ventana virtual con tan solo indicar su dirección URL.

Sintaxis:

Inline{
url"dirección_url"
}

A este también se le puede asignar una determinada ubicación con TRANSFORM y quedaría asi:

Transform{

translation x y z
children [

Inline{url"archivo.wrl"}
]
}

NODO POINTSET


Nodo PointSet:

Representa un conjunto de puntos situados en las coordenadas índicadas dentro del sistema de coordenadas del nodo padre.

Sintaxis:

PointSet {
coord Coordinate { point [ . . . ]
}
color Color {
color [ . . . ]
}
}

El campo coord toma como valor un nodo de tipo Coordinate, el cual define los puntos que se desean representar. El campo color sirve para definir el color de cada uno de los puntos. Este campo toma como valor un nodo Color, que a su vez contiene un campo de tipo color de nuevo. Si se incluyese este código, tal como está, en un documento VRML, no podríamos ver ninguno de estos puntos, ya que como se ha visto anteriormente, para crear un objeto visible se debe utilizar el nodo Shape.