Post on 09-Nov-2018
1
VRMLVirtual Reality Modeling Language
INTRODUÇÃO AO VRML
Baseado em apresentação de Judith Kelner, Alejandro Frery
2
2
Roteiro
1. O que é VRML2. Histórico3. Objetivos da VRML4. VRML, Internet e WWW5. Visão geral do VRML6. Estrutura do Arquivo VRML 7. Conceitos-chave8. Semântica dos Nós 9. Primitivas Básicas10.Primitivas Avançadas
Aí está o roteiro da apresentação. Nós começaremos dizendo o que é VRML. Em seguida, apresentaremos um breve histórico da linguagem. Falaremos sobre seus objetivos, como ela se relaciona com a Internet em geral. Daremos uma visão geral de como funciona ou está organizada a linguagem. Apresentaremos conceitos básicos para implementação. Daí, vou explicar como é que funcionam os nós de VRML e introduzir algumas primitivas básicas.
3
3
O Que é VRML
Virtual Reality Modeling LanguageSuporte para RV não-imersivaVRML não suporta imersão
• Capacetes 3D, luvas digitais
Não é exatamente "Modeling Language"Verdadeira linguagem de modelagem 3D deve prover primitivas de modelagem geométricas e mecanismos muito mais ricos
O que é então ?Um formato de intercâmbio para 3DPublicação de páginas Web em 3D (~HTML 3D)
• Jogos, engenharia, visualização científica, experiências educacionais, arquitetura
Um modelo coerente para integração de 3D, 2D, texto e multimídia
VRML significa Virtual Reality Modeling Language. Ela é uma linguagem que dá suporta a RV-não imersiva., ou seja, que não suporta dispositivos de imersão,como Capacetes 3D, luvas digitais, etc. Pra quem nunca viu, nenhum desses , aqui no CIn nós temos um óculos tridimensional, apesar de que atualmente ele não está funcionando, pois a máquina na qual ele roda está sendo formatada. Se alguém tiver interesse, podemos marcar uma visita com vocês para mostrá-lo depois.
Voltando a VRML, ela não é exatamente uma linguagem de modelagem pelo fato de ela ser muito simples, não provendo mecanismos para modelagem de forma mais eficiente e complexa.
4
4
Histórico
1989: Silicon Graphics – projeto Scenario1992: Iris Inventor1994: Open Inventor1994: Labyrinth1995: Criação e ajustes1996: Proposta de VRML 2.01997: Padronização ISO
Especificação "VRML97" (aka VRML2.0)
1989: Silicon Graphics – projeto Scenario
Projeto e construção de infra-estrutura para aplicações gráficas 3D
1992: Iris Inventor
Primeira ferramenta 3D produzida.
Toolkit C++ que definiu boa parte da semântica atual de VRML
1994: Open Inventor
Versão revisada do Iris
Open porque era portável em várias plataformas e baseado no OpenGL (SiliconGraphics)
Base para o primeiro Draft da especificação VRML 1.0
1994: Labyrinth
Um browser 3D para a WWW
Especificação publicada na "Second International Conference on the World Wide Web", em Chicago
1995: Os ajustes
Bug fixes, melhorias
Propostas para VRML 1.1 (animação, interação)
1996: Request for proposals for VRML 2.0
Muitas contribuições de peso (Silicon Graphics, Sony, Mitra...)
Especificação VRML 2.0 publicada em agosto na SIGGRAPH 96, em New Orleans
Julho: ISO cria comitê para adotar o VRML 2.0 - Committee Draft (CD) 14772
1997: Padronização ISO
Especificação "VRML97" (aka VRML2.0)
5
5
Objetivos da VRML
Modelagem de objetos 3DComposição de "mundos" pela hierarquia de objetosAnimação, interação, multimídiaformato intercambiável (várias aplicações podem ler/gravar)
Internet e WWWVRML foi projetado para ser usado com a infraestrutura Internet/WWW existente
SimplicidadeSuporte VRML deve ser facilmente adicionado às aplicações
• Vários browsers (navegadores) podem e devem dar suporte
Facilidade de ComposiçãoFacilidade em se "montar o todo a partir das peças"Produtividade e trabalho em grupo
Auto-explicativa.
6
6
Objetivos da VRML Cont.
EscalabilidadeO navegador VRML deve operar com "mundos" distribuídos na InternetIndependente da potência da máquinaMundos ajustados à performance da rede (14.4K ~ OC12)Especificação permite adições futuras
Otimização da performanceAlgoritmos de manipulação 3D têm efeito nas ramificações agrupadasSe algo não puder ter performance, então não fará parte da especificação
Versões futurasInteração entre vários usuáriosCriaturas autônomas que podem sentir e reagir no ambiente
Auto-explicativa.
7
7
VRML, Internet e WWW
Navegadores suportam VRML através de plug-insArquivos VRML podem referenciar vários outros formatos
JPEG, PNG, GIF, MPEG podem ser usados para compor a textura de objetosWAV, MIDI podem ser usados para sons emitidos pelo ambiente ou por objetosArquivos com código Java ou JavaScript podem ser referenciados para implementar comportamento de objetos
VRML permite hiperlinksOrganizações que definem esses padrões
Exemplo: World Wide Web Consortium (W3C) padronizou um "tag" HTML (<OBJECT>) que permite embutir VRML, Java, ou outros tipos de arquivos em documentos HTML.
A definição de como VRML deve ser usada com outros padrões é geralmente feita pelas organizações que definem esses padrões
Exemplo: World Wide Web Consortium (W3C) padronizou um "tag" HTML (<OBJECT>) que permite embutir VRML, Java, ou outros tipos de arquivos em documentos HTML.
8
8
VRML, Internet e WWW cont.
Existem várias maneiras de combinar VRML ,JAVA e HTML:
Arquivo VRML dentro de um arquivo HTML: Usando o tag <OBJECT>
Código Java dentro de arquivo VRML: Faz parte do padrão VRML (mas é de implementação opcional)
Bibliotecas de Classes Java correspondentes aos nós VRML: Para implementação de ferramentas VRML (ex: VRML browsers)
Mecanismos ainda não padronizados ou implementadosApplet Java conversando com browser VRMLArquivo HTML dentro de arquivo VRML
• Ex: arquivo HTML como uma textura de um objeto 3D
Applet Java dentro de um arquivo VRML: • Ex: applet Java como uma textura de um objeto 3D
Auto-explicativa.
9
9
VRML: O Que Falta
Formato binário para VRMLCódigo VRML não tem proteçãoPadrão ainda não definido
CompressãoJá se usa compressão – padrão gzip (taxa média 5:1)Formato binário poderia aumentar compressão (10:1, 50:1)
Suporte multiusuárioProtótipos em andamento
Formato binário para VRML
Código VRML não tem proteção
Padrão ainda não definido, propostas em discussão
10
10
Visão Geral do VRML
Estrutura Gráfica da CenaVRML descreve "mundos" (worlds) usando uma cena gráfica hierárquicaEntidades na cena são chamados "nós" (nodes). VRML 2.0 define 54 tipos de nós:
• Primitivas geométricas• Propriedades de aparência, som• Agrupamento de nós
Nós armazenam seus dados (atributos) em "campos" (fields). VRML 2.0 define 20 tipos de campos (números, arrays)Nós podem conter outros nós.
• Alguns nós podem ter "filhos" (children) • Alguns nós podem ter mais de um "pai“• Um nó não pode conter a si mesmo (recursividade).• Criação de "mundos" complexos ou objetos a partir de subpartes
Tal estrutura de nós permite permite criar "mundos" complexos ou objetos a partir de sub-partes
11
11
Visão Geral do VRML cont.
Arquitetura de EventosMecanismo de geração de eventos permite que os nós da cena se comuniquem entre si.Cada tipo de nó define os nomes e tipos de eventos que podem ser gerados ou recebidos
SensoresSensores são as primitivas básicas de animação e interação com o usuário.
• O nó "TimeSensor" gera eventos com o passar do tempo e é a base para todos os comportamentos animados.
• Outros sensores geram eventos quando o usuário se movimenta através da cena ou quando interage através de algum dispositivo de entrada.
Sensores geram apenas eventos. Eles devem ser combinados com outros nós para ter qualquer efeito visual na cena.
Auto-explicativa.
12
12
Visão Geral do VRML cont.
Scripts e InterpoladoresScripts permitem ao autor da cena definir comportamentos arbitrários, usando qualquer linguagem suportada.VRML 2.0 define conexões para linguagens Java e JavaScriptNós "Script" podem ser inseridos entre geradores de eventos (sensores) e recebedores. Interpoladores são scripts embutidos que executam animações. Eles podem ser combinados com "TimeSensor" e algum nó da cena para fazer objetos se moverem.
Encapsulamento e Reuso Geometria, propriedades, animações ou comportamento podem ser encapsulados separadamente ou junto da cena.Permite a definição de um novo tipo de nó a partir da combinação de tipos existentes de nós
• Biblioteca de objetos 3D• Facilidade de uso, trabalho em equipe• Reduz tamanho de arquivos
Auto-explicativa.
13
13
Visão Geral do VRML cont.
Cenas DistribuídasVRML 2.0 inclui duas primitivas que permitem que a definição de uma cena possa ser distribuída independentemente.O nó "Inline" permite a inclusão de outra cena armazenada em outro arquivo – em qualquer lugar da Web.O comando "EXTERNPROTO" permite que definições de novos nós possam ser acessados de qualquer lugar da Web. É o mecanismo básico que estende o VRML.
Auto-explicativa.
14
14
Visão Geral do VRML cont.
Modelo Conceitual de um BrowserVRML
A figura mostra o modelo conceitual de um VRML Browser. O browser é retratado como uma aplicação de apresentação que aceita entradas do usuário na forma de arquivos de manipulação e navegação através de um dispositivo de entrada. Os três componentes principais do browser são: Parser, Scene Graph e Audio/Visual presentation.
O componente Parser lê os arquivos VRML e cria a Scene Graph . O componente Scene Graph consiste em agregar todos os objetos e organizar sua hierarquia. O componente Scene Graph também é responsável por processar os eventos do usuário. Por último o componente Audio/Visual Presentation exibe a saída para o usuário dos objetos renderizados do Scene Graph.
15
15
Estrutura do Arquivo VRML
Arquivos VRML têm extensão .wrl (world)Cabeçalho (obrigatório)Cena
Definição dos objetos gráficosContém os nós (nodes) que descrevem objetos e suas propriedadesObjetos podem ter geometria hierarquicamente agrupada para prover representações áudio -visuais complexas.
ProtótiposExtensões de nós VRML definidos externamente pelo usuário
EventosDefinições dos eventos associados aos objetos
Alguns conceitos básicos da estrutura de VRML.
16
16
Estrutura do Arquivo VRML
CabeçalhoPrimeira linha do arquivoIdentifica o arquivo como VRML e informa o tipo de codificação usada
• #VRML V2.0 <encoding type> [comment] <line terminator>
Apenas um caractere de espaço entre os componentes do cabeçalho<encoding type> é "utf8"
• Existem outras codificações autorizadas pelo VRML 2.0• "utf8" indica texto livre (padrão UTF-8 da ISO 10646-1,
RFC2044)• Também conhecido como Unicode ;-)
#VRML V2.0 utf8 Gerado por Maria da Silva
Aqui temos a definição do cabeçalho do arquivo, essencial a todo arquivo vrml.
17
17
Estrutura do Arquivo VRML
# inicia um comentárioApenas o 1º comentário tem significado (cabeçalho)
Caracteres NÃO permitidos para nomesPrimeira letra: + - 0-9 " ' # , . [ ] \ {} 0x0-0x20Restante: " ' # , . [ ] \ {} 0x0-0x20
Palavras reservadasDEF, EXTERNPROTO, FALSE, IS, NULL, PROTO, ROUTE TO, TRUE, USE, eventIn, eventOut, exposedField, field
VRML é sensível a maiúsculas e minúsculas"Sphere" é diferente de "sphere""BEGIN" é diferente de "begin"
Vale ressaltar esses tópicos quando vocês estiverem codificando seus mundos virtuais:
•Comentários são feitos linha a linha através do uso do caractere #;
•Alguns caracteres são permitidos estarem em nomes de nós. São eles:
Primeira letra: + - 0-9 " ' # , . [ ] \ {} 0x0-0x20
Restante: " ' # , . [ ] \ {} 0x0-0x20
•Algumas palavras são reservadas e não devem ser utilizadas como nomes. São elas:
DEF, EXTERNPROTO, FALSE, IS, NULL, PROTO, ROUTE, TO, TRUE, USE, eventIn,
eventOut, exposedField, field
•VRML é sensível a maiúsculas e minúsculas
18
18
Conceitos-chave: Unidades de Medida
Unidades de medida
Radianos foi escolhido por compatibilidade com o padrão da linguagem C (math library routines)
Conversão graus radianos: Radianos = π.graus / 180Tempo é expresso como um double-precision floating point(precisão nano-segundos)
Categoria Unidade
Distância linear Metros
Ângulos Radianos
Tempo Segundos
Cores RGB ([0., 1.], [0., 1.], [0., 1.])
As unidades padrão para VRML são:
•Para distância linear: metros;
•Para ângulos: radianos;
•Para tempo: segundos;
•Para cores: RGB, que consiste num conjunto de três números variando de 0 a 256 e que representam seqüencialmente valores de vermelho, verde e azul. Isso será melhor explicado mais à frente.
19
19
Conceitos-chave: Nó
Sintaxe da declaração do Nó[DEF <name>] <nodeType> { <body> }
Nome opcionalTipo do nóCorpo do nóO [DEF <name>] permite usar o nó depois referenciando
o nome com o comando USE (ex.: USE <name>)Não precisa de espaço separando { } e [ ]Exemplo:
Box { size 2 2 2 }
Aqui temos a declaração de um nó. Um nó não precisa ter um nome definido para si. Entretanto, esses nomes são muito úteis para reutilizar um mesmo nó em diferentes locais do mundo.
**Observação: não é possível modificar uma reutilização de um nó (gerada a partir do comendo USE), pois esse é uma cópia do nó original e não um novo objeto que herda suas características. Além disso, se você modificar o objeto original, todas as suas cópias também serão modificadas.
20
20
Conceitos-chave: Campo
Sintaxe da declaração de um campo:<fieldName> <fieldValue>
<fieldName> [ <fieldValues> ]
Exemplos:radius 0.1 height 20colorIndex [0 1 2 3 4 5 6 7 ] coordIndex [ 0 1 2 3 -1, 8 9 10 11 -1, 0 1 11 8 5 4 -1 ]
Existem dois tipos de declaração de campo:
•A primeira basicamente é a escrita do nome do campo seguido de seu(s) parâmetro(s) separados por espaço(s)
•O segundo consiste na escrita do nome do campo seguidos de valores entre colchetes e separados ou não pro vírgulas. Observe os exemplos.
21
21
Conceitos-chave: Campo cont.
Tipos de CampoSFBool TRUE/FALSESFColor 3 valores float entre 0 e 1 (RGB). Ex.: 0 0.7 0.2MFColor lista de valores SFColor. Ex.: [0 0.5 0, 1 0 0]SFFloat 1 valor float. Ex.: 1.7456MFFloat lista de valores float. Ex.: [1.2, 3.5, 7, 9.5]SFInt32 & MFInt32 inteiro de 32bits & lista SFNode & MFNode nó & lista de nósSFRotation 4 valores float:
• 3 primeiros: vetor-eixo de rotação• 4º: ângulo de rotação em radianos
MFRotation lista de SFRotation
Aqui temos tipos de campo. Coloquei aqui como forma de consulta rápida para vocês, mas não entrarei e muitos detalhes.
Consultem na Internet para saber mais sobre cada um desses tipos:
•SFBool valor booleano (TRUE/FALSE)
•SFColor 3 valores float entre 0 e 1 (RGB). Ex.: 0 0.7 0.2
•MFColor lista de valores SFColor. Ex.: [0 0.5 0, 1 0 0]
•SFFloat 1 valor float. Ex.: 1.7456
•MFFloat lista de valores float. Ex.: [1.2, 3.5, 7, 9.5]
•SFInt32 & MFInt32 inteiro de 32bits & lista (representação pode ser feita em decimal ou hexadecimal. Números hexadecimais começam com 0x. Ex.: 0xFF é 255 em decimal)
•SFNode & MFNode nó & lista de nós
•SFRotation 4 valores float:
•3 primeiros representam vetor que define eixo de rotação
•Último representa ângulo de rotação em radianos
•MFRotation lista de SFRotation
22
22
Conceitos-chave: Campo cont.
Tipos de CampoSFString string de characteres utf-8. Ex.: “Eu”MFString lista de SFStrings. E.x: [“Eu”, “Tu”, “Ele”]SFTime & MFTime: tempo (float) & uma lista de tempos. Exs.:1947582537.2323, [1000000000.1, 9.8]SFVec2f vetor 2D. Ex.: 1.4 7.3MFVec2f lista de vetores 2D. Ex.: [2.3 3.4, 4.5 5.6]SFVec3f vetor 3D. Ex.: 1.4 7.3 9.1MFVec3f lista de vetores 3D.Ex.: [2.3 3.4 4.5, 5.6 6.7 7.8]
Continuando com os tipos de campo, temos:
SFString string de caracteres utf-8. Ex.: “Eu”
MFString lista de SFStrings. E.x: [“Eu”, “Tu”, “Ele”]
SFTime & MFTime: tempo (float) & uma lista de tempos. Um tempo é representado por um valor float que corresponde ao número de minutos passados de meia noite de 1º de Janeiro de 1970.
SFVec2f vetor 2D. Um vetor 2D é basicamente um par de valores float. Ex.: 1.4 7.3
MFVec2f lista de vetores 2D. Ex.: [2.3 3.4, 4.5 5.6]
SFVec3f vetor 3D. Um vetor 3D é basicamente um trio de valores float. Ex.: 1.4 7.3 9.1
MFVec3f lista de vetores 3D.Ex.: [2.3 3.4 4.5, 5.6 6.7 7.8]
23
23
Conceitos-chave: Campo cont.
Tipos de CampoSFImage imagem bidimensional colorida ou em tons de cinza.
• 2 inteiros: largura e altura da imagem• 1 inteiro: número de componentes de cor:
– 1 para tons de cinza– 2 para tons de cinza com transparência– 3 para RGB– 4 para RGB com transparência
• N números hexadecimais (N = largura da imagem x altura da imagem) para a cor dos pixels. Ex.:
– Tons de cinza: 0X00 (cor preta)– RGB com transparência: 0x00FF007F (verde semi-
transparente)
SFImage imagem bidimensional colorida ou em tons de cinza. Consiste de:
Dois números inteiros representando seqüencialmente a largura e a altura da imagem
Um número inteiro representando o número de componentes de cor da imagem:
Valor igual a 1 para imagem em tons de cinza apenas
Valor igual a 2 para imagem em tons de cinza com transparência
Valor igual a 3 para imagem em RGB
Valor igual a 4 para imagem em RGB com transparência
N números hexadecimais (N = largura da imagem x altura da imagem), com dois dígitos para cada componente de cor, descrevendo cada um a cor de um pixel da imagem. A ordem de definição dos pixels da imagem se dá da direita para a esquerda e de baixo para cima.
24
24
Conceitos-chave: Eventos
São notificações de mudança no valor de algum campoTipos
EventOut eventos que geram informaçãoEventIn aceitam e utilizam informação externa (EventOut)
Campos Exposed possuem EventIn e EventOutpróprios
Outro conceito importante é conceito de eventos Os nos podem se comunicar entre si através da geração e captação de eventos. Eventos são, então, notificações de mudança no valor de algum campo passados e recebidos de um nó para outro.
Os tipos de evento são:
EventOut eventos que geram informação
EventIn aceitam e utilizam informação externa (EventOut)
Alguns nós possuem campos que são do tipo exposed. Isso significa que o nó tem dois eventos já definidos para esse campo: set_nomeDoCampo(representando o EnventIn desse campo, servindo para receber novos valores para si) e nomeDoCampo_changed (representando o EnventOutdesse campo, servindo para notificar o mundo externo sobre sua mudança de valor). Para facilitar o uso, não é necessáriao se referir a esses eventos com o prefixo set_ e sufixo _changed. Basta usa o nomeDoCampo e o navegador distinguirá qual dos dois eventos está sendo utilizado.
Somente campos Exposed podem ser modificados por exemplo (ver http://web3d.vapourtech.com/tutorials/vrml97/en/nodes.html ).
25
25
Conceitos-chave: Rotas
Efetuam a transmissão de informação entre eventos
Ex.: tocar um som quando o mouse for clicado• Definir nomes únicos para os objetos cujos eventos serão
ligadosDEF SENSOR TouchSensor { } DEF SOUND Sound { }
• Conectar campos através do comando RouteROUTE SENSOR.touchTime TO SOUND.startTime
Se houver objetos com mesmo nome, todos serão afetados!
Sensor
EventOut TouchTime
Sound
EventIn StartTimeRoute
Para que os eventos sejam transmitidos, é necessário criar-se canais de comunicação entre eles. Esse canais são chamado de routes (que em inglês significa rotas). Eles irão ligar eventos de saída a eventos de entrada , assim efetuar a comunicação de mudança de valores entre campos de nós.
Para criar-se um rota precisa se ter bem-definidos o local do campo de EventOute o de EventIn. Ou seja, cada nó tem que ter um nome único no código para identificá-lo. Observe o exemplo.
Criar nós com mesmo nome e com campos EventIn (fan out) fará com que esses campos desses nós recebam um mesmo EventOut – equivalente a um broadcast. Entretanto, Criar nós com mesmo nome e com campos EventOut (fan in) fará com que todos os EventOut gerados por esse campos desses nós vão para um mesmo EventIn (fan in). Isso pode gerar problemas de colisão entre os eventos gerados. Nesse caso, um controle de tempo de eventos tem que ser feito.
26
26
Conceitos-chave: Sistema de Coordenadas
Sistema de CoordenadasVRML usa sistema Cartesiano 3D+X para a direita, -X para a esquerda+Y para cima, -Y para baixo+Z para perto, -Z para longe
Z
X
Y
O sistema de coordenada de VRML é baseado na regrada mão direita,como mostrado na figura, onde a palma da mão fica de frente para a pessoa. O y positivo aponta para cima, o x positivo aponta para a direita e o z positivo aponta para fora do monitor.
27
27
Conceitos-chave: Cores
Sistema RGBCada cor básica é representada por número decimal de 0 até 1A cor é montada combinando as 3 cores básicasPara montar a cor desejada, mapeie as cores básicas [0, 255] --> [0,1]
Aqui está como funciona o sistema de cores em VRML. Ele é baseado num sistema RGB aditivo. Ou seja, cada cor é definida por 3 valores de 0 a 256: o primeiro para o vermelho, o segundo para o verde e o terceiro para o azul. Ele é aditivo por que a soma das cores nos fornece o branco ao invés do preto. Em resumo, é similar à adição de luzes de diferentes cores e não como quando se compõe cores diferentes com o lápis de cor. A tabela ao lado mostra algumas cores resultantes de valores atribuídos ao sistema RGB aditivo.
28
28
Primitivas VRML
Primitivas BásicasPrimitivas Avançadas
Atenção:
Nas páginas a seguir, a especificação dos nós VRML não contém, necessariamente, todos os atributos e opções. Por motivos didáticos, apenas as principais características foram selecionadas para discussão. Para uma referência completa dos nós VRML, veja a especificação da ISO em:
http://www.web3d.org/x3d/specifications/vrml/
Vamos passar agora para o estudo das primitivas em VRML. Antes de começar, entretanto gostaria de observar que a especificação dos nós VRML que eu darei aqui não contém todos seus atributos e opções. Por motivos didáticos, apenas as principais características foram selecionadas para discussão. Se vocês quiserem mais informações sobre cada nó, recomendo que procurem na Web ou sigam esse endereço.
29
29
Primitivas Básicas
Shape { Geometry
• Box • Cone • Cylinder• ElevationGrid• Extrusion• IndexedFaceSet• IndexedLineSet• PointSet• Sphere• Text
Appearance• material • texture• textureTransform
}
As primitivas básicas que veremos nessa aula são as que estão destacadas em verde.
30
30
Box
Box { size 2 2 2 }
defaultsx y z
Centro = ( 0, 0, 0 )
O campo size indica as dimensões das arestas do paralelepípedo seqüencialmente nos eixos x, y e z.
31
31
Box#VRML V2.0 utf8Shape {
geometry Box {}appearance Appearance {
material Material { diffuseColor 1 0 0
}}
}
Aparência: cor vermelha
Valores default: 2 2 2
Aqui temos a definição da aparência do paralelepípedo dentro dele. Para tanto foi definido o nó appearance e, dentro dele, o nó material. O atributo de definição da cor é o DiffuseColor Sempre que se deseja atribuir cor a um objeto, deve-se inserir os nós appearance e material.
32
32
Sphere
Sphere { radius 1 }
Raio default
Centro = ( 0, 0, 0 )
Auto-explicativa.
33
33
Sphere#VRML V2.0 utf8Shape {
geometry Sphere {}appearance Appearance {
material Material { diffuseColor 0 1 0
}}
}
Aparência: cor verde
Raio default: 1
A cor é definida da mesma forma que para o paralelepípedo. Isso acontece para todos os objetos.
34
34
Cone
Cone {bottomRadius 1 height 2 side TRUE bottom TRUE
}
O nó cone possui quatro campos:
•bottomRadius: define o raio da base do cone e recebe valores inteiros (0, 1, 2) ou reais (0.2, 3.7)
•Height: define a altura do cone e recebe valores inteiros (0, 1, 2) ou reais (0.2, 3.7)
•Side: valor booleano que diz se os polígonos que definem a lateral do cone devem aparecer
•Bottom: valor booleano que diz se os polígonos que definem a base do cone devem aparecer
35
35
Cone#VRML V2.0 utf8Shape {
geometry Cone {}appearance Appearance {
material Material { diffuseColor 0 0 1
}}
}
Aparência: cor azul
Valores default
A cor é definida da mesma forma que para o paralelepípedo. Isso acontece para todos os objetos.
36
36
Cylinder
Cylinder {bottom TRUE height 2 radius 1 side TRUE top TRUE
}
O nó cone possui quatro campos:
•Radius: define o raio das bases do cilindro e recebe valores inteiros (0, 1, 2) ou reais (0.2, 3.7)
•Height: define a altura do cilindro e recebe valores inteiros (0, 1, 2) ou reais (0.2, 3.7)
•Side: valor booleano que diz se os polígonos que definem a lateral do cilindro devem aparecer
•Bottom: valor booleano que diz se os polígonos que definem a base inferior do cilindro devem aparecer
•Top: valor booleano que diz se os polígonos que definem a base superior do cilindro devem aparecer
37
37
Cylinder#VRML V2.0 utf8Shape {
geometry Cylinder {}appearance Appearance {
material Material { diffuseColor 1 0 1
}}
}
Aparência: cor magenta
Valores default
A cor é definida da mesma forma que para o paralelepípedo. Isso acontece para todos os objetos.
38
38
ReferênciasFloppy’s VRML 97 Tutorial:
• http://web3d.vapourtech.com/tutorials/vrml97/
Web 3D Consortium – VRML Archives• http://www.web3d.org/x3d/vrml/index.html
Atualizar local onde a lista se encontra e data de entrega!