Iniciando no VRML: Nodes de transformação - Mudando as características dos objetos


Autor/fonte: Desconhecido



Digg del.icio.us

Material - Dando cores aos objetos

O node Material define características dos objetos como cor e brilho. Os parâmetros que são usados determinam a forma como a luz irá refletir sobre os objetos. São eles:

. diffuseColor - reflexão da luz que estiver incidindo sobre um objeto. Quanto mais diretamente a luz incidir sobre a superfície do objeto, mais luz será refletida. É usado para dar cor aos objetos;
. ambientIntensity - especifica quanto da luz ambiente um objeto deve refletir;
. shininess e specularColor - determinam a luminosidade de pontos de reflexão com maior quantidade de luz (highlight points). Se o ângulo que a luz incidir for próximo do ângulo de observação, o valor de specularColor é adicionado ao cálculo de diffuseColor e ambientIntensity. Shininess determina o brilho do objeto. Quanto maior seu valor, maior o brilho;
. emissiveColor - usado para representar objetos incandescentes. Usado quando todas as outras cores são preta (0,0,0);
. transparency - determina o grau de transparência do objeto, que varia de 0.0 (totalmente opaco) a 1.0 (totalmente transparente).

A cor dos objetos é formada pela composição das cores básicas vermelho, verde e azul (RGB), cujos valores variam entre 0 e 1. Sendo assim, se quisermos um objeto amarelo temos que especificar (1,1,0), ou seja, 100% de vermelho e verde e nada de azul. Vamos acrescentar cor a alguns objetos do exemplo do pinheiro:

#VRML V1.0 ascii 
Material { 
     diffuseColor 0 1 0 
     shininess 0 
} 
Cone {height       30
      bottomRadius 10 
} 
Material { 
     diffuseColor 64 0 0 
     shininess    1
}
Translation { 
     translation 0 -22.5 0 
} 
Cylinder {radius 3 
          height 15 
}

Rotation - Rotacionando objetos

O node Rotation é usado para rotacionar objetos no espaço. Como exemplo, vamos rever o node Cylinder. Por default, todo cilindro é criado na posição vertical. Se quisermos um cilindro na horizontal, basta utilizarmos o node Rotation :

#VRML V1.0 ascii
Rotation {
        rotation 0 0 1 1.57
}
Cylinder {}

No exemplo acima, o cone é rotacionado 90 graus (1.57 radianos) sobre o eixo-z ( 0 0 1 ).

Translation - Deslocando objetos

Este node é parecido com o Rotation, mas é usado para deslocar objetos. Veja o exemplo abaixo :

#VRML V1.0 ascii
Cube {}
Translation { 
        translation 10 0 0
}
Sphere {}
Translation {
        translation -20 0 0
}
Cone {}

No exemplo acima, criamos um cone na origem (0,0,0), pois este é o primeiro objeto que está sendo criado e antes dele não foi aplicado nenhum deslocamento ou rotação. Logo após a criação do cubo, usamos o Translation para deslocarmos os objetos subseqüentes para a posição (10,0,0). Isto significa que todo objeto que for criado a partir daí terá seu centro nesta posição. Sendo assim, a esfera que é criada em seguida terá seu centro na posição (10,0,0). Depois aplicamos mais uma vez o Translation. Repare no valor do deslocamento : -20 em relação ao eixo-x. Isto faz com que o cone que é criado em seguida esteja localizado a -20 unidades de distância da esfera em relação ao eixo-x, e a -10 unidades de distância do cubo.

Separator - Definindo a hierarquia dos objetos

Este node define a hierarquia dos objetos dentro do cenário. É usado para separar um grupo de objetos do resto do ambiente, ou seja, as características desse grupo serão diferentes do resto. Veja o exemplo:

#VRML V1.0 ascii
Material { diffuseColor 1 1 0 }
Separator {
        Material { 
                diffuseColor 0 1 0 
        }
        Cube {}
        Translation { 
                translation 10 0 0
        }
        Sphere {}
}
Translation {
        translation -10 0 0
}
Cone {}

Quando definimos a cor amarela pela primeira vez (diffuseColor 1 1 0), esperamos que todos os objetos subseqüentes sejam desta cor. No entanto, apenas o cone é amarelo. Isto se deve ao uso do node Separator, que separa o cubo e a esfera do resto do ambiente. As propriedades definidas para estes objetos (posição e cor) não irão interfirir nos outros objetos que estiverem fora deste contexto ou hierarquia. Repare no translation -10 0 0; não foi necessário deslocar -20 unidades porque este é o primeiro deslocamento feito no contexto em que está o cone. Também a cor verde só vale dentro do contexto do cubo e da esfera.

Texture2 - Trabalhando com texturas

Este node é usado para aplicar texturas aos objetos.

#VRML V1.0 ascii
Texture2 {
        filename "granite.gif"
}
Sphere {}

LOD - Definindo o nível de detalhe

Este node determina o nível de detalhe de um objeto ou conjunto de objetos dependendo da distância em que estes se encontram do observador. Isto torna rápida a visualização porque objetos com menos importância na cena podem ser substituídos por outros menos complexos. Por exemplo, um carro que estiver a 1000 unidades de distância pode ser substituído por um cubo. Um cubo é bem mais simples que um carro. O objeto pode também ter mais de um nível de detalhe. O carro pode ser representado como um simples cubo a 1000 unidades de distância, dois cubos a 500 unidades, dois cubos e quatro esferas a 500 etc. Exemplo:

#VRML V1.0 ascii
LOD {
   range   [15, 25]
   center  0 0 0
   #primeiro nível
   Separator {
      Cube {}
      Translation {
         translation 3 0 0
      }
      Sphere {}
      Translation {
         translation 3 0 0
      }
      Cone {}
   }
   #segundo nível
   Separator {
      Cube {}
      Translation {
          translation 3 0 0
      }
      Sphere {}
   }
   #terceiro nível
   Separator {
      Cube {}
   }
}

O que acontece no exemplo acima á o seguinte: no primeiro nível de detalhe são mostrados todos os objetos. Isto significa que o observador está posicionado a menos de 15 unidades dos objetos. Se o observador estiver entre 15 e 25 unidades, é mostrado apenas uma esfera e um cubo. Finalmente, se o observador estiver posicionado a mais de 25 unidades de distância apenas um cubo é mostrado.




Enviado por xKuRt em 12/11/2006 às 09:55


Avaliação

Esta publicação ainda não foi avaliada!


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).


Envio de comentário:




  

Segunda, 28 de Julho de 2014




Top 5 membros

Últimos membros online

  • 1em 28/07 às 09:46
  • xKuRtem 27/07 às 15:13
  • JCanecaem 26/07 às 19:02

Últimos membros cadastrados



Capa do livro
Microsoft SQL Server 2012 Express: Guia Prático e Interativo


Capa do livro
Desvendando a Computação Forense


Capa do livro
Fórmulas e Funções: Microsoft Excel 2010





Hostnet

IMD