Vous êtes sur la page 1sur 45

Diseo Grafico

Manual de VRML

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERA INDUSTRIAL Y DE SISTEMAS
AREA DE TECNOLOGIA DE LA PRODUCCION

DISEO GRAFICO
TEXTO VIRTUAL
Profesor: EDUARDO CIEZA DE LEON TUESTA UBICACIN VIRTUAL:

WWW.DOKEOS.COM

CURSO: DISEO GRAFICO

1 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

VRML
VRML lenguaje de escenas con el que se pueden desarrollar mundos interactivos en tres dimensiones (3-D) denominado "realidad virtual" VRML (Virtual Reality Modeling Language: lenguaje de modelacin de la realidad virtual). -La palabra modelado hace referencia al carcter grfico Acceso a la realidad virtual ; por medio de un navegador de VRML. Estos navegadores de VRML funcionan normalmente como plug-ins de los navegadores tradicionales del Web, (Explorer Netscape) Estndar actual del VRML VRML 2.0 ( VRML 97) Propuesta presentada por Silicon Graphics bajo el nombre de "Moving Worlds" (mundos en movimiento), pasando a ser el actual estndar oficial . Caractersticas del VRML 2.0: Los objetos pueden tener comportamientos propios, especificados incluso con scripts en otros lenguajes distintos (JavaScript, Java, Visual Basic, etc.) lo que le confiere una enorme flexibilidad. Se potencia la interactividad del usuario con el entorno: se pueden definir sensores (de posicin, colisin, contacto, etc.) que informan de lo que est haciendo el usuario para que los objetos puedan actuar en consecuencia. Para aadir realismo a los escenarios tridimensionales, se pueden crear fondos grficos, efectos de niebla, sonidos tridimensionales, etc. Aplicaciones reales Arquitectura ,Decoracin , Consumo ,Ciencia ,Turismo , Astronoma , Arqueologa, Ingeniera etc. Visualizadores de VRML Los usuarios del Netscape Communicator 4.01 tienen ya instalado como plug-in de VRML el Cosmo Player de Silicon Graphics. La ltima versin del Cosmo Player es la 2.1 (mnimo Win95/NT), Se puede obtener de http//Cosmo Software.com Obtenido el Archivo , se ejecuta, y la instalacin dentro del Netscape o Explorer se har de forma automtica. Documentos VRML En un procesador cualquiera de textos se crea un un archivo de texto con la extensin .wrl .Este ser un documento VRML, que ser ejecutado por el visualizador, de manera completamente anloga a los documentos HTML Tambin se pueden crear estos documentos utilizando ciertos programas editores de VRML, que los generan automticamente, sin necesidad de saber programar en este lenguaje. 2 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Estructura de los documentos VRML


En lneas generales, un documento VRML contiene los siguientes elementos: Lnea de cabecera Comentarios al cdigo Nodos

Lnea de cabecera Todo documento VRML debe comenzar necesariamente con la siguiente lnea: #VRML V2.0 utf8 utf8 sirve para permitir el uso de caracteres internacionales. No se debe dejar ningn espacio en blanco antes del smbolo #, Comentarios al cdigo En este lenguaje los comentarios se escriben en una sola lnea que comienza con el smbolo #. Ejemplo: # Este es un comentario al cdigo

Nodos
Los nodos son las unidades bsicas que forman el mundo virtual ,son bloques de informacin que definen las caractersticas de un objeto concreto (su forma, su apariencia, etc.), o la relacin entre distintos objetos. Nodos primitivos Son los nodos de geometra primitiva, que son: Box - caja Cone - cono Cylinder - cilindro Sphere - esfera Box { ... } A continuacin se escribe el campo, que es un atributo del nodo que podemos cambiar a voluntad, poniendo los valores que nos interesen. En este caso servir para establecer las dimensiones de la caja, como se ver a continuacin 3 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Box {size 2 0.5 3} Sustituyendo ahora los puntos suspensivos por el campo que define este nodo, que es size (tamao) con sus valores correspondientes (las dimensiones), queda el nodo completado de esta manera : Cone { height 3 bottomRadius 0.75 } Cylinder { height 2 radius 1.5 } Sphere { radius 1 }

Nodo Shape
Para crear un objeto visible se utiliza el nodo Shape; tiene dos campos: appearance Controla la apariencia del objeto (color, textura, iluminacin, etc.) geometry Controla la geometra del objeto. Estructura general del nodo :
Los puntos suspensivos representan los valores de cada campo

Shape { appearance ... geometry ... }

El nodo Shape tiene el campo appearance , y ste como valor un nodo llamado Appearance (todo nodo comienza con mayscula) cuyo campo se denomina material, del cual su valor es otro nodo, llamado Material, en el que se ha dejado en blanco su contenido , lo que hace que estn definidas las caractersticas por defecto de este nodo.

#VRML V2.0 utf8 Shape { appearance Appearance { material Material { } } geometry Cone { height 3 bottomRadius 0.75 } }

4 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Nodo Text
Va incrustado en el nodo Shape. Los textos son siempre planos y no tienen espesor. Se puede determinar el tipo de fuente, su estilo y tamao, etc.
Tiene, dos campos:

string (en ingls, fila). Su valor es el texto que se quiere poner. fontStyle Su valor es un sub-nodo llamado FontStyle

El campo fontStyle es opcional. Si se omite, el texto tendr el estilo de fuente por defecto.
Valor del campo string (el texto)

string ["Esta es la primera fila de texto", "esta es la segunda fila","etc."]


Cada fila de texto va entre comillas, con una coma al final de cada lnea, y todo entre corchetes: [ ]

Shape { appearance ... geometry Text { string ... fontStyle ... } }

Nodo FontStyle Veamos su estructura con un ejemplo: FontStyle { family "SERIF", style "BOLD", size 1 spacing 1 }
En este ejemplo, el nodo FontStyle tiene los siguientes campos:

family Determina la familia de fuente.Podra ser "SERIF", "SANS" o "TYPEWRITER" (estn en maysculas. ) style: Pueden ser "BOLD" (negrita), "ITALIC" (cursiva), "BOTH" (ambas, es decir, negrita y cursiva), o "NONE" (ninguna de las otras). size: Tamao de la fuente, en unidades VRML. En el ejemplo las letras se supone tienen un metro de altura. spacing: Separacin entre lneas, en unidades VRML. justify: Determina la justificacin del texto. Puede ser "BEGIN" (a la izquierda), "MIDDLE" ( centrado) o "END" ( a la derecha).

Text { string ["Esta es la primera fila de texto", "esta es la segunda fila","etc."] fontStyle FontStyle { family "SERIF", style "BOLD", size 1 spacing 1 } } 5 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Agrupacin de nodos.
Cmo poder agrupar un conjunto de nodos para conseguir formas ms complejas. Nodo Group Nodo Transform Nodo Switch Nodo Billboard

Nodo Group
Trata a un conjunto de nodos como una entidad nica, pero sin efectuar ninguna transformacin en ellos.

Tiene el campo children cuyo valor va entre corchetes [ ], que es la lista de los objetos que se quieren agrupar, representados por sus respectivos nodos Shape Ejemplo: Agrupar una caja y un cono
#VRML V2.0 utf8 Group { children [ #caja: Shape { appearance Appearance { material Material { } } geometry Box { size 2 0.5 3 } } #cono: Shape { appearance Appearance { material Material { } } geometry Cone { height 3 bottomRadius 0.75 } } ] }

Group { children [ Shape { ... }, Shape { ... }, ... ] }

Se puede observar que la caja y el cono estn superpuestos. Esto es debido a que los objetos son creados todos en el mismo punto: en el centro del escenario de realidad virtual.

6 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Nodo Transform
Con el nodo Group, se agrupa un conjunto de objetos creados haciendo coincidir su centro con el centro del sistema de coordenadas, como se puede apreciar en la figura . Con el nodo Transform, se determina un nuevo sistema de coordenadas para un grupo de objetos. Este nuevo sistema de coordenadas puede ser modificado (transformaciones) puede ser trasladado, girado un determinado ngulo, y tener una escala (tamao relativo) distinta a la original.

Un punto en el espacio est definido por su posicin con respecto al centro de coordenadas. En el lenguaje VRML se adopta la convencin de que sea X la distancia que ese punto est desplazado a la derecha o a la izquierda del centro, Y la distancia por encima o por debajo, y Z la distancia hacia delante o hacia atrs.

El grupo de objetos especificados en el nodo sufrirn las mismas transformaciones, es decir, sern trasladados, girados y variados de escala. Estructura del nodo Transform Su estructura general es la siguiente:

Transform { translation . . . rotation . . . scale ... children [ . . . ] }

Como se ve, tiene tres campos con los que se determina su posible traslado, rotacin o nueva escala, y un cuarto campo children, en donde se especifican cules son los objetos agrupados que sufrirn esas transformaciones. No tienen por qu estar los tres campos a la vez.

7 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Ejemplo:
El orden para el traslado de las coordenadas es X, Y, Z. en este caso, hay una traslacin de 20 unidades hacia la derecha (si hubiera sido hacia la izquierda se habra puesto 20 ) . Tal como se ha puesto el valor del campo rotation quiere decir lo siguiente: rotacin de 90 alrededor del eje X. Las tres primeras cifras slo pueden tener el valor 0 1, y representan la rotacin alrededor de cada eje, en este orden: X, Y, Z. La cuarta cifra representa el ngulo girado, expresado en radianes. Para calcular la correspondencia entre grados y radianes, hay que tener en cuenta que 180 equivalen al nmero pi en radianes, es decir a 3.14 radianes. Por tanto, 90 sera la mitad de 3.14, es decir 1.57 radianes. El sentido del giro es el de un sacacorchos avanzando en la direccin positiva de los ejes.

Transform { translation 20 0 0 rotation 1 0 0 1.57 scale 0.5 2 0.5 children [ ... ] }

Los valores del campo scale representan las variaciones de las dimensiones con respecto a los ejes X, Y , Z. En el ejemplo se ha supuesto, que las dimensiones se reducen en la direccin de las X a la mitad (0.5), se duplican en la direccin del eje Y (2), y se reducen a la mitad en la direccin del eje Z (0.5). Si se hubiera variado la misma cantidad en los tres valores (por ejemplo, 0.5) se habra mantenido las proporciones de la pieza.

Ejemplo del winzip a ser construido con conceptos como Shape y Transform

8 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Trabajos de estudiantes del Ing. Eduardo Cieza de Len T.

9 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Ejemplo de uso del Nodo Transform, y Group


(Los colores no se asignan para el ejemplo)

La mesa de Billar
#Base DEF base Shape {appearance Appearance {material Material { } } geometry Box {size 6 1.4 3}} #Franela Transform { translation 0 0.71 0 children [ Shape { appearance Appearance {material Material { }} geometry Box {size 6 0.01 3} } ] }

#Taco Transform {rotation 0 10 -15 3.14 translation -0.3 1.2 2 children [Shape {appearance Appearance {material Material { } } geometry Cylinder {radius 0.05 height 2 } } ] } #Mango Transform {rotation 0 10 -15 3.14 translation -0.3 1.66 3.1 children [Shape {appearance Appearance {material Material { }} geometry Cylinder {radius 0.05 height 0.5} } ] } #bola 1 Transform {translation -0.1 0.801 -1 children [ Shape {appearance Appearance { material Material { } } geometry Sphere {radius 0.1 } } ] } #bola2 Transform {translation -0.2 0.801 0.5 children [ Shape {appearance Appearance {material Material { } } geometry Sphere {radius 0.1 } } ] } #bola3 Transform {translation -0.8 0.801 1 children [ Shape {appearance Appearance { material Material { } } geometry Sphere {radius 0.1} } ] }

10 Ing.Eduardo Cieza de Len T.

Diseo Grafico
#bola4 Transform {translation 1 0.801 0.6 children [ Shape {appearance Appearance { material Material { } } geometry Sphere {radius 0.1 } } ] } #bola5 Transform {translation 0.2 0.801 1 children [ Shape {appearance Appearance { material Material { } } geometry Sphere {radius 0.1 } } ] } #Patas DEF #Pata1 #Pata2 #Pata3 Transform {translation 2.9 -0.8 1.4 children [USE Pata]} #Pata4 Transform {translation 2.9 -0.8 -1.4 children [USE Pata]} Pata Shape {appearance Appearance {material Material { } } geometry Cylinder { height 0.2 radius 0.1} } Transform {translation -2.9 -0.8 -1.4 Transform {translation -2.9 -0.8 1.4 children [USE Pata]} children [USE Pata]}

Manual de VRML

#banda Transform {translation 2.9 0.8 0 rotation 1 0 0 1.57 children [ DEF borde1 Shape {appearance Appearance {material Material { } } geometry Cylinder {radius 0.1 height 3 } } ] } #banda2 Transform {translation -2.9 0.8 0 rotation 1 0 0 1.57 children [USE borde1] }

Transform {translation 0 0.8 1.4 rotation 1.4 2 -100 1.57 children [ DEF borde2 Shape {appearance Appearance {material Material { }} geometry Cylinder {radius 0.1 height 6 } } ] } #banda3 Transform {translation 0 0.8 1.4 rotation 1.4 2 -100 1.57 children [USE borde2 ] } #banda4 Transform {translation

0 0.8 -1.4

rotation 1.4 2 -100 1.57 children[USE borde2]}

#borde1 Transform { translation 0 0.81 -1.6 children [DEF bordext Shape{appearance material Material { } } geometry Box {size 6 0.2 0.3} } ] } #borde2 Transform { translation 0 0.81 1.6 children [USE bordext ] }

Appearance {

#borde3 Transform {translation 3.1 0.81 0 children [DEF bordext2 Shape {appearance material Material{ } } geometry Box {size 0.3 0.2 3.5} } ] } #borde4 Transform {translation -3.1 0.81 0 children [USE bordext2 ] }

Appearance {

11 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Nodo Switch
Sirve para agrupar otros nodos, pero con una diferencia: slo ser utilizado uno de los hijos agrupados. Su estructura es la siguiente:

Switch { whichChoice 0 choice [...] choice [...] choice [...] }

El campo whichChoice (en ingls, cul eleccin) cuyo valor es un nmero que indica cal hijo choice es el elegido (0, 1, 2, etc.) y este ser el nico visible. Si este valor es -1, entonces se indica que no est elegido ninguno. Utilidad del nodo: Un posible uso de este nodo es el de tener preparadas diferentes versiones del nodo Shape), es decir, diferentes formas de un objeto. Bastar con variar el valor de whichCoice para pasar rpidamente de una forma a otra.

Nodo Billboard
Este nodo sirve para agrupar otros nodos hijos. al contrario del anterior todos los nodos agrupados sern visibles. Lo indito de este nodo es que crea un sistema de coordenadas para los nodos agrupados que est siempre de cara al espectador. Su estructura es la siguiente: Tiene un campo, axisOfRotation (eje de rotacin), cuyo valor es un grupo de tres cifras que indican cul es el eje alrededor del cual se efecta automticamente el giro para permanecer siempre de cara. La convencin utilizada es la misma que para la rotacin, excepto que en este caso no hace falta poner un cuarto valor para expresar el ngulo. Billboard { axisOfRotation 0 1 0 children [ . . . ] }

12 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Formas complejas

Formas complejas. Puntos

Como se ha visto antes , agrupando y modificando formas primitivas se pueden conseguir otras formas ms complejas. Hay objetos cuya representacin con las formas primitivas sera complicado , y se generaran archivos VRML demasiado voluminosos. Para construir las formas complejas, hay un mtodo que consiste en definir una serie de puntos en el espacio y luego unirlos entre s para crear lneas o superficies.

Nodo Coordinate
Este nodo se utilizar dentro de otros nodos y sirve simplemente para definir una serie de puntos en el espacio tridimensional. Estructura del nodo : Coordinate { point [ 12 11 17.1, 20.5 13.8 5.3, 14 6.1 22.9 ] } Este nodo tiene un campo point , cuyo valor son grupos de tres cifras, separadas por comas, englobadas entre corchetes [ ]. Cada grupo de tres cifras representa un punto en el sistema de coordenadas En el ejemplo estn definidos tres puntos, pero se pueden poner tantos como se quiera.

Este nodo se utiliza dentro de otros nodos, para conseguir cosas distintas: PointSet - para crear puntos aislados IndexedLineSet - para crear lneas IndexedFaceSet - para crear caras (superficies)

Nodo PointSet, para crear puntos aislados


PointSet { coord Coordinate { point [ . . . ] } color Color { color [ . . . ] } } Aplicando al ejemplo del nodo Coordinate, quedara de esta manera: PointSet { coord Coordinate { point [ 12 11 17.1, 20.5 13.8 5.3, 14 6.1 22.9 ] } }

13 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

La inclusin del nodo PointSet deber hacerse dentro del campo geometry de Shape y quedara as :
Shape { appearance ... geometry PointSet { ... } }

Desarrollando totalmente el ejemplo: #VRML V2.0 utf8 #Ejemplo de un grupo de tres puntos Shape { appearance Appearance { material Material { } } geometry PointSet { coord Coordinate { point [ 12 11 17.1, 20.5 13.8 5.3, 14 6.1 22.9 ]} } }

Aqu se carga el escenario con los tres puntos, al que se le han aadido unos ejes coordenados. Se observar que se ven los puntos con la apariencia por defecto (es decir, sin color ni textura). Pero los puntos pueden tener color si se desea.

Color en los puntos


En el cuadro resaltado se aprecia la aparicin del campo color que tiene como valor el nodo Color, que a su vez tiene como valor el campo color de nuevo. Ejemplo: #VRML V2.0 utf8 #Ejemplo de un grupo de tres puntos con colores Shape { geometry PointSet { coord Coordinate { point [ 12 11 17.1, #1 punto 20.5 13.8 5.3, #2 punto 14 6.1 22.9 #3 punto ] } color Color { color [ 1 0 0, # 1 punto rojo 0 1 0, # 2 punto verde 1 1 0 # 3 punto amarillo ] } } }

Se ha obviado el campo appearance del nodo Shape, que haba en el ejemplo anterior, ya que no es necesario, pues los puntos no van a tener la apariencia por defecto, sino la que se determina en el campo color. En el campo color se puede observar que hay (entre corchetes) tres grupos de nmeros, separados por comas. Cada grupo de tres cifras representa un color, para cada punto expresado en el campo point, y correspondindose en el mismo orden.

14 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Los colores corresponden a un cdigo de colores . En otro caso por ejemplo el color blanco sera 1 1 1 , y el color negro el 0 0 0 , el azul el 0 0 1. COLOR Y TRANSPARENCIA El campo de apariencia denominado material esta definido por el nodo Material por medio del cual se definen los efectos de color y transparencia a traves de los campos mostrados: #VRML V2.0 utf8 Shape {appearance Appearance {material Material { } } geometry Sphere {radius 2} } #VRML V2.0 utf8 Shape {appearance Appearance {material Material {diffuseColor 1 0 1 emissiveColor 0 1 0 transparency 0.5 } } geometry Sphere {radius 2} }

diffuseColor: Color externo del objeto emissiveColor:Color interno transparency : Grado de transparencia ( de 0 a 1)

Uso del sistema RGB (rojo verde azul), as 1 0 0 significa solo rojo , en nuestro ejemplo 1 0 1 , la combinacin de rojo y azul para el color externo

otros campos: specularColor: Color de los puntos brillantes de los objetos ( Sistema RGB) shininess : Intensidad de emisin de luz en los puntos brillantes (de 0 a 1) ambientIntensity: Cantidad de luz reflejada de los objetos (de 0 a 1)

TEXTURAS
La apariencia de un objeto no slo se d con el campo material ( con el que hemos definido el color y la transparencia) sino con otros que permitirn asignarle una textura de imagen o video . texture dispondr de los nodos: ImageTexture Para insertar imgenes jpg, gif png MovieTexture Para insertar pelculas en formato MPG (tambin admite algunos Gif animados)

(Tambin se dispone del nodo PixelTexture, que permite crear una hecha por nosotros pixel a pxel .) 15 Ing.Eduardo Cieza de Len T.

imagen

Diseo Grafico

Manual de VRML

#VRML V2.0 utf8 Shape {appearance Appearance #VRML V2.0 utf8 Shape {appearance Appearance {material Material { } } geometry Sphere {radius 2} }

{texture ImageTexture { url "richi.jpg" } }


geometry Sphere {radius 2} }

(La imagen richi.jpg envolver a la esfera de radio 2) Ejemplo: Lata de bebida-Ntese la creacin de 3 cilindros y la desactivacin de los campos correspondientes en cada forma Shape {appearance Appearance {texture ImageTexture {url "env.jpg"}} geometry Cylinder {radius 1 height 1.8 top FALSE bottom FALSE }} Shape {appearance Appearance {texture ImageTexture {url "tapa.jpg"}} geometry Cylinder {radius 1 height 1.8 side FALSE bottom FALSE }} Shape {appearance Appearance {texture ImageTexture {url "inf.jpg"}} geometry Cylinder {radius 1 height 1.8 side FALSE top FALSE }}

top

side bottom

tapa . jpg

base . jpg

env . jpg

16 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Textura con

MovieTexture
loop Indica si la pelcula esta esttica (FALSE) o en mov. (TRUE). speed escala de velocidad (ej. speed 2 es doble de velocidad) repeatS la pelc. Se repite vertic. repeatT La pelc.se repite horizont.

Shape { appearance Appearance { texture MovieTexture { url "Dongato.mpg" speed 1 loop TRUE } } geometry Box{size 3 3 0.2 } }

Insertar unos archivos en otros Transform { translation 3 0 0 children [ Inline { url ["mesa.wrl"] } ] } Transform { translation 0 0 2 children [ Inline { url ["silla.wrl"] } ] }

nodo

Inline
El nodo Inline inserta otros archivos VRML indicndose su ubicacin . (igual que la insercin de imgenes en HTML)

Los Fondos

nodo Background
Cielo y suelo , cada uno con una degradacin de dos colores,en forma circular.

Por degradacin de colores

Background { [ 1 0.3 0.1, 0.2 0.8 0 ] groundAngle [ 0.785 ] skycolor [ 0.2 0.1 1, 0 0.5 1 ] skyAngle [ 0.785 ] }
groundColor

configura el color del suelo angulo acupado por el suelo (0 a pi) color del cielo Angulo del cielo (0 a pi)

17 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Con panorama usando imgenes

Seis texturas ubicadas a los lados de un cubo

Background { frontUrl "delante.gif" backUrl "posterior.gif" leftUrl "izquierdo.gif" rightUrl "derecho.gif" bottomUrl "base.gif" topUrl "superior.gif" }

Acepta imgenes gif o jpg Una puede ser usada en todo los planos El observador se ubica al centro del cubo

ILUMINACIN
Tres tipos de luces : PointLight DirectionalLight SpotLight Un punto de ubicacin, ilumina en toda direccin Necesita definir una direccin para iluminar Define su iluminacin por dos conos

cuatro campos comunes para cualquier tipo de luz,valores por defecto

18 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

on TRUE intensity 1 ambientIntensity 0 color 1 1 1

#TRUE encendida, FALSE apagada #Intensidad luminosa de 0 a 1 #luz de ambiente de 0 a 1 #color del ambiente

DirectionalLight {
direction 0 0 -1 } #orientacin de los rayos de luz

PointLight {
location 0 0 0 #posicin de la fuente de luz en x y z radius 1 #esfera de influencia attenuation 1 0 0 } #atenuacin en funcin de la distancia

SpotLight {
location 0 0 0 direction 0 0 -1 cutOffAngle 1.05 beamWidth 0.70 radius 1 attenuation 1 0 0 #posicin de la fuentede luz en x y z #orientacin delos rayos de luz #Lmite de influencia de luz,atenuada # Luz uniforme #esfera de influencia #atenuacin en funcin de la distancia

location

beamWidth

cutOffAngle

19 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Extrusion
Extruir en VRML, es obtener un objeto 3D, al desplazar el dibujo de un polgono 2D normalmente cerrado (seccin) en una direccin determinada en el espacio (direccin).
Shape {appearance .... geometry Extrusion { crossSection [ 10 10 , -10 10, -10 -10, 10 -10, 10 10 ] spine [ 0 -5 0, 0 5 0 ] solid FALSE } } La seccin se define con el campo crossSection, por pares de coordenadas en el plano xz, la primera y la ltima son las mismas para que el polgono cierre. --------------------------------------La extrusin se obtiene con spine, que indica hacia donde se dirigir la seccin en el espacio. -para definir una direccin slo necesitamos las coord. (x y z) de dos puntos en el espacio-. ---------------------------------------En el Ej. El cubo de 10 de altura se muestra con la base en la coord.. y =-5 , la tapa en la coord.. y=5 solid permite ver las caras, si su valor es FALSE.(como un cubo)

Si deseamos mostrar el modelo como una caja, debemos desactivar la tapa, con el campo endCap y su valor FALSE (la que corresponda a la segunda coordenada del campo spine), y si fuesen las dos tapas, entonces tanto endCap como beginCap, en FALSE.

Shape {appearance Appearance {material Material {}} geometry Extrusion {crossSection [10 10 , -10 10 , -10 10 , 10 10 , 10 10 ] spine [ 0 -5 0, 0 5 0 ] solid FALSE endCap FALSE}}

Shape {appearance Appearance {material Material {}} geometry Extrusion {crossSection [10 10 , -10 10 , -10 10 , 10 10 , 11 10 ] spine [ 0 -5 0, 0 5 0 ] solid FALSE endCap FALSE beginCap FALSE }}

20 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Podemos crear el objeto de la derecha, usando la misma seccin definida anteriormente, pero adicionando niveles (mas coord para el spine) y cambiando las escalas de las secciones en los diferentes niveles utilizando el campo scale
Shape {appearance Appearance {material Material {}} geometry Extrusion {crossSection [10 10 , -10 10 , -10 -10 , 10 -10 , 10 10 ] spine [ 0 -5 0, 0 0 0, 0 5 0, 0 10 0 ] scale [ 1 1, 1.2 1.2, 1 1, 1 1] solid FALSE }}

Una escalera bsica

Transform { children [ Shape { appearance Appearance { material Material { } } geometry Extrusion { crossSection [4.5 2.5,4.5 1.5,3.5 1.5,3.5 0.5, 2.5 0.5,2.5 -0.5,1.5 -0.5,1.5 -1.5, 0.5 -1.5,0.5 -2.5,-0.5 -2.5,-0.5 2.5, 4.5 2.5 ] spine [0 0 0,0 0 1 ] scale [1 1,1 1 ] convex FALSE solid FALSE } } ] }

21 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

La columna torcida
Un paraleleppedo de base 2x2, con una altura de 4 unidades en el eje Y, se ha dividido la ruta en vectores de 0.5 unid de tal suerte que la seccin (definida con crossSection) pueda manipularse en cada punto del spine , en este caso se ira rotando gradualmente cada 0.05 radianes. El resultado es un paraleleppedo torcido como se muestra.

Shape {appearance Appearance {material Material {transparency 0}texture ImageTexture {url "BRICK.JPG"} textureTransform TextureTransform {scale 2 2 }} geometry Extrusion {crossSection [-1 1,1 1, 1 -1 ,-1 -1,-1 1] spine [ 0 0 0, 0 0.5 0, 0 1 0, 0 1.5 0, 0 2 0, 0 2.5 0, 0 3 0, 0 3.5 0, 0 4 0] scale [1 1,1 1,1 1] orientation [0 1 0 0.05, 0 1 0 0.1, 0 1 0 0.15, 0 1 0 0.2, 0 1 0 0.25, 0 1 0 0.3, 0 1 0 0.35, 0 1 0 0.4, 0 1 0 0.45] creaseAngle 0.78 solid FALSE }}

22 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Eventos
Mensajes que circulan entre los nodos y que hacen que se puedan variar los parmetros de un objeto durante el tiempo de navegacin y ejecucin . Los eventos son campos especiales. Tipos eventIn Aceptan eventos dirigidos a ellos (Son eventos de entrada). eventOut: Envian eventos.(Son eventos de salida). exposedField : Envian eventos , tambin pueden recibir eventos. Para generar eventos, necesitamos unirlos . Esta unin se hace con un comando ROUTE. Por ejemplo, para dirigir un touchTime eventOut a un startTime eventIn (reproducir un sonido con un clic del ratn), dirigiramos el evento como sigue:
ROUTE SENSOR.touchTime TO SOUND.startTime

As que ste trozo de cdigo dirigir el evento del touchTime de un TouchSensor (que cubriremos luego) a un evento startTime en un nodo de sonido (que tambin cubriremos luego). Por consiguiente, cuando el TouchSensor es pulsado con el raton, el sonido se activar. Necesitas usar DEF para cada nodo que precises dirigir hacia o desde, para que tengan nombres individuales. De esta manera el TouchSensor y el nodo del sonido se deberan definir con un nombre. DEF SENSOR TouchSensor { } DEF SOUND Sound { }

Los eventIn llevan el prefijo set_. Por ejemplo: set_rotacionRuedaCoche. Los eventOut llevan el sufijo _changed.

Por ejemplo: motorRuedaCoche_changed.

23 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

24 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

25 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

26 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

27 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Eventos en cascada
Aporte del Trabajo presentado por la Srta. Luz Castaeda-Estudiante del curso.Ciclo 2006-2

Una vez que un sensor ha generado un evento inicial, el evento se propaga desde el eventOut generando el evento por cualquier ROUTE hacia otros nodos. Estos otros nodos pueden responder generando eventos adicionales, y continan hasta que los routes han sido pasados. A este proceso se le conoce con el nombre de cascada de eventos. A todos los eventos generados durante una determinada cascada de eventos se les asigna el mismo sello de tiempo que al evento inicial, ya que todos suceden simultneamente. Algunos sensores generan eventos mltiples simultneamente. Similarmente, es posible que eventos generados asncronamente lleguen al mismo tiempo que uno o ms eventos generados por sensor. En estos casos, todos los eventos generados son parte de la misma cascada del evento inicial y cada evento tiene el mismo sello de tiempo. 28 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Despus de que todos los eventos de la cascada del evento inicial son realizados, el procesamiento post-evento desempea acciones provocadas por la cascada de eventos. La secuencia completa de eventos que suceden en un solo sello de tiempo es como sigue: a) Realizar evaluacin de la cascada de eventos. b) Llamar a la funcin shutdown( ) en los scripts que han recibido eventos set_url o estn siendo removidos de la escena. c) Enviar eventos finales desde sensores ambientales que estn siendo quitados de la jerarqua de transformacin. d) Aadir o quitar ROUTES especificados en addRoute( ) o deleteRoute( ) de

cualquier ejecucin de script en la cascada de eventos predecesora. e) Llamar a eventsProcessed( ) para los scripts que han enviado eventos en la recin terminada cascada. f) Enviar eventos de inicio desde cualquier sensor medioambiental creado dinmicamente. g) Llamar a initialize( ) del cdigo recientemente cargado. h) Si algn evento fuera generado desde el paso 2 al 7, ir al paso 2 y continuar. La Figura . Provee una ilustracin conceptual del modelo en ejecucin.

Los nodos que contienen eventOuts o exposedFields deberan producir a lo ms un evento por sello de tiempo. Si un campo es conectado a otro campo va ROUTE, una aplicacin debera enviar solamente un evento por ROUTE por sello 29 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

de tiempo. Esto tambin se aplica a scripts donde las reglas determinan la accin apropiada para enviar eventOuts se definen en Ejemplo, orden de procesamiento de evento.

En la figura anterior, las flechas saliendo del script ep son eventos generados durante el eventsProcessed( ) llaman al script. Las otras flechas son eventos enviados durante un mtodo eventIn. Una posible orden de ejecucin es como sigue: 1 El usuario activa el TouchSensor 2 Corre la cascada del evento iniciador (paso1) o Script 1 corre, genera un evento para el Script 2 o Script 2 corre o Fin de la cacada del evento inciador. 3 Ejecutar llamadas a eventsProcessed (paso 5) o eventsProcessed para Script 1 corre, enva evento al Script 3 o Script 3 corre, genera evento para Script 5 o Script 5 corre o eventsProcessed para Script 2 corre, enva eventos para Script 4 o fin del procesamiento eventsProcessed 4 Ir al paso 2 para eventos generados (paso 8) 5 Ejecutar las llamadas al eventsProcessed (step 5) o El eventsProcessed para Script 3 corre, enva un evento al Script 6 o Script 6 corre, enva un evento al Script 7 o Script 7 corre o El eventsProcessed para el Script 4 corre, no genera evento alguno o El eventsProcessed para el Script 5 corre, no genera evento alguno 30 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

o Fin del procesamiento del eventsProcessed 6 Ir al paso 2 para eventos generados (paso 8) 7 Ejecutar las llamadas eventsProcessed (paso 5) o El eventsProcessed para Script 6 corre, no genera evento alguno. o El eventsProcessed para Script 7 corre, no genera evento alguno. o Fin del procesamiento del eventsProcessed. 8 No ms eventos por manejar. Lo anterior no es el nico posible orden de ejecucin. Si mltiples mtodos eventsProcessed( ) estn pendientes cuando el paso 4 es ejecutado, el orden en el cual se llaman estos mtodos no est definido. Por ejemplo, en el tercer paso del ejemplo, el mtodo eventsProcessed est pendiente para los dos Script 1 y Script 2. El orden de ejecucin en este caso no est definido, entonces ejecutar el mtodo eventsProcessed del Script 2 antes que el del Script 1 sera ms exacto. Sin embargo, ejecutar el mtodo eventsProcessed para el Script 3 antes que para el Script 2 no sera ms exacto porque cualquier mtodo pendiente durante el proceso deber esperar hasta la siguiente iteracin de la cascada de evento para ejecucin. Bucles Las cascadas de eventos pueden contener bucles donde un evento E es ruteado a un nodo que genera un evento que eventualmente resulta en que E es generado otra vez. Fan-in y fan-out Fan-in ocurre cuando dos o ms routes envan al mismo eventIn. Los eventos que llegan a un eventIn de diferentes eventOuts con el mismo sello de tiempo debern ser procesados, pero el orden de evaluacin es dependiente de la aplicacin. Fan-out ocurre cuando un eventOut rutea dos o ms eventIns. Esto da como resultado enviar un evento generado por el eventOut a todos los eventIns. Ejemplo En el ejemplo utilizaremos el nodo Touch Sensor: El nodo TouchSensor convierte todos elementos por debajo de su nodo padre en elementos activos sobre los que se puede pinchar Se activa el sensor (habilitado) ms bajo en la jerarqua (el resto se ignoran) Tambin usamos el Nodo Time Sensor. 31 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Generacin de eventos en base al timepo. DIAGRAMA explicado de eventIn y eventOut con Scripts
#VRML V2.0 utf8 DEF TS TouchSensor { } DEF Script1 Script { eventIn SFTime touchTime eventOut SFBool toScript2 eventOut SFBool toScript3 eventOut SFString string url "javascript: function touchTime() { toScript2 = TRUE; } function eventsProcessed() { string = 'Script1.eventsProcessed'; toScript3 = TRUE; }" } DEF Script2 Script { eventIn SFBool fromScript1 eventOut SFBool toScript4 eventOut SFString string url "javascript: function fromScript1 ( ) { } function eventsProcessed() { string = 'Script2.eventsProcessed'; toScript4 = TRUE; }" } DEF Script3 Script { eventIn SFBool fromScript1 eventOut SFBool toScript5 eventOut SFBool toScript6 eventOut SFString string url "javascript: function fromScript1() { toScript5 = TRUE; } function eventsProcessed() { string = 'Script3.eventsProcessed'; toScript6 = TRUE; }" } DEF Script4 Script { eventIn SFBool fromScript2 url "javascript: function fromScript2() { }" }

DEF Script5 Script { eventIn SFBool fromScript3 url "javascript: function fromScript3() { }" } DEF Script6 Script { eventIn SFBool fromScript3 eventOut SFBool toScript7 eventOut SFString string url "javascript: function fromScript3() { toScript7 = TRUE; } function eventsProcessed ( ) { string = 'Script6.eventsProcessed'; }" } DEF Script7 Script { eventIn SFBool fromScript6 url "javascript: function fromScript6() { }" } ROUTE TS.touchTime TO Script1.touchTime ROUTE Script1.toScript2 TO Script2.fromScript1 ROUTE Script1.toScript3 TO Script3.fromScript1 ROUTE Script2.toScript4 TO Script4.fromScript2 ROUTE Script3.toScript5 TO Script5.fromScript3 ROUTE Script3.toScript6 TO Script6.fromScript3 ROUTE Script6.toScript7 TO Script7.fromScript6 # Display the results DEF Collector Script { eventOut MFString string eventIn SFString fromString url "javascript: function initialize() { string[0] = 'Event Sequence:'; } function fromString(s) { i = string.length; string[i] = ' '+i+') '+s+' occurred'; }" } Transform { translation 0 2 0 children Shape { appearance Appearance { material Material { diffuseColor 0 0.6 0 } geometry Sphere { } } } Shape { geometry DEF Result Text { } } Viewpoint { position 7 -1 18 } ROUTE Script1.string TO Collector.fromString ROUTE Script2.string TO Collector.fromString ROUTE Script3.string TO Collector.fromString ROUTE Script6.string TO Collector.fromString }

32 Ing.Eduardo Cieza de Len T.

Diseo Grafico
ROUTE Collector.string TO Result.string

Manual de VRML

Secuencia de eventos: 1) Script1.eventsProcessed occurred 2) Script2.eventsProcessed occurred 3) Script3.eventsProcessed occurred 4) Script6.eventsProcessed occurred

Secuencia de eventos: 1) Script2.eventsProcessed occurred 2) Script1.eventsProcessed occurred 3) Script3.eventsProcessed occurred 4) Script6.eventsProcessed occurred

EJERCICIO USANDO INTERPOLADORES Se pretende similar la rotacin terrestre alrededor de su eje y el desplazamiento lunar alreddor de la rbita terrestre, utilizando interpoladores mostramos dichos eventos

DEF Tierra Transform {children [ Shape {appearance Appearance {texture ImageTexture {url "tierra.jpg"} } geometry Sphere {radius 12 } } ] } DEF ts TimeSensor { cycleInterval 24 loop TRUE }

DEF oi OrientationInterpolator { key [0,.25,.5,.75,1] keyValue [ 0 1 0 0, 0 1 0 1.57, 0 1 0 3.14, 0 1 0 4.71, 0 1 0 6.28 ] }

33 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

DEF Luna Transform {children [ Shape { appearance Appearance { texture ImageTexture {url "luna.jpg"} } geometry Sphere {radius 4 } } ] } DEF pi PositionInterpolator { key [0,.042,.083,.125,.167,.208, 0.25, .292,.333,.375,.417,.458, 0.5, .542,.583,.625,.667,.708, 0.75, .792,.833,.875,.917,.958,1] keyValue [360 0 0,347.73 0 93.17,311.8 0 180, 254.56 0 254.56, 180 0 311.8,93.17 0 347.73,0 0 360, -93.17 0 347.73,-180 0 311.8,-254.56 0 254.56, -311.8 0 180, -347.73 0 93.17,-360 0 0, -347.73 0 -93.17,-311.8 0 -180, -254.56 0 -254.56, -180 0 -311.8,-93.17 0 -347.73, 0 0 -360, 93.17 0 -347.73,180 0 -311.8,254.56 0 -254.56, 311.8 0 -180,347.73 0 -93.17, 360 0 0 ] } ts1 TimeSensor { cycleInterval 672 loop TRUE } Orbita Shape { appearance Appearance {material Material { } } geometry Extrusion { crossSection [0.1 0,0.087 0.05,0.05 0.087,0 0.1, -.05 .087,-.087 .05,-.1 0, -.087 -.05, -.05 -.087,0 -.1, .05 -.087, .087 -.05,.1 0] spine [360 0 0,347.73 0 93.17,311.8 0 180, 254.56 0 254.56, 180 0 311.8,93.17 0 347.73,0 0 360, -93.17 0 347.73,-180 0 311.8,-254.56 0 254.56, -311.8 0 180, -347.73 0 93.17,-360 0 0, -347.73 0 -93.17,-311.8 0 -180, -254.56 0 -254.56, -180 0 -311.8,-93.17 0 -347.73, 0 0 -360, 93.17 0 -347.73,180 0 -311.8,254.56 0 -254.56, 311.8 0 -180,347.73 0 -93.17, 360 0 0 ] } }

DEF

DEF

DEF

ilumanador SpotLight

{ color 1 1 1 intensity 1 ambientIntensity 10 location 365 0 0 radius 365 on TRUE beamWidth 1 cutOffAngle 1.3 direction -1 0 0 }

Viewpoint { description "total" position -300 0 400 orientation 0 1 0 -0.785 jump FALSE } Viewpoint {description "vista1" position -50 0 30

34 Ing.Eduardo Cieza de Len T.

Diseo Grafico
orientation jump FALSE 0 1 0 -1.57 }

Manual de VRML

Viewpoint {description "vista2" position 340 0 0 orientation 0 1 0 0.785 jump FALSE } ROUTE ts1.fraction_changed TO pi.set_fraction ROUTE pi.value_changed TO Luna.translation ROUTE ts.fraction_changed TO oi.set_fraction ROUTE oi.value_changed TO Tierra.rotation

Referencia Rpida de nodos


Esta referencia muestra la sintaxis de todos los nodos de la especificacin oficial del VRML 97. Muestra eventIn, eventOut, campos y exposedFields para cada nodo, junto con su tipo y valores por defecto en cada caso.
Anchor Collision Cylinder FontStyle LOD OrientationInterpolator ProximitySensor SphereSensor TimeSensor Appear ance Color CylinderSensor Group Material PixelTexture ScalarInterpolator SpotLight TouchSensor AudioClip ColorInterpolator DirectionalLight ImageTexture MovieTexture PlaneSensor Script Switch Transform Background Cone ElevationGrid IndexedFaceSet NavigationInfo PointLight Shape Text Viewpoint Billboard Coordinate Extrusion IndexedLineSet Normal PointSet Sound TextureCoordinate VisibilitySensor Box CoordinateInterpolator Fog Inline NormalInterpolator PositionInterpolator Sphere TextureTransform WorldInfo

T omado de

http://web3d.vapourtech.com/tutorials/vrml97/es/nodes.html.

Anchor
Anchor { eventIn eventIn exposedField exposedField exposedField exposedField field field } MFNode MFNode MFNode SFString MFString MFString SFVec3f SFVec3f addChildren removeChildren children description parameter url bboxCenter bboxSize

[] "" [] [] 0 0 0 -1 -1 -1

Appearance
Appearance { exposedField exposedField exposedField } SFNode SFNode SFNode material texture textureTransform NULL NULL NULL

AudioClip
AudioClip { exposedField SFString description ""

35 Ing.Eduardo Cieza de Len T.

Diseo Grafico
exposedField exposedField exposedField exposedField exposedField eventOut eventOut } SFBool SFFloat SFTime SFTime MFString SFTime SFBool loop pitch startTime stopTime url duration_changed isActive FALSE 1.0 0 0 []

Manual de VRML

Background
Background { eventIn exposedField exposedField SFBool MFFloat MFColor set_bind groundAngle groundColor [] []

exposedField exposedField exposedField exposedField exposedField exposedField exposedField exposedField eventOut }

MFString MFString MFString MFString MFString MFString MFFloat MFColor SFBool

backUrl bottomUrl frontUrl leftUrl rightUrl topUrl skyAngle skyColor isBound

[] [] [] [] [] [] [] [0 0 0]

Billboard
Billboard { eventIn eventIn exposedField exposedField field field MFNode MFNode SFVec3f MFNode SFVec3f SFVec3f addChildren removeChildren axisOfRotation children bboxCenter bboxSize 0 1 0 [] 0 0 0 -1 -1 -1

Box
Box {field SFVec3f size 2 2 2 }

Collision
Collision { eventIn eventIn exposedField exposedField field field field eventOut } MFNode MFNode MFNode SFBool SFVec3f SFVec3f SFNode SFTime addChildren removeChildren children collide bboxCenter bboxSize proxy collideTime

[] TRUE 0 0 0 -1 -1 -1 NULL

Color
Color {exposedField MFColor color [ ] }

36 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

ColorInterpolator
ColorInterpolator eventIn exposedField exposedField eventOut } { SFFloat MFFloat MFFloat SFFloat set_fraction key keyValue value_changed [] []

Cone Cone
{ field field field field } SFBool SFFloat SFFloat SFBool bottom bottomRadius height side TRUE 1 2 TRUE

Coordinate
Coordinate { exposedField } MFVec3f point []

CoordinateInterpolator
CoordinateInterpolator { eventIn SFFloat exposedField MFFloat exposedField MFVec3f eventOut MFVec3f } set_fraction key keyValue value_changed [] []

Cylinder
Cylinder { field field field field field } SFBool SFFloat SFFloat SFBool SFBool bottom height radius side top TRUE 2 1 TRUE TRUE

CylinderSensor
CylinderSensor { exposedField exposedField exposedField exposedField exposedField exposedField eventOut eventOut eventOut } SFBool SFFloat SFBool SFFloat SFFloat SFFloat SFBool SFRotation SFVec3f autoOffset TRUE diskAngle 0.262 enabled TRUE maxAngle -1 minAngle 0 offset 0 isActive rotation_changed trackPoint_changed

DirectionalLight
DirectionalLight { exposedField SFFloat ambientIntensity 0

37 Ing.Eduardo Cieza de Len T.

Diseo Grafico
exposedField exposedField exposedField exposedField } SFColor SFVec3f SFFloat SFBool color direction intensity on 1 1 1 0 0 -1 1 TRUE

Manual de VRML

ElevationGrid
ElevationGrid { eventIn exposedField exposedField exposedField field field field field field field field field field field } MFFloat SFNode SFNode SFNode MFFloat SFBool SFBool SFFloat SFBool SFBool SFInt32 SFFloat SFInt32 SFInt32 set_height color normal texCoord height ccw colorPerVertex creaseAngle normalPerVertex solid xDimension xSpacing zDimension zSpacing NULL NULL NULL [] TRUE TRUE 0 TRUE TRUE 0 0.0 0 0.0

Extrusion
Extrusion { eventIn eventIn eventIn eventIn field field field field field field field field field field } MFVec3f MFRotation MFVec2f MFVec3f SFBool SFBool SFBool SFFloat MFVec2f SFBool MFRotation MFVec2f SFBool MFVec3f set_crossSection set_orientation set_scale set_spine beginCap ccw convex creaseAngle crossSection endCap orientation scale solid spine

TRUE TRUE TRUE 0 [1 1, 1 -1, -1 -1, -1 1, 1 1] TRUE 0 0 1 0 1 1 TRUE [0 0 0, 0 1 0]

Fog
Fog { eventIn exposedField exposedField exposedField eventOut SFBool SFColor SFString SFFloat SFBool set_bind color fogType visibilityRange isBound 1 1 1 "LINEAR" 0

FontStyle
FontStyle { field field field field field MFString SFBool MFString SFString SFBool family horizontal justify language leftToRight "SERIF" TRUE "BEGIN" "" TRUE

38 Ing.Eduardo Cieza de Len T.

Diseo Grafico
field field field field } SFFloat SFFloat SFString SFBool size spacing style topToBottom 1.0 1.0 "PLAIN" TRUE

Manual de VRML

Group
Group { eventIn eventIn exposedField field field } MFNode MFNode MFNode SFVec3f SFVec3f addChildren removeChildren children bboxCenter bboxSize [] 0 0 0 -1 -1 -1

ImageTexture
ImageTexture { exposedField field field } MFString SFBool SFBool url repeatS repeatT [] TRUE TRUE

IndexedFaceSet
IndexedFaceSet { eventIn eventIn eventIn eventIn exposedField exposedField exposedField exposedField field field field field field field field field field field } MFInt32 MFInt32 MFInt32 MFInt32 SFNode SFNode SFNode SFNode SFBool MFInt32 SFBool SFBool MFInt32 SFFloat MFInt32 SFBool SFBool MFInt32 set_colorIndex set_coordIndex set_normalIndex set_texCoordIndex color coord normal texCoord ccw colorIndex colorPerVertex convex coordIndex creaseAngle normalIndex normalPerVertex solid texCoordIndex

NULL NULL NULL NULL TRUE [] TRUE TRUE [] 0 [] TRUE TRUE []

IndexedLineSet
IndexedLineSet { eventIn eventIn exposedField exposedField field field field } MFInt32 MFInt32 SFNode SFNode MFInt32 SFBool MFInt32 set_colorIndex set_coordIndex color coord colorIndex colorPerVertex coordIndex NULL NULL [] TRUE []

39 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Inline
Inline { exposedField field field } MFString SFVec3f SFVec3f url bboxCenter bboxSize [] 0 0 0 -1 -1 -1

LOD
LOD { exposedField field field } MFNode SFVec3f MFFloat level center range [] 0 0 0 []

Material
Material { exposedField exposedField exposedField exposedField exposedField exposedField } SFFloat SFColor SFColor SFFloat SFColor SFFloat ambientIntensity diffuseColor emissiveColor shininess specularColor transparency 0.2 0.8 0.8 0.8 0 0 0 0.2 0 0 0 0

MovieTexture
MovieTexture { exposedField exposedField exposedField exposedField exposedField field field eventOut eventOut } SFBool SFFloat SFTime SFTime MFString SFBool SFBool SFTime SFBool loop speed startTime stopTime url repeatS repeatT duration_changed isActive FALSE 1 0 0 [] TRUE TRUE

NavigationInfo
NavigationInfo { eventIn exposedField exposedField exposedField exposedField exposedField eventOut } SFBool MFFloat SFBool SFFloat MFString SFFloat SFBool set_bind avatarSize headlight speed type visibilityLimit isBound [0.25, 1.6, 0.75] TRUE 1.0 "WALK" 0.0

Normal
Normal { exposedField MFVec3f vector []

40 Ing.Eduardo Cieza de Len T.

Diseo Grafico
}

Manual de VRML

NormalInterpolator
NormalInterpolator { eventIn SFFloat exposedField MFFloat exposedField MFVec3f eventOut MFVec3f } set_fraction key keyValue value_changed [] []

OrientationInterpolator
OrientationInterpolator { eventIn SFFloat exposedField MFFloat exposedField MFRotation eventOut SFRotation } set_fraction key keyValue value_changed [] []

PixelTexture
PixelTexture { exposedField field field } SFImage SFBool SFBool image repeatS repeatT 0 0 0 TRUE TRUE

PlaneSensor
PlaneSensor { exposedField exposedField exposedField exposedField exposedField eventOut eventOut eventOut } SFBool SFBool SFVec2f SFVec2f SFVec3f SFBool SFVec3f SFVec3f autoOffset TRUE enabled TRUE maxPosition -1 -1 minPosition 0 0 offset 0 0 0 isActive trackPoint_changed translation_changed

PointLight
PointLight { exposedField exposedField exposedField exposedField exposedField exposedField exposedField } SFFloat SFVec3f SFColor SFFloat SFVec3f SFBool SFFloat ambientIntensity attenuation color intensity location on radius 0 1 0 0 1 1 1 1 0 0 0 TRUE 100

PointSet
PointSet { exposedField exposedField } SFNode SFNode color coord NULL NULL

PositionInterpolator
PositionInterpolator {

41 Ing.Eduardo Cieza de Len T.

Diseo Grafico
eventIn exposedField exposedField eventOut } SFFloat MFFloat MFVec3f SFVec3f set_fraction key keyValue value_changed

Manual de VRML

[] []

ProximitySensor
ProximitySensor { exposedField SFVec3f exposedField SFVec3f exposedField SFBool eventOut SFBool eventOut SFVec3f eventOut SFRotation eventOut SFTime eventOut SFTime } center 0 0 0 size 0 0 0 enabled TRUE isActive position_changed orientation_changed enterTime exitTime

ScalarInterpolator
ScalarInterpolator { eventIn SFFloat exposedField MFFloat exposedField MFFloat eventOut SFFloat } set_fraction key keyValue value_changed [] []

Script
Script { exposedField field field MFString SFBool SFBool url directOutput mustEvaluate [] FALSE FALSE

Also, any number of the following: eventIn Type eventInName field Type fieldName eventOut Type eventOutName }

default value

Shape
Shape { exposedField exposedField } SFNode SFNode appearance geometry NULL NULL

Sound
Sound { exposedField exposedField exposedField exposedField exposedField exposedField exposedField exposedField exposedField field } SFVec3f SFFloat SFVec3f SFFloat SFFloat SFFloat SFFloat SFFloat SFNode SFBool direction intensity location maxBack maxFront minBack minFront priority source spatialize 0 0 1 1 0 0 0 10 10 1 1 0 NULL TRUE

42 Ing.Eduardo Cieza de Len T.

Diseo Grafico

Manual de VRML

Sphere
Sphere { field } SFFloat radius 1

SphereSensor
SphereSensor { exposedField exposedField exposedField eventOut eventOut eventOut } SFBool SFBool SFRotation SFBool SFRotation SFVec3f autoOffset TRUE enabled TRUE offset 0 1 0 0 isActive rotation_changed trackPoint_changed

SpotLight
SpotLight { exposedField exposedField exposedField exposedField exposedField exposedField exposedField exposedField exposedField exposedField } SFFloat SFVec3f SFFloat SFColor SFFloat SFVec3f SFFloat SFVec3f SFBool SFFloat ambientIntensity attenuation beamWidth color cutOffAngle direction intensity location on radius 0 1 0 0 1.570796 1 1 1 0.785398 0 0 -1 1 0 0 0 TRUE 100

Switch
Switch { exposedField exposedField } MFNode SFInt32 choice whichChoice [] -1

Text Text

{ exposedField exposedField exposedField exposedField

MFString SFNode MFFloat SFFloat

string fontStyle length maxExtent

[] NULL [] 0.0

TextureCoordinate
TextureCoordinate { exposedField MFVec2f } point []

TextureTransform
TextureTransform { exposedField SFVec2f exposedField SFFloat exposedField SFVec2f exposedField SFVec2f } center rotation scale translation 0 0 0 1 1 0 0

TimeSensor
TimeSensor { exposedField SFTime cycleInterval 1

43 Ing.Eduardo Cieza de Len T.

Diseo Grafico
exposedField exposedField exposedField exposedField eventOut eventOut eventOut eventOut } SFBool SFBool SFTime SFTime SFTime SFFloat SFBool SFTime enabled loop startTime stopTime cycleTime fraction_changed isActive time TRUE FALSE 0 0

Manual de VRML

TouchSensor
TouchSensor { exposedField eventOut eventOut eventOut eventOut eventOut eventOut } SFBool SFVec3f SFVec3f SFVec2f SFBool SFBool SFTime enabled TRUE hitNormal_changed hitPoint_changed hitTexCoord_changed isActive isOver touchTime

Transform
Transform { eventIn eventIn exposedField exposedField exposedField exposedField exposedField exposedField field field } MFNode MFNode SFVec3f MFNode SFRotation SFVec3f SFRotation SFVec3f SFVec3f SFVec3f addChildren removeChildren center children rotation scale scaleOrientation translation bboxCenter bboxSize 0 0 0 [] 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 -1 -1 -1

Viewpoint
Viewpoint { eventIn exposedField exposedField exposedField exposedField field eventOut eventOut } SFBool SFFloat SFBool SFRotation SFVec3f SFString SFTime SFBool set_bind fieldOfView jump orientation position description bindTime isBound 0.785398 TRUE 0 0 1 0 0 0 10 ""

VisibilitySensor
VisibilitySensor { exposedField SFVec3f exposedField SFBool exposedField SFVec3f eventOut SFTime eventOut SFTime eventOut SFBool } center enabled size enterTime exitTime isActive 0 0 0 TRUE 0 0 0

WorldInfo
44 Ing.Eduardo Cieza de Len T.

Diseo Grafico
WorldInfo { field field }

Manual de VRML

MFString SFString

info title

[] ""

BIBLIOGRAFIA Comportamientos animacin e interaccin.pps VIDEALAB Grupo de visualizacin avanzada Espaa http://videalab.udc.es/i3d/docs/clases/tema6/Comportamientos_Animacion_e_Interaccion. pps ROUTES - VRML Interactive Tutorial - Interactive Systems and Multimedia Universidade do Minho - Portugal http://www.es.embnet.org/Doc/vrmltut/route.htm http://upf.tche.br/~pasqualotti/3wrv/ http://www.rccad.com/Gallery_Full.htm http://www.tritekltd.com/vrmlsamples.htm http://www.web3d-fr.com/tutoriels/Apprendre-VRML.php www.iua.upf.es http://web3d.vapourtech.com/.

45 Ing.Eduardo Cieza de Len T.