Matemática e Computação
 

Mensagens
Não te abandones em lugares onde a luz da tua harmonia não esteja presente.

 


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.