La realidad virtual es un término asociado con sistemas
computacionales que interactúan con el usuario, permitiéndole
algún grado de inmersión. Se puede lograr un grado
de simulación tal que el usuario puede ingresar a través
de mundos que aparentan ser reales. La inmersión dentro
de este contexto se entiende como aquella situación en
la que un usuario se siente experimentando una realidad alterna
desde adentro del sistema, el grado de inmersión logrado
en VRML es aquel denominado parcial, la que se refiere a la observación
directa de una imagen 3D a través de un computador. Un
usuario navega cuando se desplaza el punto de vista de éste
a través del espacio tridimensional, logrando explorarlo
e interactuar a través de él aparentemente a voluntad;
esta sensación de movimiento crea la ilusión de
un mundo virtual.
Un Mundo Virtual se puede definir como un sistema de ambientes
y objetos virtuales gráficos y tridimensionales, de diversas
jerarquías, relacionados entre sí y operando en
forma dinámica, interactiva y multisensorial con respecto
a sus usuarios, apoyándose en el uso de uno o más
computadores para cumplir determinados propósitos.
La creación de un Mundo Virtual puede orientarse a diferentes
usos desde el diseño de juegos, simulación comercial
de diseño, visita de cocinas con la participación
del usuario, visualización científica y participación
activa en proceso de ensamblaje de moléculas.
VRML (Virtual Reality Modeling Language) es un lenguaje para la
descripción de figuras tridimensionales y ambientes interactivos
dentro del WWW (World Wide Web).
Para escribir un archivo VRML se puede usar cualquier editor de
texto, o bien alguna herramienta de desarrollo VRML que exista
en el mercado. Para visualizar un archivo VRML se puede usar un
visualizador VRML, o bien un browser HTML que lo soporte (Microsoft
Internet Explorer 3.0, por ejemplo).
La versión de VRML que se documentará a continuación
es la VRML 2.0, llamada también Moving Worlds. Esta versión
es el resultado de más de 8 meses de trabajo por un grupo
de más de 100 personas. El resultado final de esto se conoció
el 4 de agosto de 1996.
Un archivo VRML contiene, básicamente:
Todo esto en su conjunto permite definir un mundo tridimensional.
Para una fácil identificación de un archivo VRML,
todos los archivos VRML deben comenzar con la siguiente línea:
#VRML V2.0 utf8
El identificador utf8 permite que caracteres internacionales serán
mostrados en VRML usando la codificación UTF-8 del estándar
ISO 10646. Unicode es una alternativa de codificación de
ISO 10646.
El carácter # inicia un comentario, todos los caracteres
hasta la nueva línea o retorno de carro son ignorados.
Después de este encabezado obligatorio, un archivo VRML
puede contener lo siguiente:
Las siguientes palabras reservadas no pueden ser usadas para los nodos: PROTO, EXTERNPROTO o nombres DEF.
La sintaxis de la interface pública es la especificación definitiva para los campos, nombres, tipos y valores por defecto para un nodo dado. Notar que esta sintaxis no es la sintaxis del formato del archivo. Sin embargo las partes de la interface que son idénticas en la sintaxis del archivo están en negrita. Por ejemplo la interface pública para el nodo Collision es :
Collision {
eventIn MFNode addChildren
eventIn MFNode removeChildren
exposedField MFNode children []
exposedField SFBool collide TRUE
field SFVec3f bboxCenter 0 0 0
field SFVec3f bboxSize -1 -1 -1
field SFNode proxy NULL
eventOut SFTime collideTime
}
Notar que esta información es especificada de una forma
distinta al usar la sintaxis de archivo. Las palabras reservadas
"field" o "exposedField" y los tipos de los
campos (como SFColor) no son especificadas cuando expresamos un
nodo en el formato de archivo, desde este punto de vista esa información
es transparente para el diseñador de un mundo virtual.
El nodo Collision en el formato de archivo queda entonces como:
Collision{
children []
collide TRUE
bboxCenter 0 0 0
bboxSize -1 -1 -1
proxy NULL
}
Todos los campos URL son del tipo MFString. Los strings en estos campos indicarán múltiples direcciones hacia las cuales apuntar, en orden decreciente de preferencia. Si el browser no encuentra la primera dirección, entonces va a la siguiente y así sucesivamente.
El campo url del nodo Script puede soportar un protocolo de varios
tipos de lenguajes. Por ejemplo un URL prefijado con javascript
puede contener un archivo fuente javascript, con caracteres de
nueva línea permitidos en el string. El siguiente ejemplo
muestra algo de ésto (el orden de precedencia determina
prioridad):
#VRML V2.0 utf8
Script {
url [ "javascript: ...",
"http://bar.com/foo.js",
"http://bar.com/foo.class" ]
}
La extensión de un archivo VRML es .wrl.
El MIME type para los archivos VRML es definido como:
model/vrml.
Por razones históricas (VRML 1.0) el siguiente MIME type también es soportado:
x-world/x-vrml.
Estos valores deben ser declarados tanto en el cliente (el el browser de la máquina en donde el usuario está viendo la aplicación), como en el servidor (en donde el root o webmaster deberá de especificar los valores en la máquina servidora).
#VRML V2.0 utf8 , Esto es el encabezado del archivo
# Un cilindro; Esto es un comentario
Shape { # Inicio de nodo Shape
appearance Appearance { #Inicio de nodo Appearance
material Material { } # Campo material y nodo Material
} # Fin de nodo Appearance
geometry Cylinder { # Inicio de nodo Cylinder
height 2.0 # Campo heigh, que define la altura del cilindro
radius 1.5 # Campo radius que define el radio del cilindro
} #Fin de nodo Cylinder
} #Fin de nodo Shape.