VRML Virtual Reality Modeling Language

Documentos relacionados
Sistemas Multimídia Aula 3 VRML

Curso Básico. Profa. Dra. Elisamara de Oliveira

VRML2.0. Tutorial. Marcos Carrard

Índice 1. INTRODUÇÃO E BREVE HISTÓRICO 1 2. CARACTERÍSTICAS BÁSICAS DE VRML 2 3. GERANDO MUNDOS VRML 3 4. COMBINANDO VRML E JAVASCRIPT 36

1. Realidade Virtual 1.1 Introdução 1.2 VRML Histórico VRML 1.0 VRML 2.0 VRML Aplicações

Comandos Extras Formatações no CSS

Virtual Reality Modeling Language

IFSC/Florianópolis - Prof. Herval Daminelli. De fontes De textos De margens De bordas De preenchimentos (padding) De fundos (background) De links

CSS Cascading Style Sheets

Web Design Aula 16: Modelo de Caixa e propriedades de Imagem

INTRODUÇÃO AO DESENVOLVIMENTO WEB. PROFª. M.Sc. JULIANA H Q BENACCHIO

Exercícios Práticos HTML5 + CSS3. Profa. Flávia Pereira de Carvalho

Sintaxe Básica da Linguagem CSS

HTML 5 LINGUAGEM DE MARCAÇÃO E ESTILO - CSS - Prof. Rosemary Melo

Recurso Didáctico. Dossier Técnico Pedagógico Projecto: 5742/2008/22 Acção: 5742/2008/ Formador[a]

Exemplos Práticos HTML5 + CSS3. Profa. Flávia Pereira de Carvalho

CSS [10] Desenvolvimento e Design de. Websites. Prof.: Ari Oliveira

CSS (Cascading Style Sheet)

Referência Básica. X3D (Extensible 3D) X3D Browser X3D.

GUI - Menu de Jogo. Ferramenta de Desenvolvimento - Engine I

VRML Virtual Reality Modeling Language

CSS Cascading Style Sheets (Folhas de Estilo em Cascata)

1º Teste Computação Gráfica

Realidade Virtual: Conceitos e Aplicações REALIDADE VIRTUAL

VRML Virtual Reality Modeling Language

Informática I. Aula 3. Aula 3-03/09/2007 1

Computação Gráfica. Exame de Época Especial de. Nº Nome:

TUTORIAL WORDART: Criando nuvens de palavras. Realização: Secretaria Geral de Educação a Distância da Universidade Federal de São Carlos

Materiais e UVW Map Renderizar com Rhino parte #03

Instruções para uso do HEMERA Sistematizador GHOEM de Textualizações Sumário

Respostas - RESUMO: Questionário CSS. 1) O padrão CSS nasceu para tentar minimizar quais problemas ligados à gestão de conteúdos na web?

F E B A C. Exercício de Fixação 3. FACULDADE DE EDUCAÇÃO DE BACABAL FEBAC Credenciamento MEC/Portaria: 472/07 Resolução: 80/07

CAPÍTULO 8. Desenhos, imagens e modelos 3D editores de imagens, CADs e modeladores 3D

Desenvolvimento Web. Professor: Bruno E. G. Gomes

Writer. Interface e Formatação de Estilos

PROGRAMAÇÃO PARA INTERNET RICA FUNDAMENTOS DO CSS PARTE II

INTRODUÇÃO AO DESENVOLVIMENTO WEB. PROFª. M.Sc. JULIANA H Q BENACCHIO

Tutorial de Wordpress

HTML, CSS e JavaScript

Aula 3 - Parte Final HTML e CSS

CSS. Karen Frigo Busolin

INTRODUÇÃO AO CSS. HTML é usado para estruturar conteúdos. CSS é usado para formatar conteúdos estruturados.

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA MECÂNICA CRIANDO TEXTOS. Professor: João Carmo

PROGRAMAÇÃO PARA INTERNET RICA FUNDAMENTOS DO CSS PARTE I

1º Teste de Computação Gráfica

Autodesk 3ds Max - Primitivas

<HTML> Vinícius Roggério da Rocha

Uma regra CSS quando válida para vários seletores, estes podem ser agrupados. Exemplo: h1, h2, h3, h4, h5, h6 { color: #00FF00; }

Excel Intermediário. Prof. Wagner Machado do Amaral. Aula 03 Importação de Dados, Classificação e Formatação Condicional.

UFCD 0793 Scripts CGI e Folhas de Estilo Formadora: Sónia Rodrigues

No sub menu de Formatos temos algumas opções a trabalhar. Vejamos cada uma

Desenvolvimento Web. CSS Conceitos básicos parte I. Professor: Bruno Gomes

Tutorial sobre o MineraFórum I. Introdução

POV-Ray. André Tavares da Silva.

Universidade Federal do Rio de Janeiro Faculdade de Arquitetura e Urbanismo

TÉCNICAS DE CAD PARA ENGENHARIA CIVIL AULA 12

Aula 11 Introdução ao Java Script

Introdução ao AutoCAD Capitulo VI: Adicionar texto. João Manuel R. S. Tavares Joaquim O. Fonseca

3. Construção de páginas web Introdução ao HTML

CFAC: Introdução ao AutoCAD - VI. Capitulo VI: Adicionar texto

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB

TÉCNICAS DE CAD PARA ENGENHARIA CIVIL AULA 7 2. INCLUSÃO DE PADRÕES DE HACHURAS NOS DESENHOS

Ferramenta para geração de relatórios e gráficos, vinculados ao Cybersul Solution3. Relatórios personalizados. Gráficos personalizados

APRESENTAÇÃO... 3 IGEO... 3 ACESSO AO SISTEMA... 4 MANUAL DO USUÁRIO... 4 FUNCIONALIDADES... 5 NAVEGAÇÃO E CONSULTA... 5 MANIPULAÇÃO DE CAMADAS...

2.8 Inserindo Objetos. Campos

1 Configurando um mapa de rede

1º Teste de Computação Gráfica 3º Ano

Excel INTERMEDIÁRIO. Prof. Cassiano Isler Turma 3

Módulo 17E. Revisões de HTML. A) Noções básicas de HTML (cont.)

Classes e Objetos. Sintaxe de classe em Java

Para visualizar corretamente configurar a tela para 1024 x 768 pixels. Tabelas

Unidade 4: Introdução à Tecnologia CSS Prof. Daniel Caetano

Permite que o conteúdo e o layout de uma página seja separado do design visual e os elementos de apresentação.

Universidade de São Paulo

Recursos Complementares (Tabelas e Formulários)

Aula 01 Microsoft Excel 2016

Transcrição:

Roteiro VRML Virtual Reality Modeling Language PRIMITIVAS BÁSICAS E AVANÇADAS Baseada na apresentação de: Dênio Mariz, Judith Kelner, Alejandro Frery Cin/UFPE, novembro 2000 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 2 Aí está o roteiro da apresentação. Percebam que, hoje, para a felicidade de vocês que a aula de hoje será bastante prática. Portanto, vocês terão de prestar atenção aula do começo ao fim, diferentemente da aula passada. Ou seja, sem sono, por favor. O conteúdo da aula será um tanto extenso, mas, acredito eu, bastante interessante. Terminaremos de abordar as primitivas básicas e uma parte das primitivas avançadas. 1 2

Primitivas Básicas e Avançadas Text Shape { Geometry Box Cone Cylinder ElevationGrid Extrusion IndexedFaceSet IndexedLineSet PointSet Sphere Text Appearance material texture texturetransform Text fontstyle Group Billboard Transform Viewpoint Anchor Inline Proto Extern Proto WorldInfo Background Panorama Fog IndexedFaceSet IndexedLineSet PointSet Extrusion 3 Elevation Grid Text { string [] fontstyle NULL length [] maxextent 0.0 Posição inicial Z = 0 fontstyle é outro nó que especifica detalhes do fonte usado length indica o tamanho (pode encolher ou alargar a apresentação do string) maxextent m a x E x t e n t 4 Bem aqui está o assunto da aula: já vimos as quatro primitivas em cinza na aula passada e agora veremos os tópicos em verde, começando pela primitiva Text juntamente com a fontstyle. Em seguida veremos em detalhe o nó material, o qual vimos vagamente na aula passada. Também como parâmetro do nó Appearance, será visto o nó Texture que permitirá aplicar texturas ou imagens às faces de um objeto. Daí, veremos os nós na segunda coluna em verde, as primeiras primitivas avançadas. Geralmente, essa aula é dada em duas partes: a primeira, onde são abordadas as primitivas básicas e a segunda com as primitivas avançadas, intercaladas por exercícios. Eu, entretanto, preferi deixar todos os exercícios para o final e dar logo toda a teoria, como forma de garantir a finalização do conteúdo da aula sem prejuízo nenhum, acredito eu, para vocês, uma vez que vocês terão as transparências para consultar. Começando pelo nó Text, a função dele é bastante óbvia: adicionar texto em mundos tridimensionais. O seu campos são: 1. A string à qual ele irá apresentar na tela; 2. O tipo de fonte utilizada (três estilos no total); 3. O tamanho da fonte sendo apresentada 4. O limite máximo de uma linha de texto (quando o texto está na horizontal) ou coluna de texto quando ele é escrito na vertical. Se o texto for maior que o comprimento máximo, então o tamanho das fontes é reduzido. 3 4

fontstyle fontstyle { family "SERIF" horizontal TRUE justify "BEGIN" language "" lefttoright TRUE toptobottom TRUE size 1.0 spacing 1.0 style "PLAIN" Text gerado por denio Shape{ geometry Text { string "VRML is Easy!" length 30 fontstyle FontStyle { family "VERDANA" horizontal TRUE justify "BEGIN" language "" lefttoright FALSE size 4.0 spacing 1.0 style "BOLD" toptobottom TRUE fontstyle Opcional Esquerda para a direita 5 6 Para compor o campo de estilo da fonte, temos: 1. Family: define a família a fonte, pode ser de três tipos: SERIF, SANS, TYPEWRITER ; 2. Horizontal: define se o texto será na horizontal ou na vertical 3. Justify: Define o modo como o texto é justificado, podendo assumir os valores: FIRST, BEGIN (valor padrão), MIDDLE e END. 4. Language: campo para ajudar na identificação dos caracteres sendo utilizados no texto (ver ISO 639 e ISO 3166) 5. LefToRight: define se o texto é escrito da direita para a esquerda ou viceversa (TRUE); 6. TopToBottom: define se o texto é escrito de baixo para cima ou vice-versa (TRUE); 7. Size: altura dos caracteres em unidades de VRML (valor padrão igual a 1); 8. Spacing: espaçamento entre linhas horizontais ou caracteres na vertical; 9. Style: define o estilo do texto, cujos valores podem ser: PLAIN (valor padrão), BOLD, ITALIC e BOLDITALIC. Aqui vocês podem ver um exemplo de código que define um nó texto e a sua visualização no navegador. 5 6

Aparência dos Objetos Appearance material texture texturetransform 7 Material Material { ambientintensity 0.2 diffusecolor 0.8 0.8 0.8 emissivecolor 0 0 0 shininess 0.2 specularcolor 0 0 0 transparency 0 ambientintensity Indica com que intensidade o objeto deve refletir a luz do ambiente diffusecolor a cor que o objeto emite transparency Shape { geometry Cylinder { appearance Appearance { material Material { diffusecolor 1 0 1 Grau de transparência (0=opaco, 1=transparente) 8 Vamos agora seguir para o nós utilizados em Appearance, começando pelo Material que indica a cor da superfície de uma forma (shape) e depois partindo para o texture que define a variação de cores na superfície de um Shape. O nó Material define as características do material que compõe virtualmente um objeto. São elas: 1. AmbientIntensity: intensidade de reflexão de luz pelo objeto (único valor entre 0 e 1) 2. DiffuseColor: define a cor do material objeto 3. EmissiveColor: define a cor da luz que o objeto emite 4. Shininess: define o brilho do material que compõe o objeto 5. SpecularColor: Indica a cor da luz do brilho refletido pelo material do objeto 6. Transparency: define o grau de transparência do material que compõe o objeto 7 8

Aparência dos Objetos Appearance material texture texturetransform Texture texture ImageTexture { url [] repeats TRUE repeatt TRUE url = aponta para um arquivo JPEG, PNG, GIF repeats = repete na horizontal (FALSE=distorce) repeatt = repete na vertical (FALSE=distorce) 9 10 Vamos agora falar do nó texture. No campo texture, nós só vamos estudar um dos possíveis nós que podem ser passados como parâmetro que é o ImageTeture. Existem outros como o PixelTexture e MovieTexture, mas não falaremos neles aqui. Bem, os campos pertencentes ao ImageTexture são esses três aí: 1. A URL ou endereço onde a imagem a ser aplicada na superfície do objeto está; 2. RepeatS: Indica se a imagem deve ser repetida na horizontal ou se deve ser esticada para cobrir toda a superfície do objeto nesse mesmo sentido; 3. RepeatT: Indica se a imagem deve ser repetida na vertical ou se deve ser esticada para cobrir toda a superfície do objeto nesse mesmo sentido. 9 10

Texture Shape { geometry Sphere { appearance Appearance { texture ImageTexture { url jupiter.jpg Arquivo com a textura Primitivas Avançadas Group Transform Viewpoint Achor Inline WorldInfo Background 11 12 Aqui temos um exemplo de aplicação de textura a um objeto e o código que foi empregado. Vamos, agora, tratar das primitivas avançadas. 11 12

Group Transform Group { children [ nó interno ] Agrupa nós formando uma hierarquia Podemos usar DEF para nomear e usar depois DEF GRUPO1 Group { children [ Shape {geometry Sphere { Shape {geometry Box { Shape {geometry Cone { ] bboxsize -1.0-1.0-1.0 bboxcenter 0.0 0.0 0.0 addchildren removechildren 13 Transform { children [ ] rotation 0 0 1 0 scale 1 1 1 translation 0 0 0 children pode conter vários nós Transformações afetam todos os filhos rotation: indicar o eixo e o ângulo eixo X = 1 0 0, eixo Y = 0 1 0, eixo Z = 0 0 1 scale: uma escala em cada eixo (scale>0) translation: usado mover objetos nos eixos translation 20 0 0 --> X=X+20 translation 0-1 -10 --> X=X, Y=Y-1, Z=Z-10 14 O Group, como o próprio nome diz, serve para agrupar vários objetos num único nó. Isso é muito útil quando queremos reutilizar esse grupo em algum outro local do nosso mundo virtual. Os vários objetos que compõem o grupo são inseridos entre os colchetes do campo children um embaixo do outro (sem separação por vírgulas). Quando existe apenas um nó dentro do children, não é necessário se colocar os colchetes. Existem outros campos que não recomendo que vocês se preocupem com eles: 1. BboxSize: define o tamanho da caixa de contorno capaz de envolver todos os objetos do grupo(os valores padrão são -1 o que indica o cálculo automático pelo plug-in do tamanho dessa caixa); 2. BboxCenter: define o centro dessa caixa de contorno (o valor padrão é a origem); 3. AddChildren: campo de evento para adição de novos nós no grupo; 4. RemoveChildren: : campo de evento para remoção de novos nós no grupo. Aqui nós temos o nó Transform, que irá efetuas transformações no espaço tridimensional. Os campos básicos desse nó são: 1. Children: contém os objetos que sofrerão as alterações definidas por esse nó; 2. Rotation: define um mudança de rotação nos objetos (três primeiros campos para seleção do vetor que define o eixo em volta do qual o objeto será rodado - x,y ou z - e o último campo indicando a rotação em radianos) 3. Scale: define a escala do objeto relativa a seu tamanho original em cada uma dos três eixos. 4. Translation: mudança de posição do objeto em relação à sua posição original. É bom lembrar que você pode aninhar num mesmo objeto quantas transformações forem necessárias, permitindo-lhe com que seja possível qualquer tipo de posicionamento. Isso ocorre por conta dessas transformações serem feitas relativas ao nó ou conjunto de nós passados como parâmetro em Children, sejam esses nós Transforms ou não. Existem ainda outros campos nesse nó, mas, como no nó Group, esses são de menos importância e eu preferi deixá-los fora das transparências. São eles: ScaleOrientation, BboxSize, BboxCenter, Center, AddChildren e RemoveChildren. Recomendo uma busca na Internet para mais informações. 13 14

Transform Transform Criando objetos em um lugar desejado Mudando a posição inicial do centro (0, 0, 0) Rotacionando objetos Transform { translation 10 10 10 children [ Shape { geometry Sphere { ] 15 DEF CONE Shape { geometry Cone { height 3 appearance Appearance { material Material { diffusecolor 0 0 1 Transform { # 180 graus em X rotation 1 0 0 3.14159 translation 0-1 0 children USE CONE 16 Aqui temos um exemplo de transformação: uma translação em todos os eixos. Pela regra da mão direita, em que direção em relação à origem essa esfera vai andar? Ela irá andar para cima e para a direita, além de se aproximar mais do observador. Aqui nós temos um exemplo de rotação. Observe que eu defini um objeto normal sem rotação alguma e, posteriormente, repliquei-o uma vez e fiz uma rotação nessa cópia no eixo x de 180º. 15 16

Viewpoints Viewpoints cont. O nó Viewpoint descreve a posição, a orientação e o campo de visão para a observação de uma cena. Por default, o observador entra no mundo na posição (0.0, 0.0, 10.0). Com o nó Viewpoint podem ser especificados: novas posições de entrada do observador no mundo VRML vistas especiais para o observador nomes para a vistas Viewpoints podem ser transformados com o nó Transform O browser mostra um menu com a lista dos viewpoints definidos 17 Viewpoint { orientation 0 0 1 0 position 0 0 10 description descrição" orientation = orientaçao do campo de visao set_bind fieldofview jump bindtime isbound Mesma interpretaçao do transform/rotation position = a posiçao do observador description = um nome para o viewpoint No browser, a sintaxe ".../scene.wrl#viewpointname" especifica o viewpoint inicial do usuário, após carregar a cena que contém: DEF ViewpointName Viewpoint {... 18 Vamos agora, definir pontos de vista para o mundo que criamos. Para isso devemos definir, para cada ponto de -vista, uma orientação, posição e campo de visão para o observador. A posição inicial padrão do observador é 0,0, 10. Em outras palavras, viewpoints são pontos de -vista pré-definidos no mundo para auxiliar a navegação do observador no mesmo. Eles podem ser, ainda, afetados pelo nó Transform, da mesma forma que os outros nós em VRML. Além, disso, a lista de viewpoints aparece no browser (navegador), através da interface do plug-in, para que o observador possa interagir com eles. Aqui nós temos a descrição básica de um viewpoint. Os campos principais são: 1. Orientation: orientação do ponto-de-vista ( valor padrão igual a 0 0 1 0 ); 2. Position: posição do ponto-de-vista ( valor padrão igual a 0 0 10 ); 3. Description: sentença descrevendo o ponto-de-vista (Ex.: Vista aérea da entrada direita da Rua do Bom Jesus). Existem ainda outros campos nesse nó, mas, como nos nós Group e Transform, esses são de menos importância e eu preferi deixá-los fora das transparências. São eles: FielOfView, Jump, Set_bind, IsBound e BindTime. Recomendo uma busca na Internet para mais informações. Para definir o ponto-de-vista inicial do observador, deve-se utilizar a seguinte vista aí na linha de endereço do navegador. Eu, particularmente, não tentei isso ainda. Se vocês conseguirem, avisem-me por favor. 17 18

Adicionano Links Anchor { children [] description descricao do link" url url de destino Adiciona um link para um outro arquivo com em HTML URL: Um arquivo qualquer Internet www.vrml.org/mundo.wrl Disco local../obj.wrl, obj.wrl parameter bboxsize bboxcenter #Link de saida Anchor{ children [ Shape { geometry Sphere{ ] description sair 19 url../../index.htm Reusando Objetos Inline { url nome Incorpora objetos já construídos URL: Um arquivo qualquer Internet www.lalonge.com/vrml/obj.wrl Disco local../obj.wrl, obj.wrl #Eixos Inline { url "../coord.wrl" Shape { geometry Sphere { 20 Para se adicionar um link a seu mundo, utiliza-se o nó anchor. Ele funciona da mesma forma que um link em HTML. Os principais campos dele são: Children: onde se põe os objetos que representarão o link no mundo. Description: contendo um texto descritivo do link que aparecerá em alguma parte do navegador ao se passar o mouse sobre o objeto que possui o link. url: o destino do link. Existem outros parâmetros nesse nós como esses mostrados aí ao lado, mas não consideraremos eles aqui. Os interessados podem buscar mais informações na Web. O link pode ser feito a um arquivo qualquer, a um outro mundo virtual ou página Web e o endereço um endereço local ou não e relativo ou não. Aqui, temos o comando para importação de outros arquivos VRML dentro de seu mundo. O principal campo dele o URL, onde você define o endereço do arquivo a ser inserido no seu mundo. Os outros dois campos (BboxCenter e BboxSize) são de menos importância. Da mesma forma que os outros nós, o nó Inline também pode sofrer transformações e, conseqüentemente, ser passado como parâmetro para campos como Children. 19 20

Reusando Objetos cont. Reusando e Modificando Objetos by David R. Nadeau Inline { url "table.wrl" # Cadeiras Transform { translation 0.95 0.0 0.0 children DEF Chair Inline { url "chair.wrl" Transform { translation -0.95 0.0 0.0 rotation 0.0 1.0 0.0 3.14 children USE Chair Transform { translation 0.0 0.0 0.95 rotation 0.0 1.0 0.0-1.57 children USE Chair Transform { Z+ translation 0.0 0.0-0.95 rotation 0.0 1.0 0.0 1.57 children USE Chair Y+ X+ 21 PROTO nome [tipoacesso tipo parâmetro1 valor] { objetoprototipado { campoparametrizado IS parâmetro1 Incorpora objetos já construídos e faz modificações através da passagem de valores internamente à nova cópia do objeto 22 Aqui está um exemplo de utilização do comando Inline. Uma mesa e uma cadeira foram criados em arquivos diferentes e importados para compor a cena. Observe, também, o reuso do objeto cadeira. Mas, não existe nenhuma forma de eu criar um novo nó baseado em outro nó? Sim, existe. Ele não resolve todos os problemas de herança, mas já é alguma coisa. A idéia é criar um objeto em que alguns campos são configuráveis quando uma nova cópia daquele nó é criada. Dessa forma, uma cópia daquele objeto pode ser criada com valores diferentes em seus campos. 21 22

Reusando e Modificando Objetos cont. Reusando e Modificando Objetos Externos Exemplo #Criação de protótipo PROTO mybox [ field SFColor boxcolour 1 0 0 ] { Shape { appearance Appearance { material Material { diffusecolor IS boxcolour geometry Box { #Caixa em vermelho: uso do valor padrão do parâmetro Transform {translation -2 0 0 children mybox { #Caixa com nova cor passada como parâmetro Transform {translation 2 0 0 children mybox { boxcolour 0 1 0 23 EXTERNPROTO nomeno [tipoacesso tipo parâmetro1 valor] [ possivellocalizacao1noproto, possivellocalizacao2noproto ] Incorpora objetos já construídos externamente e faz modificações através da passagem de valores internamente à nova cópia do objeto Localizações alternativas da definição do objeto Não precisa definir os valores de campo padrão 24 Pode-se ver aqui um exemplo de utilização desse nó. Criou-se um objeto, nesse caso um Box, cuja cor pode ser passada como parâmetro. Logo abaixo, são criadas duas cópias do objeto. A primeira delas usa a cor prédefinida no nó PROTO, ficando com cor vermelha. A segunda especifica a sua nova cor (verde) como parâmetro. Com o nó externo proto é possível referenciar nós proto criados em outro locais, estando na mesma máquina, em outras na mesma rede ou até mesmo na Internet. Para tanto, deve-se saber o endereço onde a definição do objeto PROTO se encontra e referenciar os campos que são passados como parâmetro no mesmo. É possível dar mais de um endereço de localização para o arquivo, a fim de garantir encontrar o arquivo em ao menos local, em caso de falha na rede. Os valores padrão para cada um dos campos passados como parâmetro não precisa ser explicitados no EXTERNPROTO. 23 24

Reusando e Modificando Objetos Externos Exemplo1: Arquivo somente com nó PROTO de mybox e único endereço de localização: #Criação de protótipo EXTERNPROTO mybox [ field SFColor boxcolour] protomybox.wrl Exemplo2: Arquivo com vários nós PROTO (incluindo o de mybox) e vários possíveis endereços de localização: #Criação de protótipo EXTERNPROTO mybox [ field SFColor boxcolour] [ protomybox.wrl#mybox, www.cin.ufpe.br/protos.wrl#mybox ] 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 #Caixa em vermelho: uso do valor padrão do parâmetro Transform {translation -2 0 0 children mybox { #Caixa com nova cor passada como parâmetro Transform {translation 2 0 0 children mybox { boxcolour 0 1 0 #Caixa em vermelho: uso do valor padrão do parâmetro Transform {translation -2 0 0 children mybox { #Caixa com nova cor passada como parâmetro Transform {translation 2 0 0 children mybox { boxcolour 0 1 0 25 26 Temos aqui dois exemplos de uso do nó EXTERNPROTO. O primeiro deles apresenta um exemplo simples em que o arquivo onde o nó PROTO do objeto mybox só possui o header VRML e a definição de PROTO de mybox. Além disso, esse arquivo só possui um único endereço de localização que foi apresentada fora de colchetes (por ser só uma) ao final da definição de EXTERNPROTO. Já no segundo exemplo, além de termos mais de uma possível localização do arquivo onde o PROTO de mybox se encontra (agrupados por [] e separados por vírgula), temos que indicar com que nome o PROTO de mybox é identificado nesses arquivos, passando seu nome, precedido por um #, logo após cada endereço do arquivo. Bem, a segunda lista de exercícios se encontra no mesmo local da primeira. Quem ainda não fez primeira, é bom fazer. É claro que eu não vou deixar de aceitar a lista de alunos entregues fora do prazo. Contudo, todos os dias de entrega de listas e informações das mesmas estão sendo anotados, guardados e serão repassados para a professora Judith. Quão útil esses dados serão para ela na avaliação de vocês, ninguém sabe, né? O prazo da lista é para a próxima aula, de forma semelhante à primeira lista. Boa sorte. As transparências se encontram comentadas. Algumas contêm informações extras que podem ser de utilidade para vocês durante a resolução da lista. **Atualizar endereço onde os arquivos estão e data de entrega! 25 26