Está en la página 1de 20

NAVEGACION

VISTAS En el lenguaje VRML podemos definir distintos puntos de vista. A estos puntos de vista podemos aplicarle una posicin, una orientacin, un ngulo de visin y nombrarlos

Las transformaciones de las vistas se producen siempre respecto al sistema de coordenadas del mundo virtual. Por tanto es como si tenemos una cmara en el origen de coordenadas y todos los cambios de esta se hacen en relacin con el origen de coordenadas.

El punto de vista lo definimos con cuatro variables.


Posicin: lugar del mundo virtual donde se encuentra la cmara. Orientacin: podemos aplicar un ngulo de rotacin a la cmara. Que puede ser en las tres coordenadas del espacio. ngulo de visin: es el ngulo de visin que le aplicamos al punto de vista. Nombre: al punto de vista le ponemos un nombre para poder identificarlo con respecto a otros puntos de vista que existan en un mismo mundo. Si no colocamos puntos de vista VRML coloca uno por defecto.

Los puntos de vista se ordenan segn el orden de colocacin en el cdigo. El primero que coloquemos ser el que se aplique cuando cargamos el entorno.
Los diferentes puntos de vista los podemos generar con el nodo Viewpoit. La estructura general del nodo Viewpoit es: Viewpoit{ description " " position x y z orientation x y z Radianes fieldOfView Radianes }

DESCRIPCIN

Lo primero que hacemos es darle un nombre al punto de vista. Esto se hace mediante la estructura: Viewpoit{ Description " " } Colocamos en nombre del punto de vista entre las " ".

Posicin. position
Cundo definimos un punto de vista VRML se coloca por defecto en el origen de coordenadas. Por tanto si queremos colocarlo en otra posicin del mundo virtual, tendremos que indicarle su posicin, respecto al origen de coordenadas del mundo. La estructura para la posicin es: Viewpoit{ description " " position x y z } X = distancia en el eje x. Y = distancia en el eje y. Z = distancia en le eje z

#VRML V2.0 utf8 #Iluminacion PointLight{ color 1.0 1.0 1.0 location 20.0 20.0 20.0 intensity 1.0 ambientIntensity 1.0 } #Definimos unos objetos. Shape{appearance Appearance{material Material{diffuseColor 0 0 1}} geometry Cylinder{height 2 radius 1.5} } Transform{ translation 6 0 0 children[ Shape{appearance Appearance{material Material{diffuseColor 0 1 0}} geometry Sphere{radius 2} } ]} #Colocamos unos cuantos puntos de vista. Viewpoint{ description "Vista 1" position 0 0 10 } Viewpoint{ description "Vista 2" position 0 0 5 } Viewpoint{ description "Vista 3" position 5 0 10 } Viewpoint{ description "Vista 4" position 0 4 10

Orientacin. orientation
por que de

Cuando colocamos un punto de vista en VRML, defecto no tiene orientacin. La orientacin del punto de vista consiste en podemos girar la cmara en los tres ejes coordenadas. La estructura para la orientacin es: Viewpoit{ description " " orientation x y z Rad } Las coordenadas (x,y,z) solo pueden tomar valores 1. Representa la rotacin alrededor de cada eje. Rad, son los radianes que gira el sistema. Puede positivo o negativo.

0 ser

#VRML V2.0 utf8 #Iluminacion PointLight{ color 1.0 1.0 1.0 location 20.0 20.0 20.0 intensity 1.0 ambientIntensity 1.0 } #Definimos unos objetos. Shape{appearance Appearance{material Material{diffuseColor 0 0 1}} geometry Cylinder{height 2 radius 1.5} } Transform{ translation 6 0 0 children[ Shape{appearance Appearance{material Material{diffuseColor 0 1 0}} geometry Sphere{radius 2} } ]} #Colocamos unos cuantos puntos de vista. Viewpoint{ description "Vista 1" position 0 0 8 } Viewpoint{ description "Vista 2" position 0 0 8 orientation 1 0 0 .4 } Viewpoint{ description "Vista 3" position 0 0 8 orientation 0 1 0 .5 } Viewpoint{ description "Vista 4" position 0 0 8 orientation 0 0 1 .5 }

Angulo de visin. fieldOfView.

En VRML nos encontramos que en un punto de vista adems de la posicin, orientacin e identificacin. Podemos aplicarle un ngulo de visin. El ngulo de visin esta comprendido entre cero y pi. [0 -> p ]

La estructura para el ngulo de visin es: Viewpoit{ description " " fieldOfView Rad } Rad son los radianes del ngulo de visn. Estn comprendidos entre cero y Pi.

En un punto de vista si no indicamos el ngulo de visn. VRML toma por defecto p/2.

#VRML V2.0 utf8 #Iluminacion PointLight{ color 1.0 1.0 1.0 location 20.0 20.0 20.0 intensity 1.0 ambientIntensity 1.0 } #Definimos unos objetos. Shape{appearance Appearance{material Material{diffuseColor 0 0 1}} geometry Cylinder{height 2 radius 1.5} } Transform{ translation 6 0 0 children[ Shape{appearance Appearance{material Material{diffuseColor 0 1 0}} geometry Sphere{radius 2} } ]} #Colocamos unos cuantos puntos de vista. Viewpoint{ description "Vista 1" position 3 0 8 fieldOfView 2 } Viewpoint{ description "Vista 2" position 3 0 8 fieldOfView 1 } Viewpoint{ description "Vista 3" position 3 0 8 fieldOfView .6 } Viewpoint{ description "Vista 4" position 3 0 8 fieldOfView .2 }

NavigationInfo
En VRML podemos describir el al usuario y especificar el tipo de navegacin mediante el nodo NavigationInfo. En este nodo podemos encontrar diferentes opciones, para configurar este nodo. Esta opciones son:

Tipo: Se define el tipo de navegacin que usa el navegante. Tamao del avatar: Se especifican las dimensiones del usuario.

Iluminacin por defecto: Tiene dos posibilidades activa o desactiva, se trata de una luz por defecto la cual acompaa al navegante.
Velocidad del avatar: Velocidad a la cual de mueve el usuario.

Distancia mxima de visin: Determina la mxima distancia a la cual el usuario puede ver.

SINTAXIS:

NavigationInfo{ type "........ " avatarSize [A ,B, C] headlight TRUE speed 1.0 visibilityLimit 0.0 }

Tipo:
En el nodo NavigationInfo, podemos definir el tipo de navegacin, determinando como de mueve el usuario a travs del mundo. Este campo puede tomar diferentes valores. Estos valores son:

WALK: Donde el usuario camina normalmente siendo afectado por la gravedad.


FLY: El usuario se mueve sin ser afectado por la gravedad. EXAMINE: El usuario permanece inmvil, pero puede rotar el mundo par verlo desde distintos ngulos. NONE: El usuario no tiene el control de movimiento en absoluto. Nos encontramos que los trminos WALK y FLY. Son exactamente lo mismo, con la diferencia de que WALK nunca se levanta del suelo , mientras que FLY si.

Tamao del avatar.


En este campo podemos determinar el espacio fsico de la presencia del usuario en le mundo. Tiene tres valores de escala, estor representan: Radio

Altura de los ojos.


Altura de las rodillas. El avatar se trata como una forma cilndrica para la determinacin de las colisiones. EL cilindro tiene unas proporciones tal y como se muestra en el diagrama inferior:

El radio y la altura son bastante evidentes, pero la altura de las rodillas requiere una pequea explicacin. Cuando el usuario est en modo WALK, puede subir y bajar escaleras, pero sus pasos estarn condicionados por la altura de sus rodillas. El avatar slo podr subir escalones de altura inferior a la de sus rodillas. Esto nos permite crear escalones adecuados, mientras siguen existiendo muros que el usuario no puede escalar.

La estructura es: NavigationInfo{ : avatarSize [A ,B, C] } A = Radio. B = Altura de los ojos. C = Altura de las rodillas.

Iluminacin por defecto.


En este campo determinamos si la iluminacin por defecto est activa o no. Se puede especificar que este por defecto, si no especificamos nada VRML tiene por defecto un valor de TRUE. Este especto es til para para escenas sin iluminacin. Pero, en mundos elaboradamente iluminados, resulta innecesario. Por tanto podemos apagarlas dndole un valor de FALSE. La estructura es: NavigationInfo{ headlight TRUE } Puede tomar dos valores: TRUE = Encendido. FALSE = Apaga

Velocidad del avatar.


En este campo podemos determinar la velocidad a la cual se mueve el usuario. Este campo es un multiplicador que el navegador usa para determinar la velocidad del usuario mientras de mueve. Algunos navegadores permiten velocidades variables, esto es una indicacin al navegador para indicar cun rpido puede moverse el usuario. Un valor de 3.0 permite al usuario moverse tres veces ms rpido de lo normal. Una velocidad de 0.5 dividir su velocidad. La estructura es: NavigationInfo{

speed 1.0
} Podemos darle valores entre cero y mas infinito. 0 -> 1 = Divide su velocidad. 1 -> infinito = multiplica la velocidad.

Distancia mxima de visin.


En este campo especificamos un limite de visualizacin al mundo.

Esta es la distancia desde el usuario tras la cual nada ser dibujado en la pantalla. Se puede usar para aumentar la velocidad de ejecucin en escenarios muy grandes. Si est determinado a "0.0" (tal y como viene por defecto), no habr limites de visualizacin. Su estructura es:
NavigationInfo{ visibilityLimit 0.0 }

#VRML V2.0 utf8 PointLight{ color 1.0 1.0 1.0 location 20.0 20.0 20.0 intensity 1.0 ambientIntensity 1.0 } #Aplicando el Nodo NavigationInfo NavigationInfo{ avatarSize [ 0.25, 1.6, 0.75 ] headlight TRUE speed 1.0 type "WALK" visibilityLimit 0.0 } Viewpoint{ position 0 1.6 10 description "NavigationInfo" } Shape{ appearance DEF ap Appearance{ material Material{} } geometry Box{ size 20 0.01 20 }} Shape{ appearance USE ap geometry Box{ size 5 0.5 1 }}

Transform{ translation 0 0.5 -0.5 children[ Shape{ appearance USE ap geometry Box{ size 5 0.5 1 }}]} Transform{ translation 0 1 -1 children[ Shape{ appearance USE ap geometry Box{ size 5 0.5 1 }}]} Transform{ translation -5 1 0 children[ Shape{ appearance USE ap geometry Sphere{} }]} Transform{ translation 0 2 -5 children[ Shape{ appearance USE ap geometry Sphere{} }]}

También podría gustarte