7.1 Navegadores para VRML
7.2 Um Primeiro Programa em VRML
7.2.1 Estrutura Básica
7.2.2 Definindo Cubos
VRML V1.0 ascii # ****************************************** # "Uma Introdução à realidade Virtual" # Congresso da SBC # Jornada de Atualização em Informática # Refice, PE # Agosto, 1996 # ****************************************** # Programa 1 - Exemplo de um Cubo # ****************************************** Separator { Cube { height 0.5 width 3 depth 1 } } |
7.2.3 Definindo Esferas
#VRML V1.0 ascii # ****************************************** # "Uma Introdução à realidade Virtual" # Congresso da SBC # Jornada de Atualização em Informática # Refice, PE # Agosto, 1996 # ****************************************** # Programa 2 - Exemplo de uma Esfera # ****************************************** Separator { Sphere { radius 2 } } |
#VRML V1.0 ascii # ****************************************** # "Uma Introdução à realidade Virtual" # Congresso da SBC # Jornada de Atualização em Informática # Refice, PE # Agosto, 1996 # ****************************************** # Programa 3 - Exemplo de um Cilindro # ****************************************** Separator { Cylinder { radius 1 height 2 } } |
#VRML V1.0 ascii # ****************************************** # "Uma Introdução à realidade Virtual" # Congresso da SBC # Jornada de Atualização em Informática # Refice, PE # Agosto, 1996 # ****************************************** # Programa 4 - Exemplo de um Cone # ****************************************** Separator { Cone { bottomRadius 1 height 2 } } |
7.2.6 Definindo Polígonos
#VRML V1.0 ascii # ****************************************** # "Uma Introdução à realidade Virtual" # Congresso da SBC # Jornada de Atualização em Informática # Refice, PE # Agosto, 1996 # ****************************************** # Programa 5 - Exemplo de polígonos # ****************************************** Separator { Coordinate3 # Tabela de Vértices { point [ 0 10 0, # vértice 0 -5 0 5, # vértice 1 5 0 5, # vértice 2 5 0 -5, # vértice 3 -5 0 -5, # vértice 4 ] } IndexedFaceSet # Tabela de Faces { coordIndex [ 1, 2, 3, 4, -1, # Base 0, 1, 2, -1, # Frontal 0, 2, 3, -1, # Direita 0, 3, 4, -1, # Traseira 0, 4, 1, -1 # Esquerda ] } } |
|
VRML V1.0 ascii # ****************************************** # "Uma Introdução à realidade Virtual" # Congresso da SBC # Jornada de Atualização em Informática # Refice, PE # Agosto, 1996 # ****************************************** # Programa 6 - Exemplo de TEXTURA # ****************************************** Separator { Texture2 { filename "parede.gif" } Separator { Cube {} } } |
#VRML V1.0 ascii # ****************************************** # "Uma Introdução à realidade Virtual" # Congresso da SBC # Jornada e Atualização em Informática # Refice, PE # Agosto, 1996 # ****************************************** # Programa 7 - Exemplo de uso de Cor # ****************************************** Separator { Material { diffuseColor 0 1 0 } # Cor Verde Separator { Cube {} } } |
7.2.8 Transformações Geométricas sobre os Objetos
Até o momento apresentamos apenas objetos em sua posições originais. Em VRML, para mudar a posição ou orientação de um objeto aplica-se transformações. O comando que define uma transformação é o Transform { ... } dentro do qual é possível especificar, entre outras coisas, a rotação e a posição do objeto.
Para a posição há o comando translation tx ty tz, para a rotação há o comando rotation ex ey ez ang. Na translação os parametros tx ty tz definem a posição do objeto. Na rotação ex ey ez define o eixo de rotação e ang define o ângulo. Na figura 7.8, são exibidos dois cilindros com diferentes rotações e posições. Note que há um nível a mais de Separator {…} no código. Isto foi colocado pois alguns Browsers, como o WorldView, precisam de um bloco externo que inclua todos os objetos.
#VRML V1.0 ascii # ****************************************** # "Uma Introdução à realidade Virtual" # Congresso da SBC # Jornada de Atualização em Informática # Refice, PE # Agosto, 1996 # ****************************************** # Programa 8 - Exemplo de Transf. geometrica # ****************************************** Separator # Bloco externo necessário a alguns { # Browsers Separator # Primeiro cilindro { Transform { translation -2 0 0 # Desloc. à esq. rotation 1 0 0 1.7 # Rot. eixo X } # Vermelho Material { diffuseColor 1 0 0 } Cylinder {} } Separator # Segundo cilindro { Transform { translation 2 0 0 # Desloc. à dir. rotation 0 0 1 -1.7 # Rot. eixo Z } # Verde Material { diffuseColor 0 1 0 } Cylinder {} } } |
7.2.9 "Links" e "Includes"
#VRML V1.0 ascii # ****************************************** # "Uma Introdução à realidade Virtual" # Congresso da SBC # Jornada de Atualização em Informática # Refice, PE # Agosto, 1996 # ****************************************** # Programa 9 - Exemplo de link # ****************************************** WWWAnchor { # Nome do arquivo que será o destino do link name "file:c:/teste2.wrl" Separator { Transform { translation -5.0 0.0 0.0 # Desloca para esquerda } Cube { height 1 width 3 depth 3 } } } |
#VRML V1.0 ascii # ****************************************** # Üma Introdução à realidade Virtual" # Congresso da SBC # Jornada de Atualização em Informática # Refice, PE # Agosto, 1996 # ****************************************** # Programa 10 - Exemplo de include # ****************************************** Separator # Bloco externo necessário a alguns Browsers { Separator { Transform { translation -7 0 0 rotation 1 0 0 -0.78 } WWWInline { name "file:c:/piramide.wrl" } } Separator { Transform { rotation 1 0 0 0.78 translation 7 0 0 } WWWInline { name "file:c:/doc/jai/piramide.wrl" } } } |