• Nenhum resultado encontrado

VRML Virtual Reality Modeling Language

N/A
N/A
Protected

Academic year: 2021

Share "VRML Virtual Reality Modeling Language"

Copied!
19
0
0

Texto

(1)

1

VRML

Virtual Reality Modeling Language

INTRODUÇÃO AO VRML

Baseado em apresentação de Judith Kelner, Alejandro Frery

2 2

Roteiro

1. O que é VRML 2. Histórico 3. Objetivos da VRML 4. VRML, Internet e WWW 5. Visão geral do VRML 6. Estrutura do Arquivo VRML 7. Conceitos-chave 8. Semântica dos Nós 9. Primitivas Básicas 10.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.

(2)

3

3

O Que é VRML

„ Virtual Reality Modeling Language ÎSuporte para RV não-imersiva

ÎVRML 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 3D

ÎPublicaçã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 Scenario „ 1992: Iris Inventor „ 1994: Open Inventor „ 1994: Labyrinth „ 1995: Criação e ajustes „ 1996: Proposta de VRML 2.0 „ 1997: 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 (Silicon Graphics)

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

(3)

5

5

Objetivos da VRML

„ Modelagem de objetos 3D

ÎComposição de "mundos" pela hierarquia de objetos ÎAnimação, interação, multimídia

Îformato intercambiável (várias aplicações podem ler/gravar)

„ Internet e WWW

ÎVRML foi projetado para ser usado com a infraestrutura Internet/WWW existente

„ Simplicidade

ÎSuporte VRML deve ser facilmente adicionado às aplicações

• Vários browsers (navegadores) podem e devem dar suporte „ Facilidade de Composição

ÎFacilidade em se "montar o todo a partir das peças" ÎProdutividade e trabalho em grupo

Auto-explicativa.

6

6

Objetivos da VRML

Cont.

„ Escalabilidade

ÎO navegador VRML deve operar com "mundos" distribuídos na Internet

ÎIndependente da potência da máquina

ÎMundos ajustados à performance da rede (14.4K ~ OC12) ÎEspecificação permite adições futuras

„ Otimização da performance

ÎAlgoritmos de manipulação 3D têm efeito nas ramificações agrupadas

ÎSe algo não puder ter performance, então não fará parte da especificação

„ Versões futuras

ÎInteração entre vários usuários

ÎCriaturas autônomas que podem sentir e reagir no ambiente

(4)

7

7

VRML, Internet e WWW

„ Navegadores suportam VRML através de plug-ins „ Arquivos VRML podem referenciar vários outros formatos

ÎJPEG, PNG, GIF, MPEG podem ser usados para compor a textura de objetos

ÎWAV, MIDI podem ser usados para sons emitidos pelo ambiente ou por objetos

ÎArquivos com código Java ou JavaScript podem ser referenciados para implementar comportamento de objetos

„ VRML permite hiperlinks

„ 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.

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 implementados ÎApplet Java conversando com browser VRML

ÎArquivo 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

(5)

9

9

VRML: O Que Falta

„ Formato binário para VRML ÎCódigo VRML não tem proteção

ÎPadrão ainda não definido

„ Compressão

ÎJá 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ário ÎProtó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 Cena

ÎVRML descreve "mundos" (worlds) usando uma cena gráfica hierárquica

ÎEntidades 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

(6)

11

11

Visão Geral do VRML

cont.

„ Arquitetura de Eventos

ÎMecanismo 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

„ Sensores

ÎSensores 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 Interpoladores

ÎScripts permitem ao autor da cena definir comportamentos arbitrários, usando qualquer linguagem suportada.

ÎVRML 2.0 define conexões para linguagens Java e JavaScript ÎNó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

(7)

13

13

Visão Geral do VRML

cont.

„ Cenas Distribuídas

ÎVRML 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 Browser VRML

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.

(8)

15

15

Estrutura do Arquivo VRML

„ Arquivos VRML têm extensão .wrl (world) „ Cabeçalho (obrigatório)

„ Cena

ÎDefinição dos objetos gráficos

ÎContém os nós (nodes) que descrevem objetos e suas propriedades

ÎObjetos podem ter geometria hierarquicamente agrupada para prover representações áudio -visuais complexas. „ Protótipos

ÎExtensões de nós VRML definidos externamente pelo usuário

„ Eventos

ÎDefinições dos eventos associados aos objetos

Alguns conceitos básicos da estrutura de VRML.

16

16

Estrutura do Arquivo VRML

„ Cabeçalho

ÎPrimeira linha do arquivo

ÎIdentifica 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

(9)

17

17

Estrutura do Arquivo VRML

„ # inicia um comentário

ÎApenas o 1º comentário tem significado (cabeçalho) „ Caracteres NÃO permitidos para nomes

ÎPrimeira letra: + - 0-9 " ' # , . [ ] \ {} 0x0-0x20

ÎRestante: " ' # , . [ ] \ {} 0x0-0x20

„ Palavras reservadas

ÎDEF, 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 / 180 ÎTempo é 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.

(10)

19

19

Conceitos-chave: Nó

„ Sintaxe da declaração do Nó

Î[DEF <name>] <nodeType> { <body> }

ÎNome opcional

ÎTipo 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 20 ÎcolorIndex [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.

(11)

21

21

Conceitos-chave: Campo

cont.

„ Tipos de Campo ÎSFBool 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 SFNode &

MFNode nó & lista de nós ÎSFRotation 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 Campo

ÎSFString 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.3

ÎMFVec2f lista de vetores 2D. Ex.: [2.3 3.4, 4.5 5.6]

ÎSFVec3f vetor 3D.

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]

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

(12)

23

23

Conceitos-chave: Campo

cont.

„ Tipos de Campo

ÎSFImage 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 campo

„ Tipos

ÎEventOut eventos que geram informação ÎEventIn aceitam e utilizam informação externa

(EventOut)

„ Campos Exposed possuem EventIn e EventOut pró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 EnventOut desse 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 ).

(13)

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 ligados

DEF SENSOR TouchSensor { } DEF SOUND Sound { }

• Conectar campos através do comando Route

ROUTE SENSOR.touchTime TO SOUND.startTime

„ Se houver objetos com mesmo nome, todos serão afetados! Sensor EventOut TouchTime Sound EventIn StartTime Route

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 EventOut e 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 Coordenadas

ÎVRML 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.

(14)

27

27

Conceitos-chave: Cores

„ Sistema RGB

„ Cada cor básica é representada por número decimal de 0 até 1 „ A cor é montada combinando as 3 cores básicas „ Para 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ásicas „ Primitivas 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.

(15)

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 } defaults x 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.

(16)

31 31

Box

#VRML V2.0 utf8 Shape { 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.

(17)

33 33

Sphere

#VRML V2.0 utf8 Shape { 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

(18)

35 35

Cone

#VRML V2.0 utf8 Shape { 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

(19)

37 37

Cylinder

#VRML V2.0 utf8 Shape { 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ências ÎFloppy’s VRML 97 Tutorial: •http://web3d.vapourtech.com/tutorials/vrml97/ ÎWeb 3D Consortium – VRML Archives

•http://www.web3d.org/x3d/vrml/index.html

Referências

Documentos relacionados

1 - Origem Geográfica das Escolas Lisboa Beja Faro Bragança Santarém Castelo Branco Coimbra Évora Leiria Portalegre Setúbal Viseu Estrangeiro... 55 e 56 – Memórias Terrenas de um

Esse método precisa que o campo mustEvaluate do nó Script ao qual pertence esteja ativado (TRUE);. Browser.loadURL(MFString url, MFString parameter): carrega um novo mundo de um

* Viatura utilizada pela Presidente do CA e pela Vogal Não Executiva e “outros” serviços. ** Viatura utilizada pela Vogal Executiva do CA e para

Redutase do Nitrato: Etapas, processos bioquímicos, microrganismos, fatores que interferem aplicação no solo, importância no solo e na nutrição das plantas.. -Fixação do

Entretanto, para se explorar de forma mais otimizada a fixação biológica de nitrogênio (FBN) é necessário que se conheça a ecologia das bactérias do grupo dos rizóbios

crático, decorrendo daí certa negativa de aceitação de políticas de ação afirmativa para as mulheres; (3) na sua maioria, embora não acreditem na discriminação

Não o tinha porém reconhecido, o que era de suma importância, pois além de existir a mãe do fazendeiro lá para as bandas de Minas, o sujeito ainda estava robusto e podia bem

Tratamento de infestações por piolhos em cães (Trichodectes canis) e gatos (Felicola subrostratus) O medicamento veterinário pode ser utilizado como parte de uma estratégia