7.5– Nós
de ligamento
Os nós
de Ligamento são tipos especiais de nós. Os nós de Ligamento fornecem
a informação sobre o ambiente e o usuário. Os nós de Ligamento são
os seguintes :
Viewpoint:
especifica a posição do usuário
NavigationInfo:
especifica características do modelo de navegação. O nó NavigationInfo
contém a informação que descreve as características físicas do modelo
do visor e da observação.
Fog:
adiciona a atmosfera ao fundo da cena.
O nó
Fog fornece uma maneira de simular efeitos atmosféricos misturando
objetos com a cor especificada pelo campo de cor baseado nas distâncias
dos objetos do visor. As distâncias são calculadas no espaço de coordenadas
do nó.
Background:
fornece um céu, e as imagens de fundo que podem realçar a cena.
Quando
a cena é carregada, o primeiro de cada um destes nós a ser encontrados
torna-se ativo. Os nós programados são postos sobre o alto de uma
pilha. Há uma pilha para cada tipo de nó.
Sintaxe do nó Viewpoint:
Viewpoint {
fieldOfView 0.785398
position 0 0 10
orientation 0 0 1 0
description ""
jump TRUE
}
O nó Viewpoint especifica
os parâmetros da posição e da visão do usuário.
fieldOfView
especifica um ângulo em radianos. Os ângulos pequenos correspondem
às lentes do telephoto, visto que os ângulos grandes (até 3.14) são
o equivalente de lentes do largo-ângulo. Note que a pespectiva começa
distorcida com valores grandes.
position
especifica a posição do usuário no sistema de coordenadas em que
o viewpoint é definido.
orientation
determina o sentido em que o usuário está olhando, ele especifica
uma rotação relativa à orientação defaut que aponta ao longo da linha
central de Z no sentido negativo.
description
fornece uma descrição textual do Viewpoint. A maioria de browsers
têm uma lista dos viewpoints encontrados em seus menus. Também você
pode dirigir o browser para ir a um viewpoint especificando o nome
do viewpoint após a URL.
jump
determina a transição do Viewpoint quando você muda do Viewpoint
ativo a um Viewpoint novo. Se o salto for VERDADEIRO o usuário é movido
então ao longo do trajeto do Viewpoint atual para o Viewpoint novo.
Syntax
do nó NavigationInfo:
NavigationInfo{
set_bind
avatarSize [0.25, 1.6, 0.75]
headlight
TRUE
speed 1.0
type
"WALK"
visibilityLimit 0.0
isBound
}
O nó
NavigationInfo contém a informação que descreve as características
físicas do modelo do visor e da observação.
Se um
valor VERDADEIRO for emitido ao eventIn do set_bind de um NavigationInfo,
este será empurrado na pilha e ativado.
O campo
type especifica um tipo de navegação para o usuário. Os browsers
suportarão os seguintes tipos da navegação: "CAMINHADA",
"EXAMINA", "MOSCA", e "NENHUMAS". A
navegação da caminhada é usada explorando um mundo virtual. Recomenda-se
que o browser deve suportar uma noção da gravidade na modalidade da
caminhada. A navegação da mosca é similar a andar, a não ser
que essa noção da gravidade do Nó deva ser reforçada.
A velocidade
( speed ) é a taxa em que o visor viaja com uma cena nos medidores
por segundo. Desde que os visores possam fornecer mecanismos para
viajar mais rápido ou mais lento, esta deve estar a uma velocidade
média do visor. Se o tipo de NavigationInfo for EXAMINE, a velocidade
não deve ter nenhum efeito na velocidade de rotação. A hierarquia
da transformação do viewpoint atual escala a velocidade - as traduções
e as rotações não têm nenhum efeito na velocidade. A velocidade deve
ser = 0.0 - onde 0.0 especificam um avatar estacionário.
avatarSize
especifica as dimensões físicas do usuário. Estas dimensões são
usadas para finalidades da deteção da colisão como também seguir pelo
terreno. Este campo faz exame de uma lista de três valores. O primeiro
valor especifica a distância mínima que o usuário pode ter de toda
a geometria de colisão, vê o nó da colisão. O segundo valor determina
a altura do usuário, isto é se usando uma opção seguindo do terreno
fornecida em alguns browsers o usuário será mantido na altura especificada.
O terceiro valor determina a altura máxima que o usuário pode pisar.
o visibilityLimit determina a distância máxima em que o usuário pode ver, o valor de
defaut é 0.0 indica que esta distância é infinita. O campo visibilityLimit
ajusta a distância que o usuário pode ver. O browser pode ajustar
todos os objetos além deste limite. Um valor de 0.0 indica um limite
infinito da visibilidade.
A velocidade,
avatarSize e os valores todos do visibilityLimit são escalados pela
transformação que está sendo aplicada ao viewpoint atual. Se não houver
nenhum viewpoint, estão interpretados no sistema de coordenadas do
mundo. Isto permite que estes valores sejam ajustados automaticamente
ao se ligar a um viewpoint.
O campo
headlight (farol) especifica se um browser deve girar um headlight
sobre. Um headlight é uma luz direcional que aponte sempre
no sentido que o usuário está olhando. Ajustar este campo para retificar
permite que o browser forneça um headlight , com os controles
da relação de usuário para desligá-lo. O headlight terá a intensidade
= 1, cor = 1 1 1, ambientIntensity = 0.0, e sentido = 0 0 -1.
Syntax do nó Fog:
Fog {
color 1 1 1
fogType
"LINEAR"
visibilityRange 0
set_bind
isBound
}
O campo color
especifica a cor.
O campo
visibilityRange especifica a distância (no espaço de coordenadas
do nó Fog) em que os objetos são obscurecidos
O campo
fogType controla quanto da cor é misturada com o objeto em
função da distância. Se o fogType for "LINEAR", a
quantidade a misturar-se é uma função linear da distância, tendo por
resultado uma aparência que represente o efeito. Se o fogType for "EXPONENCIAL" então um aumento exponencial em misturar-se
deve ser usado, tendo por resultado uma aparência mais natural.
O nó
Background fornece uma maneira de descrever o horizonte de
seu mundo. O nó Background permite que você defina o céu, a terra,
e as imagens do panorama para adicionar um horizonte a seu mundo.
Todos os artigos Background são colocados como se estivessem a uma
distância infinita de você.
Syntax
do nó Background:
Background
{
skyColor [ 0 0 0 ]
skyAngle [ ]
groundColor [ ]
groundAngle [ ]
backUrl [ ]
bottomUrl [ ]
leftUrl [ ]
rightUrl [ ]
frontUrl [ ]
topUrl [ ]
}
O céu
é definido como uma esfera infinita colocada em torno de seu mundo.
Você pode definir uma cor constante para ela, ou colocar efeitos do
gradiente.
A cor
do céu é definida por dois campos: skyColor e skyAngle.
Se você
quiser um único céu da cor, como a figura a direita, então você especifica
um skyColor com o RGB da cor desejada, não especifica o skyAngle.
O skyAngle é usado somente quando um efeito do gradiente, como a imagem a direita,
é pretendida.
O browser
deve criar um gradiente entre as primeiras e segundas cores, começando
na parte superior e terminando no ângulo especificado no campo do
skyAngle.
Você
pode especificar os números das cores e dos ângulos.
A primeira
cor corresponde sempre a parte superior.
Por exemplo
as seguintes combinações foram usadas para criar as imagens acima:
Imagem
superior: skyAngle 0
skyColor 0 0 1
Imagem inferior: skyAngle 0 1.2 1.57
skyColor 0 0 1, 0 0 0.6, 1 0 0
Na imagem
superior somente uma cor foi especificada. Neste caso nenhum ângulo
é especificado porque a primeira cor é sempre a cor superior. O céu
é toda azul.
Na imagem
inferior de 1.57, aproximadamente 90 graus, ao ponto mais baixo, a
cor usada é a última cor especificada, isto é vermelho.
Similarmente
ao céu, a terra é também uma esfera infinita. A esfera da terra é
colocada dentro da esfera do céu. A única diferença entre estas duas
esferas está na esfera à terra se você não especificar uma cor.