Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VRML
VRML
"Una combinacin de diversas tecnologas e interfaces que permite a uno o ms usuarios interactuar, en tiempo real, con un entorno o mundo dinmico tridimensional generado por computadora." Tridimensionalidad Interaccin Inmersin
Navegacin
VRML es un lenguaje para describir objetos y mundos 3D interactivos. Puede decirse que ms que un lenguaje de programacin es un lenguaje de modelamiento de escenas tridimensionales interactivas. VRML permite implementar escenas estticas o dinmicas en 3D con posibilidad de encadenamiento de texto, sonido, imgenes y vdeo. Naci en 1994 en laboratorios de Sillicon Graphics y su popularidad creci en los ltimos aos.
Est diseado para usarse sobre Internet, intranets, y sistemas locales. Los mundos VRML pueden transmitirse e inter-relacionarse a travs del WWW y visualizarse mediante algn navegador o browser VRML.
Autora
Composicin Extensin Capacidad de Implementacin Desempeo
Escalabilidad
Aplicaciones
Investigacin
Simulacin
Requisitos para trabajar con VRML Un navegador web (con el plugin necesario) o un visualizador VRML. Para editar el cdigo un editor de texto plano cualquiera, los archivos VRML tienen la extensin .wrl y .wrz (cdigo VRML comprimido con GZIP). Cabecera Para que un navegador pueda identificar que un archivo contiene cdigo VRML, este debe contener en la primera lnea: #VRML v1.0 ascii #VRML v2.0 utf8. Para la primera versin Para la segunda versin
CONCEPTOS BASICOS
Nodos Son los objetos en nuestro mundo virtual. Tambin pueden contener otros nodos (se anidan). Campos Contenidos dentro de los nodos (propiedades de los objetos). Tienen un tipo de dato asociado.
Eventos Pensados como mensajes que circulan entre nodos permitiendo la variacin de sus parmetros.
Nombres Sensible al cambio de maysculas a minsculas. Los nodos comienzan con MAYUSCULA y los campos con minscula.
Medidas Se 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.
Primitivas Son objetos predefinidos. Utilizamos el nodo Shape. Encontramos cubos, esferas, cilindros y conos. Varan su definicin segn los valores asignados a sus respectivos campos. Ejemplo 1: un cubo
Shape { geometry Box {size 4 3 5} }
La definicin de un nodo primitivo no implica su visualizacin. Para definir la apariencia de la primitiva se debe definir un color y/o una textura. Color Lo 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 ... }
PRIMITIVAS
Son objetos predefinidos. Debemos utilizar el nodo Shape: Shape { geometry Box {size 4 4 4} } Shape { geometry Cone { bottomRadius 3 height 2 } }
TRANSFORMACIONES
Transform
Nodo que permite situar, rotar y escalar los objetos. Para ello emplea los campos (fields): translation rotation scale
Rotacin Field que permite rotar el objeto respecto a los 3 ejes en radianes
Transform { translation 10 0 0 rotation 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} } } ] }
Escala Permite agrandar o reducir el tamao del objeto segn sus ejes.
Transform { scale 2 1 1 # escalado no uniforme children [ Shape { geometry Box {size 4 3 5} appearance Appearance { material Material{ diffuseColor 1 0 0} } } ] }
TEXTO
Permite posicionar en el mundo virtual una cadena de texto. Utilizamos el nodo Text que tiene los siguientes campos: string, fontStyle, maxExtent, lenght.
ENLACES
El 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 pginas Web realizadas mediante HTML). Cualquier objeto o grupo de objetos se puede convertir en un enlace.
FORMAS COMPLEJAS
IndexedFaceSet Las 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. Restricciones: (1) Los vrtices tiene que ser consecutivos siguiendo el permetro de la cara. (2) Los vrtices tiene que ir en orden antihorario mirando a la cara desde el exterior del objeto. (3) El ltimo vrtice de cada cara se enlaza con el primero (cerrando el circuito).
COLORES EN FORMAS COMPLEJAS El field colorPerVertex dice si los colores se asignarn a los vrtices o a las caras del objeto (valor booleano). En el field color se coloca una lista de colores a travs de un nodo Color. DEF Permite definir nodos de un objeto que se utilizarn en repetidas oportunidades. Le da un nombre al nodo. USE Posibilita la utilizacin de los nodos definidos anteriormente.
Se utiliza el nodo Inline que permitie crear un grupo en donde los hijos, almacenados en distintos ficheros VRML, son recuperados indicando su direccin URL.
EVENTOS
Mensaje que enviado por un objeto y recibido por otro.
Routing ROUTE es el comando que permite enlazar un eventOut con un eventIn. Interpoladores Nodos que nos permiten hacer algo en un intervalo determinado. Tipos: ColorInterpolator CoordinateInterpolator OrientationInterpolator PositionInterpolator
SENSORES
Nodo detector que reacciona ante estmulos. Sensor de Tiempo TimeSensor es un reloj que podemos utilizar a nuestro gusto. Se basa en el reloj de tiempo real del sistema.
Sensor de Proximidad ProximitySensor es un nodo que detecta la proximidad del usuario respecto a un objeto.
Sensor de Tacto TouchSensor permite detectar cuando el usuario hace click sobre algn objeto.
Texturas con Imgenes 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 trmino comportamiento se refiere a la modificacin del estado de los objetos dentro de un escenario virtual, en respuesta a alguna accin del usuario o al cambio de algn otro objeto en la escena. Este cambio de estado ocurre cuando cambia alguno de los atributos del objeto, por ejemplo la posicin (translacin), el tamao (escala), la orientacin (rotacin) o su apariencia. En VRML, el comportamiento se controla (lleva a cabo) mediante eventos. Un evento es la generacin de un mensaje y se enva de un nodo a otro. Algunos nodos VRML generan eventos en respuesta a cambios en el ambiente o interaccin 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 intervencin de ningn 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 dinmicos 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 interaccin con otros lenguajes (especficamente los lenguajes Java y Javascript). Para ello se emplea el nodo Script. De esta manera es posible asignar comportamientos ms elaborados.
Soporte de VRML para Java Java aade todas las posibilidades de programacin, adems de brindar un acceso casi transparente a la red, haciendo a VRML completamente funcional y portable. La caracterstica ms importante de Java para ser usado como lenguaje de implementacin de los scripts es su independencia de plataforma, y ello es congruente con la filosofa 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, convencin para nombres DEF/USE, y ROUTEs, conectando los nodos y los campos en la escena.