VRML

Preview:

Citation preview

Realidad VirtualRealidad Virtual

"Una combinación de diversas tecnologías e interfaces "Una combinación de diversas tecnologías e interfaces que permite a uno o más usuarios interactuar, en que permite a uno o más usuarios interactuar, en tiempo real, con un entorno o mundo dinámico tiempo real, con un entorno o mundo dinámico tridimensional generado por computadora." tridimensional generado por computadora."

Tridimensionalidad

Navegación

Interacción

Inmersión

VRML es un lenguaje para describir objetos y VRML es un lenguaje para describir objetos y mundos 3D interactivos. Puede decirse que más mundos 3D interactivos. Puede decirse que más que un lenguaje de programación es un lenguaje de que un lenguaje de programación es un lenguaje de modelamiento de escenas tridimensionales modelamiento de escenas tridimensionales interactivas. VRML permite implementar escenas interactivas. VRML permite implementar escenas estáticas o dinámicas en 3D con posibilidad de estáticas o dinámicas en 3D con posibilidad de encadenamiento de texto, sonido, imágenes y vídeo. encadenamiento de texto, sonido, imágenes y vídeo. Nació en 1994 en laboratorios de Sillicon Graphics y Nació en 1994 en laboratorios de Sillicon Graphics y su popularidad creció en los últimos años.su popularidad creció en los últimos años.

Está diseñado para usarse sobre Internet, intranets, y sistemas locales. Los mundos VRML pueden transmitirse e inter-relacionarse a través del WWW y visualizarse mediante algún navegador o browser VRML.

VRML ha sido diseñado para satisfacer los siguientes requerimientos:

Autoría

Composición

Extensión

Capacidad de Implementación

Desempeño

Escalabilidad

AplicacionesAplicaciones

• Arquitectura

• Urbanismo

• Biomedicina

• Genética

• Anatomía

• Geología

• Arte

• Investigación

• Simulación

Requisitos para trabajar con VRML

Un navegador web (con el plugin necesario) o un visualizador VRML. Para editar el código un editor de texto plano cualquiera, los archivos VRML tienen la extensión .wrl y .wrz (código VRML comprimido con GZIP).

CabeceraPara que un navegador pueda identificar que un archivo contiene código VRML, este debe contener en la primera línea:

#VRML v1.0 ascii Para la primera versión#VRML v2.0 utf8. Para la segunda versión

CONCEPTOSCONCEPTOSBASICOSBASICOS

NodosSon los objetos en nuestro mundo virtual. También pueden contener otros nodos (se anidan).

CamposContenidos dentro de los nodos (propiedades de los objetos). Tienen un tipo de dato asociado.

EventosPensados como mensajes que circulan entre nodos permitiendo la variación de sus parámetros.

NombresSensible al cambio de mayúsculas a minúsculas. Los nodos comienzan con MAYUSCULA y los campos con minúscula.

MedidasSe utilizan los metros para un mundo VRML, en lo que a ángulos se refiere, se utilizan los radianes. El tiempo se mide en segundos y los colores con RGB.

PrimitivasSon objetos predefinidos. Utilizamos el nodo Shape. Encontramos cubos, esferas, cilindros y conos. Varían su definición según los valores asignados a sus respectivos campos. Ejemplo 1: un cubo

Shape{

geometry Box {size 4 3 5}}

La definición de un nodo primitivo no implica su visualización. Para definir la apariencia de la primitiva se debe definir un color y/o una textura.

ColorLo definimos con el campo material, utilizando un nodo Material. Este último posee campos como:

diffuseColor: Es el color del objeto (RGB)emissiveColor: Color de brillo emitido por el objeto (RGB) specularColor: Es el color que refleja un objeto (RGB) ambientIntensity: Cantidad de luz ambiental que reflejará el objeto (1 solo valor) transparency: Nivel de transparencia del objeto (1 solo valor) shininess: Intensidad del brillo del objeto (1 solo valor)

Shape{ appearance Appearance{

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

PRIMITIVASPRIMITIVAS

Son objetos predefinidos. Debemos utilizar el nodo Shape:

Shape{

geometry Box {size 4 4 4}}

Shape{

geometry Cone {bottomRadius 3height 2

}}

Shape{

geometry Sphere {radius 5}}

Shape{

geometry Cylinder{radius 5height 5

}}

TRANSFORMACIONESTRANSFORMACIONES

Transform

Nodo que permite situar, rotar y escalar los objetos. Para ello emplea los campos (fields):

● translation● rotation ● scale

Todas las transformaciones pueden realizarse en el mismo nodo.

TraslaciónEste campo permite desplazar el objeto respecto a los ejes X, Y y Z.

Transform{

translation 10 0 0children[

Shape{

geometry Box {size 4 3 5}appearance Appearance{

material Material{ diffuseColor 1 0 0}}

}]

}

RotaciónField que permite rotar el objeto respecto a los 3 ejes en radianes

Transform{

translation 10 0 0rotation 0 1 0 0.5236 # equivalente a 30 grados children[

Shape{

geometry Box {size 4 3 5}appearance Appearance{

material Material{ diffuseColor 1 0 0}}

}]

}

EscalaPermite agrandar o reducir el tamaño del objeto según sus ejes.

Transform{

scale 2 1 1 # escalado no uniformechildren[

Shape{

geometry Box {size 4 3 5}appearance Appearance{

material Material{ diffuseColor 1 0 0}}

}]

}

TEXTOTEXTOPermite posicionar en el mundo virtual una cadena de texto. Utilizamos el nodo Text que tiene los siguientes campos: string, fontStyle, maxExtent, lenght.

ENLACESENLACESEl nodo Anchor crea un grupo especial ya que seleccionando cualquier objeto perteneciente a dicho grupo se salta hacia otro mundo virtual o pagina Web (equivalentes a los enlaces existentes en las páginas Web realizadas mediante HTML). Cualquier objeto o grupo de objetos se puede convertir en un enlace.

IndexedFaceSetLas primitivas son muy restrictivas en cuanto a formas. Con esta estructura podemos definis geometrias arbitrariamente. Este modelo permite definir un objeto 3D apartir de sus vertices y caras.

FORMAS COMPLEJASFORMAS COMPLEJAS

Restricciones:(1) Los vértices tiene que ser consecutivos siguiendo el perímetro de la cara.(2) Los vértices tiene que ir en orden antihorario mirando a la cara desde el exterior del objeto.(3) El último vértice de cada cara se enlaza con el primero (cerrando el circuito).

COLORES EN FORMAS COMPLEJAS

El field colorPerVertex dice si los colores se asignarán a los vértices o a las caras del objeto (valor booleano).En el field color se coloca una lista de colores a través de un nodo Color.

DEFPermite definir nodos de un objeto que se utilizarán en repetidas oportunidades. Le da un nombre al nodo.

USE Posibilita la utilización de los nodos definidos anteriormente.

OBJETOS ALMACENADOS EN FICHEROSOBJETOS ALMACENADOS EN FICHEROS

En ocasiones conviene almacenar cada objeto en su pripio fichero. Por ejemplo se deseara modelar una habitación, los diferentes elementos que van a aparecer dentro de ella: paredes, puertas, mesas, sillas, cama, etc, son objetos independientes entre si pero que se engloban dentro de un mismo espacio y, que además, pueden aparecer varias veces en el diseño de todo mundo virtual.Se utiliza el nodo Inline que permitie crear un grupo en donde los hijos, almacenados en distintos ficheros VRML, son recuperados indicando su dirección URL.

Inline{

url "mundo-virtual.wrl" }

EVENTOSEVENTOSMensaje que enviado por un objeto y recibido por otro.

RoutingROUTE es el comando que permite enlazar un eventOut con un eventIn.

InterpoladoresNodos que nos permiten hacer algo en un intervalo determinado. Tipos:

● ColorInterpolator● CoordinateInterpolator● OrientationInterpolator● PositionInterpolator

SENSORESNodo detector que reacciona ante estímulos.

Sensor de TiempoTimeSensor es un reloj que podemos utilizar a nuestro gusto. Se basa en el reloj de tiempo real del sistema.

Sensor de ProximidadProximitySensor es un nodo que detecta la proximidad del usuario respecto a un objeto.

Sensor de TactoTouchSensor permite detectar cuando el usuario hace click sobre algún objeto.

Texturas con Imágenes

Serie de pixeles que se mapean en nuestro objeto (imagen jpg, jpeg, gif ó png). Esto se hace con el nodo ImageTexture.

Shape{

geometry Box {size 4 3 5}appearance Appearance{

material Material{ diffuseColor 1 0 0}texture ImageTexture {url “imagen.jpg"}

}}

Textura con Videos

El nodo MovieTexture se puede utilizar para que un objeto tenga un video como textura.

Shape { appearance Appearance { texture MovieTexture { url "ejemplo.mpg" speed 1 loop FALSE } } geometry ... }

Comportamiento en Mundos Virtuales

El término comportamiento se refiere a la modificación del estado de los objetos dentro de un escenario virtual, en respuesta a alguna acción del usuario o al cambio de algún otro objeto en la escena. Este cambio de estado ocurre cuando cambia alguno de los atributos del objeto, por ejemplo la posición (translación), el tamaño (escala), la orientación (rotación) o su apariencia. En VRML, el comportamiento se controla (lleva a cabo) mediante eventos. Un evento es la generación de un mensaje y se envía de un nodo a otro. Algunos nodos VRML generan eventos en respuesta a cambios en el ambiente o interacción del usuario.

Comportamiento Simple Es aquel en el cual los cambios en el estado de los objetos dependen exclusivamente de eventos internos generados por nodos descritos dentro del programa VRML, sin la intervención de ningún lenguaje ajeno a VRML.

Comportamiento Complejo Es aquel en el cual los cambios en el estado de los objetos dependen de un programa escrito en un lenguaje ajeno a VRML. Los cambios dinámicos en la escena pueden ser estimulados por las acciones programadas en un script, paso de mensajes, comandos del usuario o protocolos de comportamiento. Esto brinda la posibilidad de interacción con otros lenguajes (específicamente los lenguajes Java y Javascript). Para ello se emplea el nodo Script. De esta manera es posible asignar comportamientos más elaborados.

Soporte de VRML para Java

Java añade todas las posibilidades de programación, además de brindar un acceso casi transparente a la red, haciendo a VRML completamente funcional y portable. La característica más importante de Java para ser usado como lenguaje de implementación de los scripts es su independencia de plataforma, y ello es congruente con la filosofía de VRML y la de WWW.

Se utiliza el API para este lenguaje, en donde se definen todas las clases para acceder a los nodos de VRML Las interfaces entre VRML y Java se llevan a cabo por medio del nodo Script, un manejador de eventos, convención para nombres DEF/USE, y ROUTEs, conectando los nodos y los campos en la escena.

Muchas Gracias !!!Muchas Gracias !!!

Recommended