Anda di halaman 1dari 76

Elisamara de Oliveira Eugnio Akihiro Nassu

Tpicos Contemporneos em Informtica


Educao a Distncia

Apresentao
com satisfao que a Unisa Digital oferece a voc, aluno, esta apostila da disciplina Tpicos Contemporneos em Informtica, parte integrante de um conjunto de materiais de pesquisa voltados ao aprendizado dinmico e autnomo que a educao a distncia exige. O principal objetivo desta apostila propiciar aos alunos uma apresentao do contedo bsico da disciplina. A Unisa Digital oferece outras formas de solidificar seu aprendizado, por meio de recursos multidisciplinares como chats, fruns, aulas web, material de apoio e e-mail. Para enriquecer o seu aprendizado, voc ainda pode contar com a Biblioteca Virtual cujo acesso encontra-se no portal da Unisa, www.unisa.br, a Biblioteca Central da Unisa, juntamente com as bibliotecas setoriais dos plos, que fornecem acervo digital e impresso, bem como acesso a redes de informao e documentao. Nesse contexto, os recursos disponveis e necessrios para apoi-lo no seu estudo so o suplemento que a Unisa Digital oferece, tornando seu aprendizado eficiente e prazeroso, concorrendo para uma formao completa, na qual o contedo aprendido influencia sua vida profissional e pessoal. A Unisa Digital assim para voc: Universidade a qualquer hora e em qualquer lugar!

Unisa Digital

Introduo
Esta apostila se refere disciplina Tpicos Contemporneos de Informtica do curso de Bacharelado em Sistemas de Informao, na modalidade a distncia, da Unisa Universidade de Santo Amaro. Falar de tpicos contemporneos na rea de Tecnologia da Informao um desafio sempre, j que a tecnologia evolui de forma constante e em ritmo cada vez mais acelerado. Neste curso sero abordados os sistemas de realidade virtual, com aplicaes em VRML. O avano da tecnologia ao longo dos anos, incentivou o desenvolvimento de novos equipamentos e aparelhos para facilitar e melhorar a vida das pessoas. A Realidade Virtual - RV acompanhou a evoluo tecnolgica proporcionando novas formas de interao entre o homem e a mquina. A RV trouxe mais recursos para a pesquisa cientfca, contribuindo para o aumento da confiana na execuo de novos projetos e mais credibilidade na sua concluso, em funo de permitir a criao de ambientes virtuais para simulao de ambientes reais. A RV vem sendo aplicada em diversas reas, como na criao de entretenimento, na produo de ferramentas para auxlio em jogos de

procedimentos

cirrgicos, na criao de simuladores sofisticados da NASA, em projetos de construo civil, dentre outras reas, contribuindo, de forma decisiva, avano da Cincia. A VRML- Virtual Reality Modeling Language (Linguagem para Modelagem de Realidade Virtual) uma linguagem que foi criada justamente pela necessidade de se implementar ambientes virtuais 3D com interface de Realidade Virtual em ambiente web. A programao em VRML de fcil aprendizagem, pois foi baseada no HTML, podendo seus aplicativos serem editados em qualquer editor de textos. Para a visualizao 3D dos cenrios virtuais na web, basta que o browser (ou navegador) seja compatvel com o VRML ou seja instalado um plugin VRML. Neste curso, sero apresentados os conceitos fundamentais e o histrico da evoluo da Realidade Virtual, os equipamentos e ferramentas mais utilizados, as reas de aplicao e a linguagem VRML, com diversos exemplos de aplicao prtica. Elisamara de Oliveira Eugnio A. Nassu para o

Sumrio
Apresentao ........................................................................................................ 2 Introduo ............................................................................................................. 3 1 Realidade Virtual ........................................................................................... 6 1.1 1.2 Introduo Realidade Virtual e VRML ................................................. 6 Multimdia e Realidade Aumentada ....................................................... 7 Multimdia .......................................................................................... 8 Realidade aumentada ..................................................................... 10

1.2.1 1.2.2 1.3

Tecnologia para Realidade Virtual ....................................................... 14 Capacete .......................................................................................... 15 Luvas................................................................................................ 15 Controladores ................................................................................. 16 Simuladores .................................................................................... 17 Roupas ............................................................................................. 17 Outros dispositivos ........................................................................ 18

1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 2

VRML ............................................................................................................ 19 2.1 2.2 2.3 2.4 2.5 Introduo ao VRML .............................................................................. 19 Histrico da VRML................................................................................. 20 Aplicaes de VRML ............................................................................. 21 Como comear a navegar em mundos VRML na internet.................. 22 A Linguagem VRML ............................................................................... 23 Primeiro programa em VRML......................................................... 23 Cores em VRML .............................................................................. 25 Unidades de medida e sistema de coordenadas ......................... 26 Representao de objetos 3D ........................................................ 28

2.5.1 2.5.2 2.5.3 2.5.4 2.6

Shape- Formas Geomtricas 3D Primitivas ........................................ 28 Box ................................................................................................... 30 Cone ................................................................................................. 30 Cylinder............................................................................................ 31 Sphere .............................................................................................. 32 Unindo formas primitivas ............................................................... 33

2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7

Transform- Transformaes Geomtricas .......................................... 36

5 2.7.1 2.7.2 2.7.3 2.7.4 2.8 USE DEF e Inline ............................................................................. 38 Scale................................................................................................. 39 Rotation ........................................................................................... 40 Translation ....................................................................................... 41

Shape - Formas Geomtricas Avanadas ........................................... 43 PointSet ........................................................................................... 43 IndexedLineSet ............................................................................... 45 IndexedFaceSet ............................................................................... 48 ElevationGrid................................................................................... 51 Extrusion ......................................................................................... 54 Text .................................................................................................. 58

2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.9

Shape Aparncia ................................................................................ 61 Material ............................................................................................ 61 ImageTexture ................................................................................... 65 MovieTexture ................................................................................... 68

2.9.1 2.9.2 2.9.3 3 4

Consideraes Finais ................................................................................. 71 Bibliografia Consultada .............................................................................. 72

1 Realidade Virtual
1.1 Introduo Realidade Virtual e VRML
A Realidade Virtual - RV surgiu para prover ao usurio uma nova forma de utilizao do computador. Esse novo meio de interao d ao usurio no s a ideia de estar em frente ao monitor, mas de ter a sensao de estar imerso na interface. O objetivo da realidade virtual captar todos os movimentos do corpo do usurio e a partir da o fazer interagir com o computador. A RV possui aplicaes em muitas reas de conhecimento, como medicina, educao, entretenimento, construo civil, arquitetura, arqueologia, geologia, astronomia, dentre muitas outras reas. A RV um avanado modo de interao usurio-mquina, contando com investimentos de muitas indstrias de produo de hardware, software e dispositivos especiais de entrada e sada. Nos ltimos anos o desenvolvimento da Realidade Virtual vem crescendo de forma acelerada. A Realidade Virtual teve incio em meados do sculo XX, porem s ficou sendo conhecida popularmente por volta de 1990, atravs de Morton Heilig que inventou uma mquina chamada Sensorama. Sensorama se tratava de um aparelho que simulava um passeio de bicicleta, interagia com o usurio atravs de uma interface 3D, produzia efeitos olfativos (cheiros), alm de possuir som estreo, vibraes no assento e brisa no rosto para favorecer a criao da sensao de interatividade. Alguns anos depois outros cientistas, Comeau e Bryan, desenvolveram um dispositivo mais avanado com a finalidade de ser usado por pilotos de avies para enfrentar situaes perigosas. No final da dcada de 1980, Tim Berners-Lee desenvolveu a World Wide Web (WWW), estabelecendo as bases da internet como conhecida na atualidade, em relao interface e conectividade. Em 1992, a empresa Silicon Graphics apresentou a biblioteca grfica Inventor, que permitia aos

programadores desenvolverem programas grficos 3D interativos, criando cenas e descrio de objetos tridimensionais.

7 A primeira verso da linguagem VRML -Virtual Reality Modeling Language (Linguagem para Modelagem de Realidade Virtual) surgiu no ano de 1994 em Genebra, na Sua, na primeira conferncia anual da World Wide Web (WWW). Durante a conferncia, Tim Berners-Lee e Dave Raggett discutiram sobre uma maneira de implementar a RV na web. O surgimento dessa linguagem se deu pela necessidade de se utilizar ambientes 3D interativos na internet. No segundo semestre de 1996, surgiu a linguagem VRML na verso 2.0, criando um padro para ambientes web. Pelo fato de ser de domnio pblico e ter padro industrial, a VRML se tornou uma referncia mundial de linguagem para RV. A forma como a VRML foi desenvolvida, despertou interesse dos setores comerciais e cientficos. Os arquivos no formato VRML so baseados em ASCII, ou seja, so do tipo texto, possibilitando ao programador utilizar qualquer editor de textos para escrever os programas. Os arquivos definem as formas geomtricas, cores, animaes, enfim, todos os objetos das cenas e imagens criadas pelo desenvolvedor. Para executar esse arquivo em um browser, se faz necessrio ter um plug-in compatvel com o browser. O conceito de cenrios 3D utilizando VRML baseia-se na elaborao de um grafo o qual possui diferentes Nodes que, se forem associados da forma correta, podem ser agrupados. Esses Nodes se destacam pelas propriedades de aparncia, sons e vrios tipos de agrupamentos, tornando essas as principais caractersticas dessa linguagem.

1.2 Multimdia e Realidade Aumentada


Nesta seo so apresentadas algumas definies importantes e exemplos de alguns conceitos relacionados com a realidade virtual.

1.2.1 Multimdia
"Multimdia a integrao, controlada por

computador, de textos grficos, imagens, vdeo, animaes, udio e outras mdias, que possam representar, armazenar, transmitir e processar

informaes de forma digital"

Multimdia se tornou muito popular com a melhoria dos recursos dos microcomputadores como som, vdeo colorido e leitores de CD. Outro impulso foi dado com a internet e a WWW, mais ainda quando a banda larga se tornou popular. Hoje, os principais sites possuem vdeos, sons e animaes, como mostrado na Figura 1.

Figura 1 - Site com recursos multimdia (foto capturada pelo autor)

9 Ainda quando a internet no possua o contedo e recursos que possui nos dias atuais, foram criados vrios ttulos de CDs multimdia, contendo informao, fotos, vdeos e sons. Na Figura 2 v-se um exemplo de CD multimda sobre o basquete americano. Enciclipdias eram populares nesse formato, uma vez que os sites ainda no tinham tamanho contedo.

Figura 2 - CD com recursos multimdia (arquivo pessoal)

Os consoles de videogames modernos, como o Playstation 3, XBox 360, Playstation porttil, Nintendo DS e Wii so equipamentos que possuem outras funes alm dos jogos. Msicas, vdeos, fotos, acesso internet, aluguel de filmes, msicas e rdio so algumas das funes que podem ser encontradas nesses equipamentos, que se tornaram equipamentos multimdia. A Figura 3 mostra o menu do Playstation 3 na qual pode-se observar algumas de suas funes.

10

Figura 3 - Menu do Playsation 3 (arquivo pessoal)

1.2.2 Realidade aumentada

Realidade Aumentada a insero de objetos virtuais no ambiente fsico, mostrada ao usurio, em tempo real, com o apoio de algum dispositivo tecnolgico, usando a interface do ambiente real, adaptada para visualizar e manipular os objetos reais e virtuais.

A realidade aumentada consiste da mistura de imagens reais, obtidas atravs de cmeras fotogrficas, cmeras de celular, cmeras de computador ou de consoles, com objetos virtuais, eventualmente usando algum tipo de interface, como objetos com formato definido para interagir com esses objetos virtuais. A Realidade Aumentada uma particularizao de um conceito mais geral, denominado realidade misturada, que consiste na sobreposio de ambientes reais e virtuais, em tempo real, atravs de um dispositivo tecnolgico. Uma das

11 maneiras mais simples de se conseguir isto baseia-se no uso de um microcomputador com uma webcam, executando um software que, atravs de tcnicas de viso computacional e processamento de imagens, mistura a cena do ambiente real, capturada pela webcam, com objetos virtuais gerados por computador. O software tambm cuida do posicionamento, ocluso e interao dos objetos virtuais, dando a impresso ao usurio que o cenrio nico. A Realidade Aumentada teve sua origem em um dispositivo simples, as etiquetas. Os cdigos de barras no estavam mais cumprindo com perfeio a tarefa de carregar todas as informaes que se queria obter atravs de sua leitura. Por isso, foram criados os cdigos 2D (duas dimenses), que permitiam o armazenamento de muito mais informao do que os cdigos de barras. Os cdigos bidimensionais so os responsveis pela possibilidade de se projetar objetos virtuais em uma filmagem do mundo real. A Realidade Aumentada utilizada combinando-se um cdigo de duas dimenses, denominado QR Code Quick Response Code (Cdigo de resposta rpida), como o mostrado na Figura 4, com um programa de computador.

Figura 4 - Exemplo de um QR Code

Mobilidade e automatizao de entrada de dados um importante diferencial do cdigo de barras tradicional. Desde o pagamento de contas at a

12 automao de pontos de venda, largamente utilizado e oferece relativa facilidade de manuteno. A grande desvantagem do cdigo de barras a necessidade de um leitor apropriado. Outra desvantagem a limitao na entrada de dados, devido ao padro unidimensional e sequencial do modelo. Cada caracter equivale a uma sequncia de barras de diferentes larguras e espaamentos. Quanto maior a mensagem inserida no cdigo, maior ser sua largura assim limitando muito seu uso. O QR Code (Quick Response Code) foi criado pela empresa japonesa Denso-Wave em 1994 e foi aprovado como padro ISO 18004, mas s recentemente tem tido sua utilizao difundida. Trata-se de um cdigo bi-

dimensional que pode ser lido diretamente por uma cmera digital e interpretado pelos programas desenvolvidos pelo fabricante, podendo armazenar letras, nmeros e cdigo binrio. Aproveitando o fato da adoo em massa de celulares com cmera no Japo e na grande maioria dos pases do mundo, o QR Code est tambm sendo utilizado no Brasil em aplicaes de Realidade Aumentada. A maior vantagem do QR Code que suas aplicaes, ao contrrio do cdigo de barras tradicional, so muito mais ampliadas. No jogo do Playstation 3, mostrado na Figura 5, a cmera captura as imagens do ambiente do jogador e insere no ambiente um bichinho virtual.

Figura 5 Jogo com Realidade Aumentada

13 O jogador pode tocar virtualmente o animal, brincando e interagindo. O carto com o desenho de uma pegada de uma pata trocado pelo sistema por diversos objetos, por exemplo, uma mamadeira, com a qual o ser virtual pode ser alimentado. Na propaganda do banco Ita mostrada na Figura 6, ao capturar a imagem com uma cmera do computador (webcam), entrando em um site especfico, pode-se ver uma animao especial.

Figura 6 - Comercial com realidade aumentada

Um outro exemplo de aplicao mostrado na figura 7. Ao apresentar a figura atrs da embalagem do salgadinho adicionado um personagem virtual ao ambiente, com o qual pode-se interagir e jogar com outras pessoas.

Figura 7 - Aplicao comercial de Realidade Aumentada (Getty images)

14

A figura 8 mostra outra aplicao interessante da realidade aumentada. Com uma cmera de celular, o aplicativo aponta a direo e a distncia de pontos tursticos ou de interesse, facilitando a localizao de um turista.

Figura 8 - Aplicao til da Realidade Aumentada (Getty images)

1.3 Tecnologia para Realidade Virtual


Realidade Virtual uma interface avanada para aplicaes computacionais, onde o usurio pode navegar e interagir, em tempo real, em um ambiente tridimensional gerado por computador, usando dispositivos multisensoriais.

15 A RV trabalha com dispositivos que estimulam no usurio os cinco sentidos do corpo humano. Conforme o usurio se move e interage no mundo virtual, os dispositivos retornam ao mesmo os cinco sentidos: a viso, olfato, audio, paladar e tato. Existem diversos tipos de dispositivos desenvolvidos para RV, sendo eles, capacetes, luvas, controladores, simuladores, roupas, entre outros. No que se segue, so abordadas as caractersticas desses equipamentos.

1.3.1 Capacete
Existem diversos tipos de capacetes (Figura 9) para a visualizao da RV. As principais caractersticas deles so: Estereoscpicos ou monoscpicos: Tm a capacidade de emitir uma imagem plana ou ainda um grupo de imagens em alto relevo. Binoculares ou monoculares: Conseguem estimular um ou at mesmo os dois olhos. Opacos ou translcidos: Tm a caracterstica de bloquear ou permitir a passagem de luz vinda do exterior.

Figura 9 da esquerda para direita: VFX1, Sony Glasstron, V8, Dynovisor, StuntMaster e M1 Monocular. Fonte: http://www.pgie.ufrgs.br/siterv/equipamentos.htm

1.3.2 Luvas
Uma luva digital um dispositivo que faz a interao entre o usurio e as aplicaes de RV. Com esse dispositivo possvel o usurio usufruir de vrios parmetros fsicos, tais como: a presso, a temperatura, a fora linear e a textura ou superfcie de um material. Existem diversos tipos de luvas, tais como luvas de funcionamento ptico, magntico ou de tato, porm, o modelo mais utilizado a de funcionamento ptico. Na figura 10 podem-se ver alguns modelos.

16

Figura 10 - Da esquerda para direita: Fifth Dimension, Johnson Kinetic, CyberGlove, Pinch Glove, 5th Glove e PowerGlove.
Fonte: http://www.pgie.ufrgs.br/siterv/equipamentos.htm

1.3.3 Controladores
Os controladores tm a finalidade de proporcionar ao usurio o poder de controlar personagens, objetos, cenrios e ambientes em mundos virtuais, jogos e outras aplicaes em RV. Alguns modelos dessa tecnologia so dispositivos fixos, no permitindo que haja movimentos no ar, como por exemplo, simuladores de vo. Outros modelos de controladores agregam mais realidade no domnio da ao, pois o controle tem a sensibilidade de identificar grande parte dos movimentos feitos pelo usurio, tanto areo quanto em uma base fixa. A Figura nos mostra alguns exemplos:

Figura 11 - Da esquerda para a direita: GyroPoint Desk, Avenger, Cyberman 2, Cyberstik e FreeD. Fonte: http://www.pgie.ufrgs.br/siterv/equipamentos.htm

Hoje podemos destacar os controles com sensibilidade de movimento, como o controle do Wii, o Move do Playstation3 e mais recentemente o Kinect do Xbox 360 da Microsoft. Este ltimo insere o jogador dentro do jogo, capturando os movimentos de todo o seu corpo.

17

1.3.4 Simuladores
Os simuladores tm a capacidade de simular a realidade. A finalidade dos simuladores varia de aplicaes de entretenimento at treinamento de novos pilotos, proporcionando maior intimidade do piloto com uma aeronave, por exemplo. Outro exemplo o simulador de corrida que transmite com facilidade a sensao de se estar dentro de um carro de frmula 1, se for o caso. A Figura 12 mostra um exemplo de simulador.

Figura 12 - Simulador de corrida da linha FA5.


Fonte: http://quatrorodas.abril.com.br/blogs/alem-das-quatro-rodas/tag/simuladores/

1.3.5 Roupas
Os dispositivos tecnolgicos j citados, permitem ao usurio a manipulao em um ambiente virtual, porm, a que gera maior sentimento de imerso no ambiente virtual a roupa. Esse dispositivo reveste o corpo humano de sensores que, por sua vez, captam os menores movimentos do corpo e assim, conseguem repassar para o ambiente virtual todos os movimentos feitos pelo usurio. Na Figura 13 pode-se ver um modelo de roupa para RV.

Figura 13 - Roupa para RV

18

1.3.6 Outros dispositivos


Pesquisadores britnicos apresentaram no ano de 2009 um dispositivo chamado casulo virtual. Esse dispositivo foi desenvolvido com a capacidade de representar ao usurio os cinco sentidos: viso, audio, olfato, paladar e tato. A idia que futuramente esse dispositivo seja usado para games ou em turistas virtuais, por exemplo, em viagens para pases distantes. [9] Com o equipamento, seria possvel, por exemplo, levar alunos de Histria ao Egito antigo, onde o estmulo dos sentidos indicaria quais seriam os sons, cheiros e vistas das ruas locais. Se o professor preferisse o sculo 21, poderia fazer com seus estudantes uma visita virtual a Tquio, por exemplo, onde eles viveriam as sensaes proporcionadas pelas ruas da cidade japonesa. A RV pode extrapolar os limites do que real. Um projeto feito em uma universidade de Barcelona na Espanha conseguiu fazer com que um homem, usando um dispositivo de RV, pudesse ouvir e sentir o mundo como se fosse uma pessoa do sexo feminino, incluindo suas roupas. O capacete de RV foi to eficaz que permitiu que o homem achasse que realmente era uma mulher, com sensaes fsicas (tapas, belisces) vindas do mundo virtual. [10]

19

2 VRML
2.1 Introduo ao VRML
VRML a abreviao de Virtual Reality Modeling Language, ou Linguagem para Modelagem em Realidade Virtual. uma linguagem independente de plataforma que permite a criao de cenrios tridimensionais (3D) por onde se pode passear, visualizar objetos por ngulos diferentes e at interagir com eles. uma linguagem textual para descrio de cenas e ambientes interativos em 3D; no uma linguagem de programao.

Arquivos VRML tm extenso .wrl e no so compilados; so arquivostexto escritos em ASCii que podem ser interpretados por um interpretador VRML. Um interpretador ou browser VRML permite a visualizao de um programa VRML localmente ou atravs da internet. A primeira verso da linguagem no possibilitava muita iterao do usurio com o mundo virtual, mas verses recentes acrescentam caractersticas como animao, movimentos de corpos e iterao entre usurios. A ltima verso a 2.0, chamada Moving Worlds VRML 2.0. A Especificao VRML a documentao que descreve todas as caractersticas da linguagem. A linguagem VRML pode ser usada numa pgina web preenchendo a pgina, preenchendo apenas um retngulo da pgina ou preenchendo um frame ou parte do frame. Apresentada pela primeira vez em 1994 na Primeira Conferncia da World Wide Web, a linguagem tem como objetivo dar o suporte necessrio para o desenvolvimento de mundos virtuais multi-usurios na internet, sem precisar de redes de alta velocidade. O cdigo VRML um subconjunto do formato de arquivo ASCii do Open Inventor, da Silicon Graphics, com caractersticas

20 adicionais para navegao na web. Esta caracterstica equivalente aos links do HTML, ou seja, podem-se criar links em um mundo virtual que levem a outros mundos virtuais. A linguagem trabalha com geometria 3D (possui as formas geomtricas primitivas cubo, cone, cilindro e esfera e diversas outras geometrias avanadas) e suporta transformaes (rotao, translao, escala), texturas, luz,

sombreamento e animao.

2.2 Histrico da VRML


No final da dcada de 1980, Tim Berners-Lee criou a World Wide Web, adicionando inovaes internet em termos de conectividade e de interface. Em maio de 1994, em Genebra, na 1 Conferncia da WWW, o grupo de discusso de Realidade Virtual decidiu desenvolver uma linguagem de descrio de cena que pudesse ser usada na web. Em maio de 1995, completou-se a especificao da VRML 1.0 e em janeiro de 1996 foi lanada a verso 1.0c. Em 1995, foi formado o VRML Architecture Group (VAG). Foi lanado um call for proposals (chamada para apresentao de propostas) para uma redefinio e extenso da linguagem para suportar animao e interao. A Silicon Graphics (SGI), Netscape e outras companhias criaram a Moving Worlds. Em maro de 1996, o VAG decidiu por larga maioria adotar esta proposta como ponto de partida para o VRML 2.0. Em 1997 reescreveu-se a especificao para submisso International Standards Organization (ISO), criando-se o VRML 97. O primeiro browser aderente a esta especificao foi o Cortona da SGI. Os browsers para VRML 1.0 no permitem a exibio de VRML 2.0. A maioria dos browsers para VRML 2.0 tambm exibem VRML 1.0, e na maioria dos casos so capazes tambm de exibir VRML 97. Para navegar em mundos virtuais criados com a linguagem ser necessrio usar plug-ins que permitiro aos browsers suportarem VRML. Assim, ao invs de visitar homepages, o usurio visitar homeworlds. Na verdade, existem muitos browsers disponveis que suportam diretamente a linguagem; os browsers tradicionais necessitam de software adicional (plug-in).

21

2.3 Aplicaes de VRML


O VRML tem obtido crescente aceitao como tecnologia padro da web para exibio de contedo grfico 3D. O VRML tem se tornado um meio rico de expresso de idias na web, pois o mundo VRML interativo e pode conter animao, som e filmes. A linguagem resultado de um processo de discusso e cooperao aberto, sintetizando o conhecimento e experincia de milhares de pessoas de modo simples e acessvel. O VRML faz parte do caminho que leva web 3D, imersiva e interativa. Um dos problemas para aplicaes na internet a largura de banda. Quando mais usurios tiverem acesso s tecnologias de banda larga, mais e mais aplicaes VRML sero utilizadas. A Figura 14 traz um exemplo de um mundo virtual VRML.

Figura 14 - Exemplo de aplicao VRML

22

2.4 Como comear a navegar em mundos VRML na internet


Antes de comear a navegar em homeworlds e mesmo programar em VRML necessrio fazer o download de um browser ou um plug-in VRML para que os sites e os programas possam ser visualizados. Como a maioria das pessoas possui os browsers Internet Explorer e Mozilla, o melhor utilizar um plug-in. O plug-in mais utilizado o Cortona que se encontra no endereo: http://www.cortona3d.com/Products/Cortona-3D-Viewer/install.aspx Estando no site, faa o download do plug-in de acordo com o sistema operacional da sua mquina. Execute um programa e o Cortona se auto-instalar na sua mquina. Da para a frente o Cortona ser acionado automaticamente toda vez que uma pgina VRML ou arquivo .wrl for ativado. Agora sua mquina est pronta para desvendar os homeworlds. Conectese internet e faa uma busca por arquivos .wrl. como o Google, por exemplo. Esta busca foi feita e alguns resultados interessantes so listados a seguir. Caso algum desses links no mais exista, tente outros. Tudo muda muito rapidamente na www. Lista de sites em VRML http://www.geom.umn.edu/~daeron/bin/legitlist.cgi Mundos VRML http://www.amazing3d.com/free/free.html http://www.frontiernet.net/~imaging/vrml_avatar.html Tutoriais/Cursos VRML http://sim.di.uminho.pt/vrmltut/toc.html (em portugus) http://www.lighthouse3d.com/vrml/tutorial/index.shtml?intro (em ingls) Exemplos do livro VRML 2.0 Sourcebook http://www.wiley.com/compbooks Especificaes VRML http://www.web3d.org/vrml/vrml.htm http://vag.vrml.org http://vrml.sgi.com/moving-worlds/spec

23

2.5 A Linguagem VRML


Ficou definido, para fins de identificao, que todo arquivo VRML, na verso 2, tem que ter o cabealho: #VRML V2.0 utf8 O caracter '#' tambm significa comentrio. Toda linha que comea com # ser ignorada pelo browser. bom usar comentrios no meio do cdigo, isso facilita a compreenso e identificao de partes do cenrio, como por exemplo: #Uma esfera

2.5.1 Primeiro programa em VRML


Um arquivo VRML uma descrio textual do mundo VRML. Arquivos VRML tm extenso .wrl. Um arquivo VRML composto de: header comentrios ns (nodes), contendo campos (fields) e valores (values) rotas e prottipos #VRML V2.0 utf8 #esfera.wrl #Uma esfera

Shape { appearance Appearance { material Material { diffuseColor 1 1 0 } } geometry Sphere { radius 1.5 } }

24 Tudo o que se precisa para escrever um cdigo VRML um editor de textos (por exemplo, o Bloco de Notas). Uma vez editado, o arquivo deve ser gravado em formato ASCII e ter a extenso .wrl. Edite o programa descrito anteriormente. Salve o arquivo como esfera.wrl. Entre no seu browser e abra o arquivo editado (esfera.wrl). No preciso estar conectado internet, pois o seu arquivo ser exibido localmente. Nem preciso fechar o arquivo no seu editor de textos. O Cortona entrar em ao e mostrar uma esfera amarela. Aproveite para se acostumar com os controles da barra inferior do Cortona, que permite a livre manipulao dos objetos no espao tridimensional. Caso no aparea a esfera, haver luzes vermelhas piscando na barra inferior. Isso significa que h erro no arquivo. Clicando nas luzes, aparecero as mensagens de erro. Volte ao editor, conserte os erros, salve o arquivo e volte ao browser novamente. Cuidado, pois o VRML faz diferena entre letras maisculas e minsculas! Tudo muito simples e fcil, como mostra a figura 15.

Figura 15 - Visualizao do programa Esfera.wrl no Cortona

25

2.5.2 Cores em VRML


As cores em VRML so definidas pelo sistema RGB - Red (vermelho) Green (verde) Blue (azul). Utiliza-se um valor numrico associado a cada uma dessas cores para se obter uma gama maior delas, a partir de sua mistura. Veja a Tabela 1. A tabela 1 traz 8 possibilidades de cores considerando a utilizao de zeros e uns para se definir a presena (1) ou ausncia (0) da cor na mistura.

Tabela 1 Cores bsicas em VRML no sistema RGB R (Vermelho) 0 0 0 0 1 1 1 1 G (Verde) 0 0 1 1 0 0 1 1 B (azul) 0 1 0 1 0 1 0 1 Cor Resultante preto azul verde ciano vermelho roxo amarelo branco

No programa apresentado na seo 2.5.1, a cor da esfera foi assim definida: appearance Appearance { material Material { diffuseColor 1 1 0 } }

ou seja, a mistura RGB resultou no amarelo. Mas, no existem apenas as 8 cores mostradas na tabela 1. Os valores associados aos componentes RGB podem ser quaisquer valores entre 0 e 1! Isso d uma mistura praticamente infinita de cores.

26 Quando nenhuma cor definida, ou seja, quando o campo diffuseColor omitido, a cor assumida o branco. Assim, poder-se-ia definir uma cor como: appearance Appearance { material Material { diffuseColor 0.57 0.25 0.89 } }

Que cor foi criada? Modifique o programa esfera.wrl e veja o resultado. Faa outros testes tambm. No h limite para a criao de cores.

2.5.3 Unidades de medida e sistema de coordenadas


O VRML usa o sistema cartesiano 3D. A sequncia dos eixos X,Y,Z; a unidade de medida para distncias metros e para ngulos radianos. O sistema cartesiano 3D define o espao com um sistema de 3 eixos:

Eixo X (anlogo largura) Eixo Y (anlogo altura) Eixo Z (anlogo profundidade)

Assumindo que o cruzamento dos 3 eixos o ponto central (0,0,0), a descrio dos objetos no espao 3D pode ser expressa atravs de coordenadas relativas ao ponto central. Cada eixo tem uma direo positiva e negativa, estendendo-se do ponto central da cena. Tomando esta pgina como referncia, o eixo-X positivo est para a direita, o eixo-Y positivo est para cima e o eixo-Z positivo est perpendicular aos dois anteriores, saindo da pgina na direo do leitor, conforme mostra a figura 16.

27

Figura 16 - sistema de coordenadas 3D

Os objetos dentro da cena (e a prpria cena) podem ser rotacionados mudando a sua orientao de 3 formas (conforme mostra a figura 17):

Yaw, rotao em torno do eixo Y Pitch, rotao em torno do eixo X Roll, rotao em torno do eixo Z

Figura 17 - Trs formas de rotao dos objetos e das cenas

Os 3 eixos e as 3 rotaes so chamados de 6 graus de liberdade, que determinam a localizao e orientao dos objetos no espao 3D.

28

2.5.4 Representao de objetos 3D


Os objetos 3D podem ser representados de formas distintas, conforme mostra a figura 18:

Figura 18 - Representao de objetos 3 D

2.6 Shape- Formas Geomtricas 3D Primitivas


Basicamente, pode-se dizer que um node um conjunto de especificaes que determinam as caractersticas dos objetos contidos no cenrio. Os nodes definem a hierarquia e as caractersticas individuais de cada objeto dentro do contexto geral. O node descreve o tipo do objeto, que pode ser uma esfera, um cilindro, uma transformao, uma definio de luz ou textura, etc. Tambm define as caractersticas de cada um, como altura de um cone, dimetro de uma esfera, intensidade da luz ambiente, cor, etc. Para se definir qualquer forma geomtrica 3D em VRML, seja ela bsica ou avanada, utiliza-se o node Shape. Os objetos tridimensionais em VRML so chamados de Shapes. Um Shape possui, em geral dois atributos, a aparncia e a geometria. A aparncia define a cor do objeto, sua textura, dentre outros atributos. A geometria define qual objeto ou forma 3D deve ser exibida. O formato de um arquivo VRML que utiliza apenas um node para definir uma forma geomtrica :

29 #VRML V2.0 utf8 #Nome do arquivo #Comentrios Shape { appearance Appearance # define a aparncia { ... } geometry { .... } } # define a geometria ou forma 3D

Neste curso ser adotado como padro colocar o nome do arquivo na segunda linha dos programas apresentados, na forma de comentrio. Assim o aluno poder localizar o programa (que se encontra no disquete que acompanha o curso) e visualiz-lo no Cortona. As formas geomtricas que podem ser definidas no campo geometry so: Box Cone Cylinder Sphere ElevationGrid Extrusion IndexedFaceSet IndexedLineSet PointSet Text As quatro primeiras so formas geomtricas primitivas: box (cubo), cone (cone), cylinder (cilindro) e sphere (esfera) e sero definidas no que se segue. As outras so consideradas formas de geometria avanada e sero tratadas posteriormente.

30

2.6.1 Box
Para definir um cubo (ou um paraleleppedo) usa-se a geometria Box do node Shape. O centro padro de um Box (0,0,0). A geometria tem apenas um campo size composto de 3 valores em ponto flutuante que correspondem s dimenses do cubo nas direes X (largura), Y (altura) e Z (profundidade). Sintaxe: geometry Box { size } Exemplo: #VRML V2.0 utf8 #Programa Box.wrl #Um paraleleppedo azul

Shape { appearance Appearance { material Material { diffuseColor 0.0 0.0 1.0 } } geometry Box { size 2.5 2.5 5.0 } }

2.6.2 Cone
Para definir um cone (chapu de palhao) usa-se a geometria Cone do node Shape. A geometria tem os campos bottomRadius e height que definem o raio da base e a altura, e dois campos opcionais side e bottom que, se omitidos, so assinalados para TRUE.

31 Sintaxe: geometry Cone { bottomRadius height #raio da base #altura #tem a lateral ?

side TRUE/FALSE

bottom TRUE/FALSE #tem a base ou vazado? } Exemplo: #VRML V2.0 utf8 #Programa Cone.wrl #Um cone vermelho com lateral e base Shape { appearance Appearance { material Material { diffuseColor 1 0 0 } } geometry Cone { bottomRadius 3 height 5 side TRUE bottom TRUE } }

Seria um exerccio interessante modificar os atributos side e bottom de TRUE para FALSE para se entender melhor a sua funo. O campo bottom FALSE permite que se construa um chapu de palhao vazado no centro.

2.6.3 Cylinder
Para definir um cilindro (canudo de refrigerante) usa-se a geometria Cylinder do node Shape. A geometria tem os campos radius e height que

32 definem o raio das duas bases e a altura, e trs campos opcionais side, top e bottom que, se omitidos, so assinalados para TRUE. Sintaxe: geometry Cylinder { radius height #raio #altura #tem a lateral? #tem a parte de cima?

side TRUE/FALSE top TRUE/FALSE

bottom TRUE/FALSE #tem a parte de baixo? } Exemplo: #VRML V2.0 utf8 #Programa Cylinder.wrl #Um canudinho verde com lateral, vazado no centro

Shape { appearance Appearance { material Material { diffuseColor 0 1 0 } } geometry Cylinder { radius 0.5 height 4 side TRUE top FALSE bottom FALSE } }

2.6.4 Sphere
Para definir uma esfera (bola) usa-se a geometria Sphere do node Shape. O centro padro de uma Sphere (0,0,0). A geometria tem apenas um campo radius que define o seu raio.

33 Sintaxe: geometry Sphere { radius } Exemplo: #VRML V2.0 utf8 #Programa Sphere.wrl #Uma esfera amarela

Shape { appearance Appearance { material Material { diffuseColor 1 1 0 } } geometry Sphere { radius 1.89 } }

2.6.5 Unindo formas primitivas


As formas primitivas podem ser unidas num nico programa VRML para se construir objetos formados a partir delas. No programa Shapes.wrl, que se segue, o objeto apresentado na figura 19 construdo utilizando-se apenas as formas primitivas Box, Cylinder e Sphere. Note que o centro de todas as formas primitivas o ponto (0,0,0).

34
#VRML V2.0 utf8 #Shapes.wrl #Demonstra o uso de multiplos shapes no mesmo arquivo #Space Station by David R. Nadeau #Alterado por Elisamara de Oliveira em 03/2011

Shape { appearance Appearance { material Material { } }

geometry Box { size 1.0 1.0 1.0 } }

Shape { appearance Appearance { material Material { diffuseColor 1 1 0 } }

geometry Sphere { radius 0.7 } }

Shape { appearance Appearance { material Material { diffuseColor 0 1 1} }

geometry Cylinder { radius 1.25 height 0.1 } }

Shape { appearance Appearance { material Material { } }

geometry Cylinder { radius 0.4 height 2.0 } }

35
Shape { appearance Appearance { material Material { } } geometry Cylinder { radius 0.3 height 3.0 } } Shape { appearance Appearance { material Material { diffuseColor 0 1 1 } } geometry Cylinder { radius 0.1 height 6.0 } }

Figura 19 - Objeto construdo a partir de formas primitivas pelo programa Shapes.wrl

36

2.7 Transform- Transformaes Geomtricas


No programa Shapes.wrl apresentado na seo 2.6.5, todas as formas primitivas foram desenhadas a partir do centro (0,0,0). Mas possvel deslocar (transladar) essas formas no espao tridimensional e mesmo rotacion-las ou aumentar ou diminuir seus tamanhos originais a partir de operaes de translao, rotao e escala. Essas operaes so realizadas a partir do node Transform. O Transform um group node. Um group node permite que se defina um conjunto de nodes como um nico objeto. Mas o principal propsito do node Transform definir um sistema de coordenadas local para os nodes pertencentes ao grupo. Todos os nodes dentro de um grupo Transform so afetados pelas transformaes geomtricas. Os principais campos (os outros campos:

scaleOrientation, center, bboxCenter e bboxSize no sero aqui abordados) que esto presentes no node Transform so: scale: especifica uma transformao de escalamento 3D. So passados 3 valores em ponto flutuante: o primeiro se refere ao escalamento do objeto na direo X, o segundo na direo Y e o terceiro na direo Z. rotation: define uma rotao em torno de um eixo. A rotao definida por um vetor (x,y,z) e um ngulo em radianos. translation: define a origem do sistema de coordenadas local. children: contm todos os nodes includos no group.

Sintaxe: Transform { scale rotation translation children[ ] }

37 Exemplo: #VRML V2.0 utf8 #TransRotScale.wrl #Exemplo de Translao, rotao e escala juntos

Shape { appearance Appearance { material Material { diffuseColor 0 0 1 } } geometry Cylinder { height radius } } 0.5 4

Transform { translation 2 2 2 rotation 3 2.0 2.0 3.14 scale 1 1.2 1 children [ Shape { appearance Appearance { material Material { diffuseColor 0 1 1 } }

geometry Cylinder { height radius } }

4 0.5

] }

38 O programa TransRotScale.wrl mostra um cilindro azul centrado no ponto (0,0,0) e o mesmo cilindro com a cor alterada para ciano (repetido no campo children do node Transform), aps sofrer as operaes de translao, rotao e escala, conforme ilustra a figura 20.

Figura 20 - Resultado do programa TransRotScale.wrl

2.7.1 USE DEF e Inline


O programa TransRotScale.wrl descreve o node Cylinder duas vezes: a primeira para mostrar o cilindro original e a segunda, dentro do node Transform, no campo children, para mostr-lo aps as transformaes geomtricas nele aplicadas. No entanto, esta repetio pode ser evitada atravs dos comandos USE DEF e Inline conforme mostram os exemplos a seguir. #VRML V2.0 utf8 #Inline.wrl
#Exemplo do uso de Inline para evitar repeties do N Cylinder

Inline {url "cylinder.wrl"}

Transform { translation 0.8 1.8 1.8 rotation 1.8 3.8 1.8 2.8 scale 0.8 1.8 2.8 children [ Inline { url "cylinder.wrl"} ] }

39 Exemplo de USE e DEF: #VRML V2.0 #VRML V2.0 utf8 #UseDef.wrl


#Exemplo do uso de USE e DEF para evitar repeties do N Cylinder

DEF Cilindro Shape { appearance Appearance { material Material { diffuseColor 1 0 1 } } geometry Cylinder { height radius } } 4 0.5

Transform { translation 0.8 1.8 1.8 rotation 1.8 3.8 1.8 2.8 scale 0.8 1.8 2.8 children USE Cilindro

2.7.2 Scale
A operao de escala permite modificar o tamanho de uma forma geomtrica. A forma pode ser aumentada ou reduzida em qualquer uma das trs dimenses X (largura), Y (altura) e Z (profundidade). O fator de escala deve ser positivo. A figura 21 mostra um box sem escalamento, depois escalado em x por 0.2, em seguida escalado em y tambm por 0.2 e por ltimo escalado ao mesmo tempo em x e em y por 0.2.

40

Figura 21 - Box escalado em diferentes dimenses Exemplo:


#VRML V2.0 utf8 #Scale.wrl

Inline {url "cylinder.wrl"}

Transform { scale 2 1 1 translation 2 1 2 children [ Shape { appearance Appearance { material Material { diffuseColor 0 1 1 } } geometry Cylinder { height radius } } 4 0.5

] }

2.7.3 Rotation
A rotao definida por um vetor (x,y,z) e um ngulo em radianos. O vetor define o eixo de rotao enquanto o ngulo define o quanto que o objeto ser rotacionado no sentido horrio.

41 Na figura 22, o primeiro box no est rotacionado; o segundo box est rotacionado por um ngulo de 45 graus em torno de Y; o terceiro est rotacionado em 45o em torno de X; o ltimo est rotacionado em 45o usando o vetor (1 1 0).

Figura 22 - Box rotacionado em diferentes eixos Exemplo:


#VRML V2.0 utf8 #Rotation.wrl

Inline {url "cylinder.wrl"}

Transform { rotation 2 2 1 3 children [ Shape { appearance Appearance { material Material { diffuseColor 0 1 1 } } geometry Cylinder { height radius } } ] } 4 0.5

2.7.4 Translation
A translao perimite que se desloque o objeto para o lugar que se queira no espao tridimensional. A figura 23 ilustra este conceito. As linhas tracejadas representam o sistema de coordenadas usado fora do node Transform. As linhas slidas reprsentam o sistema de coordenadas local dentro do node Transform definido pela seta que aponta para a nova posio (x,y,z). Na figura, a translao para (1,1,0).

42

Figura 23 - Novo eixo a partir de uma translao Exemplo:


#VRML V2.0 utf8 #Translation.wrl

#ESTE O CILINDRO ORIGINAL Inline {url "cylinder.wrl"}

#ESTE O CILINDRO TRANSLADADO Transform { translation 2 1 2 children [ Shape { appearance Appearance { material Material { diffuseColor 0 1 1 } } geometry Cylinder { height radius } } 4 0.5

] }

43

2.8 Shape - Formas Geomtricas Avanadas


As formas geomtricas avanadas que podem ser definidas no campo geometry do node Shape so PointSet, IndexedLineSet, IndexedFaceSet, ElevationGrid, Extrusion e Text. Essas geometrias so apresentadas no que se segue.

2.8.1 PointSet
A geometria PointSet especifica um conjunto de pontos 3D no sistema de coordenadas local e as cores associadas a cada ponto. PointSet contm dois campos: coord, que define as coordenadas de cada um dos pontos e color, que define a cor de cada um dos pontos. Deve haver tantas cores quanto forem os pontos.

Sintaxe: geometry PointSet { coord Coordinate { point [ , ...

] } color Color { color [ ... ,

] } }

44 Exemplo:
#VRML V2.0 utf8 #PointSet.wrl-Mostra uma chuva de pontos atravs da geometria PointSet Shape { appearance Appearance geometry PointSet { coord Coordinate { point [ # Cooordenadas dos Pontos cor ciano 1.0 1.0 1.0, 0.5 1.0 1.0, 1.5 1.5 1.5, 1.0 0.5 1.0, 2.0 2.0 2.0, 1.0 1.0 0.5, 2.5 2.5 2.5, 1.5 2.0 2.0, 3.0 3.0 3.0, 2.0 1.5 2.0, # Coordenadas dos Pontos cor Amarela -1.0 -1.0 -1.0, -0.5 -1.0 -1.0, -1.5 -1.5 -1.5, -1.0 -0.5 -1.0, -2.0 -2.0 -2.0, -1.0 -1.0 -0.5, -2.5 -2.5 -2.5, -1.5 -2.0 -2.0, -3.0 -3.0 -3.0, -2.0 -1.5 -2.0 ] } color Color { color [ # cor ciano 0.0 1.0 1.0, 0.0 1.0 1.0, 0.0 1.0 1.0, 0.0 1.0 1.0, 0.0 1.0 1.0, 0.0 1.0 1.0, 0.0 1.0 1.0, 0.0 1.0 1.0, 0.0 1.0 1.0, 0.0 1.0 1.0, # cor amarela 1.0 1.0 0.0, 1.0 1.0 0.0, 1.0 1.0 0.0, 1.0 1.0 0.0, 1.0 1.0 0.0, 1.0 1.0 0.0, 1.0 1.0 0.0, 1.0 1.0 0.0, 1.0 1.0 0.0, 1.0 1.0 0.0, ] } } } { }

45

2.8.2 IndexedLineSet
A geometria IndexedLineSet especifica um conjunto de poli-linhas no sistema de coordenadas local e as cores associadas. Atravs da ligao das linhas, pode-se criar o contorno de qualquer polgono ou contornos de diferentes objetos, como uma estrela, uma casa, um cubo, uma pirmide, etc. A geometria contm cinco campos: coord: especifica as coordenadas dos pontos que sero conectados para formar as linhas; o primeiro ponto o ponto 0, o segundo ponto 1 e assim por diante. coordIndex: indica como os pontos sero ligados, formando as poli-linhas; quando uma poli-linha termina, ela partida pelo nmero 1; para formar um polgono fechado necessrio repetir o primeiro ponto. color: indica as cores que sero usadas para colorir as poli-linhas; a primeira cor 0, a segunda 1 e assim por diante. colorIndex: indica uma cor para cada uma das poli-linhas definidas no campo coordIndex ou cada um dos pontos definidos em coord. colorPervertex: se FALSE indica que as cores sero aplicadas s polilinhas; neste caso, dever haver uma cor associada cada poli-linha definida em coordIndex (as cores podem se repetir); se TRUE indica que as cores sero aplicadas aos pontos (vrtices): o resultado final que cada linha comear com uma cor e terminar com outra, produzindo um efeito gradiente; neste caso dever haver tantas cores (definidas no campo color) quanto o nmero de vrtices (pontos) definidos em coord.

Se

considerarmos

as

coordenadas

dos

vrtices como sendo

ponto 0 (0 0 0), ponto 1 (1 1 0), ponto 2 (-1 0 0) e ponto 3 (-1 -1 0), a figura 24 mostra o resultado de 3 ligaes diferentes destes pontos que seriam definidos no campo coordIndex.

46

Figura 24 - Diferentes ligaes de 4 pontos

Sintaxe: geometry IndexedLineSet { coord Coordinate { point [ ... , #ponto 0

] }

coordIndex [ , .. , , -1,..., , .., ]

color Color { color [ ... , #cor 0

] }

colorIndex [ , , ..., ]

colorPerVertex TRUE/FALSE }

47 Exemplo:
#VRML V2.0 utf8 #IndexedLineSet.wrl #Desenho das arestas de um cubo com 3 cores diferentes

Shape { appearance Appearance { } geometry IndexedLineSet { coord Coordinate { point [ # Cubo 1.0 1.0 1.0, # ponto 0 1.0 -1.0 1.0, # ponto 1 -1.0 -1.0 1.0, # ponto 2 -1.0 1.0 1.0, # ponto 3 1.0 1.0 -1.0, # ponto 4 1.0 -1.0 -1.0, # ponto 5 -1.0 -1.0 -1.0, # ponto 6 -1.0 1.0 -1.0 # ponto 7 ] } color Color { color [1.0 0.0 0.0, 0.0 1.0 0.0, 0.0 0.0 1.0 # apenas 3 cores 0=Vermelho, 1=Verde e 2=Azul ] } coordIndex [ # Linha vermelha (paralela ao eixo x) 0, 3, -1, 1, 2, -1, 4, 7, -1, 5, 6, -1, # Linha verde (paralela ao eixo y) 0, 1, -1, 2, 3, -1, 4, 5, -1, 6, 7, -1, # Linha azul (paralela ao eixo z) 0, 4, -1, 1, 5, -1, 2, 6, -1, 3, 7, -1 ] colorIndex [ 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2 ] colorPerVertex FALSE } }

48

2.8.3 IndexedFaceSet
A geometria IndexedFaceSet especifica um conjunto de faces no sistema de coordenadas local e as cores ou texturas associadas. Atravs da ligao das faces, pode-se criar qualquer polgono ou diferentes objetos com as faces preenchidas com cores slidas, como uma estrela, uma casa, um cubo, uma pirmide, etc. A geometria contm onze campos, que incluem texCoord e

texCoordIndex que permitem a aplicao de texturas s faces, mas que no sero apresentados aqui. Os nove campos a serem abordados so: coord: especifica as coordenadas dos pontos que sero conectados para formar as faces; o primeiro ponto o ponto 0, o segundo ponto 1 e assim por diante. coordIndex: indica como os pontos sero ligados, formando as faces; quando uma face termina, ela finalizada pelo nmero 1. No necessrio repetir o primeiro ponto, a face sempre fechada. color: indica as cores que sero usadas para colorir as faces; a primeira cor 0, a segunda 1 e assim por diante. colorIndex: indica uma cor para cada uma das faces definidas no campo coordIndex ou cada um dos pontos definidos em coord. colorPervertex: similar ao definido na geometria indexedLineSet. ccw: TRUE define se os pontos que delimitam as faces sero apresentados em sentido anti-horrio; no sentido horrio ou desconhecido, caso seja FALSE. solid: FALSE determina se o browser deve desenhar ambos os lados das faces; TRUE, desenha s a frente. convex: deve ser TRUE, pois indica que as faces so convexas; FALSE indicaria que elas seriam cncavas, mas o VRML s trabalha com faces convexas. creaseAngle: especifica o limiar de ngulo (em radianos); se duas faces adjacentes fazem um ngulo maior que o creaseAngle, possvel ver claramente que duas faces de encontram, pois o encontro delas fica abrupto, o ideal que esse encontro seja suave.

49 Sintaxe: geometry IndexedLineSet { coord Coordinate { point [ ... , #ponto 0

] }

coordIndex [ , .. , , -1,..., , .., ]

color Color { color [ ... , #cor 0

] }

colorIndex [ , , ..., ]

colorPerVertex TRUE/FALSE

solid TRUE/FALSE

ccw TRUE/FALSE

convex TRUE/FALSE

creaseAngle }

50 Exemplo:
#VRML V2.0 utf8 #IndexedFaceSet.wrl #Construcao de uma piramide com faces de diferentes cores. Shape { appearance Appearance { material Material { } } geometry IndexedFaceSet { coord Coordinate { point [ # Coordenadas dos pontos que formarao as faces da piramide -1 -1 0, 1 -1 0, 1 1 0, -1 1 0, 0 0 1 ] } coordIndex [ 0 1 4 -1, 1 2 4 -1, 2 3 4 -1, 304 ] color Color { color [ 1.0 0.0 0.0, 0.0 1.0 0.0, 0.0 0.0 1.0 # apenas 3 cores 0=Vermelho, 1=Verde e 2=Azul ] } colorPerVertex FALSE colorIndex [1202] solid FALSE ccw TRUE convex TRUE creaseAngle 0 } }

51

2.8.4 ElevationGrid
A geometria ElevationGrid especifica uma matriz de pontos, cada qual com uma altura definida; uma geometria til para se construir um terreno acidentado ou malhas. A geometria construda no plano XZ, como uma matriz, comeando da origem e expandindo-se na direo positiva dos eixos. Os seguintes campos fazem parte de sua definio: xDimension: define o nmero de pontos no eixo X zDimension: define o nmero de pontos no eixo Z xSpacing: define a distncia entre dois pontos adjacentes no eixo X zSpacing: define a distncia entre dois pontos adjacentes no eixo Z height: define uma lista de valores em ponto flutuante que especificam a altura de cada ponto da matriz; os pontos so ordenados da esquerda para a direita e de cima para baixo. Dever haver xDimension multiplicado por zDimension pontos. color: define a cor de cada um dos pontos da matriz; mas opcional. colorPerVertex: similar ao definido na geometria IndexedLineSet. ccw: TRUE define se os espaos da matriz de pontos sero apresentados em sentido anti-horrio; horrio ou desconhecido, caso seja FALSE. solid: FALSE determina se o browser deve desenhar ambos os lados da matriz de pontos; TRUE, desenha s a parte de cima. convex: deve ser TRUE, pois indica que as faces so convexas; FALSE indicaria que elas seriam cncavas, mas o VRML s trabalha com faces convexas. creaseAngle: especifica o limiar de ngulo (em radianos); se dois pontos adjacentes da matriz fazem um ngulo maior que o creaseAngle, possvel ver claramente que os dois se encontram, pois o encontro deles fica abrupto, o ideal que esse encontro seja suave.

52 Sintaxe: geometry ElevationGrid { xDimension zDimension xSpacing zSpacing height [ ... .... ... ]

color Color { color [ , ..., ... , ..., ] } ,

colorPerVertex TRUE/FALSE

solid TRUE/FALSE

ccw TRUE/FALSE

convex TRUE/FALSE

creaseAngle }

53 Exemplo:
#VRML V2.0 utf8 #ElevationGridChess.wrl #Desenha um tabuleiro de xadrez com a geometria ElevationGrid

Shape { geometry ElevationGrid { xDimension 9 zDimension 9 xSpacing 1 zSpacing 1 height [ 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 ] colorPerVertex FALSE color Color { color [ 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, 1 1 1, 0 0 0, ] } } }

Apresenta-se o programa ElevationGridChess.wrl que desenha um tabuleiro de xadrez. Edite o programa e visualize-o no Cortona.

54

2.8.5 Extrusion
A geometria Extrusion muito poderosa, permitindo que se construam formas geomtricas complexas usando apenas alguns pontos. Sintaxe: geometry Extrusion { crossSection [ orientation scale solid TRUE/FALSE spine [ , , ..., ] , ... , ]

beginCap TRUE/FALSE endCap TRUE/FALSE ccw TRUE/FALSE convex TRUE/FALSE creaseAngle }

A base de uma forma construda com a geometria Extrusion uma seo 2D. Por exemplo, considerando um cubo, a base que forma sua seo 2D um quadrado. As sees 2D so definidas no plano XZ e as coordenadas de seus pontos so definidas no campo crossSection. A figura 25 mostra uma seo 2D para um cubo.

Figura 25 - Base que forma uma seo 2D para um cubo

55 Outro conceito necessrio para a construo de uma geometria Extrusion o campo spine. A spine define o caminho que a seo 2D vai percorrer para criar a forma geomtrica. Para construir um cubo a partir da seo 2D mostrada na figura 25, pode-se comear fazendo a seo 2D cruzar o plano em (0,-1,0) (direo negativa do eixo Y) em direo a (0,1,0) (direo positiva de Y). A figura 26 mostra a spine para o cubo e o caminho a ser percorrido pela seo 2D.

Figura 26 - Spine para a seo 2D

A spine da figura 26 definida por dois pontos (0,-1,0) e (0,1,0), embora possam ter tantos pontos quanto o necessrio para a definio da forma. A lista de passos que o browser segue para desenhar a geometria Extrusion a partir dos pontos de spine : Translada a seo 2D para o primeiro ponto da spine. Reorienta a seo 2D definida no plano XZ de forma que o eixo Y coincida com a direo obtida com os dois pontos da spine (no exemplo da figura 26, esse passo no necessrio). Move a seo 2D para o ltimo ponto da spine. Aps a execuo do ltimo passo, o browser vai criar as paredes laterais do cubo. O resultado final mostrado na figura 27.

Figura 27 Cubo construdo a partir da seo 2D da figura 25 e spine da figura 26

56 Os campos beginCap e endCap especificam se a forma ser aberta ou fechada em suas extremidades. A figura 28(a) mostra o cubo da figura 27 quando os campos beginCap e endCap esto marcados como FALSE o cubo est vazado em ambas as extremidades. Alm disso, possvel ver somente as duas faces que esto viradas para os olhos do leitor, pois o campo solid est marcado como TRUE (ainda em 28a). Marcando o campo solid para FALSE, a viso do cubo torna-se a mostrada em 28(b).

Figura 28 - cubo com campos beginCap e endCap FALSE e (a) solid TRUE (b) solid FALSE

Exemplo:
#VRML V2.0 utf8 #ExtrusionCube.wrl #Desenha um cubo a partir da geometria Extrusion { children [ Shape { appearance Appearance { material Material {} } geometry Extrusion { crossSection [ -1 -1, -1 1, 1 1, 1 -1, -1 1 ] spine [0 -1 0 , 0 1 0 ] beginCap FALSE endCap FALSE solid FALSE } } ] }

57

Veja tambm o exemplo Extrusion.wrl, apresentado a seguir:


#VRML V2.0 utf8 #Extrusion.wrl #Construcao de um vaso com a geometria Extrusion #Define ponto de vista inicial Viewpoint { position 0.0 2.0 10.0 description "Visao inicial" } Group { children [ Shape { appearance Appearance { material Material { diffuseColor 1.0 1.0 0.0 } } geometry Extrusion { creaseAngle 1.57 endCap FALSE solid FALSE crossSection [ # Pontos em XZ que definem a seo 2D que e um circulo 1.00 0.00, 0.92 -0.38, 0.71 -0.71, 0.38 -0.92, 0.00 -1.00, -0.38 -0.92, -0.71 -0.71, -0.92 -0.38, -1.00 -0.00, -0.92 0.38, -0.71 0.71, -0.38 0.92, 0.00 1.00, 0.38 0.92, 0.71 0.71, 0.92 0.38, 1.00 0.00 ] spine [ # Pontos que formam os planos que a seo 2D vai cruzar 0.0 0.0 0.0, 0.0 0.6 0.0, 0.0 1.0 0.0, 0.0 1.4 0.0, 0.0 1.8 0.0, 0.0 2.2 0.0, 0.0 2.6 0.0, 0.0 3.0 0.0, 0.0 3.4 0.0, 0.0 3.8 0.0, 0.0 4.2 0.0 ] scale [ 1.5 1.5, 1.95 1.95, 2.0 2.0, 1.95 1.95 1.8 1.8, 1.5 1.5 1.2 1.2, 1.05 1.05, 1.0 1.0, 1.05 1.05, 1.3 1.3, ] } } ] }

58

2.8.6 Text
O texto tratado como uma geometria tambm, permitindo que palavras e frases sejam mostrados nos mundos VRML. Os campos que o definem so: string: contm o texto a ser mostrado; pode ter uma ou mais linhas. fontStyle: especifica um node parte que permite que sejam definidos aspectos de como o texto ser apresentado. composto dos campos: family: especifica o fonte; valores neste campo podem ser: "SERIF", "SANS", "TYPEWRITER". style: especifica o estilo do fonte; valores neste campo podem ser: "PLAIN", "BOLD", "ITALIC", "BOLDITALIC". horizontal: TRUE indica que o texto deve ser mostrado na horizontal, FALSE, na vertical. leftToRight: TRUE indica que o texto deve ser escrito da esquerda para a direita; FALSE, da direita para a esquerda (modo rabe) topToBottom: TRUE indica que o texto deve ser escrito de cima para baixo; FALSE, de baixo para cima (modo chins). justify: se horizontal TRUE, a justificao principal horizontal e a secundria vertical; se horizontal for FALSE o contrrio. H quatro valores para este campo: "FIRST", "BEGIN" (justificado esquerda), "MIDDLE" (centralizado) e "END" (justificado direita). language: especifica o alfabeto: "en" para English,"en_US" para US english, "zh" para chins, etc. Consulte o RFC 1766 para a lista completa. size: especifica a altura dos caracteres em unidades VRML. spacing: especifica o espao entre linhas. length: especifica o comprimento de cada string em unidades VRML, no em caracteres. Se o string for muito curto, escalado, se for muito longo, comprimido. Um valor zero indica que o string no deve ser nem escalado nem comprimido. Zero o valor default. maxExtent: limita, diminuindo se necessrio, todos os strings.

59 Sintaxe: geometry Text { string [ ] fontStyle { family "" style horizontal TRUE/FALSE justify "" language "" leftToRight TRUE/FALSE size spacing topToBottom TRUE/FALSE leftToRight TRUE/FALSE } length [ ] maxExtent }

Exemplo:
#VRML V2.0 utf8 #Text.wrl #Sao mostrados tres textos com diferentes caracteristicas. # Texto na posicao default Shape { appearance Appearance { material Material { diffuseColor 1.0 1.0 0.0 } } geometry Text { string "Italic serif" fontStyle FontStyle { size 1.7 family "SERIF" style "ITALIC" language "zh" leftToRight TRUE } } }

60
# Texto centralizado Transform {translation 0.0 3.0 0.0 children [ Shape { appearance Appearance { material Material { diffuseColor 0.0 1.0 0.0 } } geometry Text { string ["Bold", "sans-serif"] fontStyle FontStyle { size 1.4 justify "MIDDLE" family "SANS" style "BOLD" topToBottom TRUE horizontal TRUE } } } ] }

# Texto alinhado pelo fim Transform { translation -5.0 5.0 0.0 children [ Shape { appearance Appearance { material Material{ diffuseColor 1.0 0.0 1.0 } } geometry Text { string "Roman typewriter" fontStyle FontStyle { size 0.9 family "TYPEWRITER" style "" justify "END" horizontal FALSE } maxExtent 42.5 } } ] }

61

2.9 Shape Aparncia


O node Shape, como foi definido na seo 2.6 e mostrado abaixo, possui dois campos: appearance (aparncia) e geometry (geometria). Shape { appearance Appearance # define a aparncia { ... }

geometry { .... } }

# define a geometria ou forma 3D

Todas as dez formas geomtricas que podem ser definidas no campo geometry foram estudadas. Aqui ser estudado o campo appearance. Em appearance podem ser definidos os campos material, texture (que composto dos campos ImageTexture, MovieTexture e PixelTexture) e

textureTransform. Nesta seo apenas trs dos campos do appearance sero abordados, quais sejam: material Material texture ImageTexture texture MovieTexture

2.9.1 Material
O campo material Material especifica cor, reflexo da luz e transparncia das formas geomtricas e s pode ser definido dentro do campo appearance do node Shape. Material tem seis campos: diffuseColor: define a cor da geometria; este campo ignorado quando alguma textura usada.

62 emissiveColor: usado para definir objetos brilhantes. ambientIntensity: especifica a quantidade de luz refletida pela geometria. specularColor: define a cor dos spots brilhantes da geometria. shininess: controla a intensidade do brilho dos spots brilhantes; pequenos valores representam brilho suave e valores altos definem brilhos intensos. transparency: controla a trasparncia da geoemtria; se um valor 0.0 especificado, a geometria totalmente opaca; o valor 1.0 indica que a geometria transparente.

Os campos diffuseColor, emissiveColor e specularColor tm um valor RGB associado; os outros um valor em ponto flutuante entre 0.0 e 1.0.

Sintaxe: appearance Appearance { material Material { diffuseColor ambientIntensity emissiveColor specularColor shininess transparency } }

63 Exemplo:
#VRML V2.0 utf8 #Material.wrl #Sao mostrados seis vasos com diferentes materiais. #Definicao do ponto de vista inicial. Viewpoint { position 0.0 3.0 15.0 description "Vista inicial" } Group { children [ #Iluminacao PointLight { location 0.0 10.0 -9.0 ambientIntensity 0.2 }, PointLight { location 0.0 10.0 9.0 ambientIntensity 0.2 }, Shape { appearance Appearance { # Material - aluminio vaso 1 material Material { ambientIntensity 0.3 diffuseColor 0.30 0.30 0.50 specularColor 0.70 0.70 0.80 shininess 0.10 } } #cria um vaso com a geometria Extrusion geometry DEF vase Extrusion { creaseAngle 1.57 endCap FALSE solid FALSE crossSection [ #Definicao do circulo de crossSection 1.00 0.00, 0.92 -0.38, 0.71 -0.71, 0.38 -0.92, 0.00 -1.00, -0.38 -0.92, -0.71 -0.71, -0.92 -0.38, -1.00 -0.00, -0.92 0.38, -0.71 0.71, -0.38 0.92, 0.00 1.00, 0.38 0.92, 0.71 0.71, 0.92 0.38, 1.00 0.00 ] spine [ 0.0 0.0 0.0, 0.0 0.6 0.0, 0.0 1.0 0.0, 0.0 1.4 0.0, 0.0 1.8 0.0, 0.0 2.2 0.0, 0.0 2.6 0.0, 0.0 3.0 0.0, 0.0 3.4 0.0, 0.0 3.8 0.0, 0.0 4.2 0.0 ]

64
scale [ 1.5 1.5, 2.0 2.0, 1.8 1.8, 1.2 1.2, 1.0 1.0, 1.3 1.3, ]

1.95 1.95, 1.95 1.95 1.5 1.5 1.05 1.05, 1.05 1.05,

} }, Transform { translation -5.0 0.0 0.0 children [ Shape { appearance Appearance { #Material cobre vaso 2 material Material { ambientIntensity 0.26 diffuseColor 0.30 0.11 0.00 specularColor 0.75 0.33 0.00 shininess 0.08 } } geometry USE vase } ] }, Transform { translation 5.0 0.0 0.0 children [ Shape { appearance Appearance { #Material ouro vaso 3 material Material { ambientIntensity 0.4 diffuseColor 0.22 0.15 0.00 specularColor 0.71 0.70 0.56 shininess 0.16 } } geometry USE vase } ] } Transform { translation -5.0 0.0 -5.0 children [ Shape { appearance Appearance { # Material - vermelho metalico vaso 4 material Material { ambientIntensity 0.15 diffuseColor 0.27 0.0 0.0 specularColor 0.61 0.13 0.18 shininess 0.20 } } geometry USE vase } ]

65
} Transform { translation 0.0 0.0 -5.0 children [ Shape { appearance Appearance { # Material - plastico azul vaso 5 material Material { ambientIntensity 0.10 diffuseColor 0.20 0.20 0.71 specularColor 0.83 0.83 0.83 shininess 0.12 } } geometry USE vase } ] }, Transform { translation 5.0 0.0 -5.0 children [ Shape { appearance Appearance { # Material transparencia vaso 6 material Material { ambientIntensity 0.5 diffuseColor 0.0 0.0 0.2 specularColor 1.0 1.0 1.0 shininess 0.50 transparency 0.5 } } geometry USE vase } ] } ] }

2.9.2 ImageTexture
O campo texture ImageTexture especifica a localizao da imagem que ser utilizada para texturizar a geometria, assim como se a imagem ser repetida verticalmente ou horizontalmente ao longo das faces da forma. Os campos presentes so: url: especifica a localizao da imagem; os formatos aceitos so JPG/JPEG Joint Photographic Experts Group , GIF- Graphical Interchange Format e PNGPortable Network Graphics . Podem ser definidas mltiplas localizaes e o browser ir procurar pelos dados em ordem decrescente de endereos. repeatS: TRUE indica que a imagem deve ser repetida verticalmente. repeatT: TRUE indica que a imagem deve ser repetida horizontalmente.

66 Todos os campos so opcionais e valores default so aplicados quando os campos no so referenciados. Se a imagem no for localizada, nenhuma textura aplicada. Quando ambos os campos repeatS e repeatT so TRUE a imagem repetida duas vezes em cada direo. Sintaxe: appearance Appearance { texture ImageTexture { url [ ] repeatS TRUE/FALSE repeatT TRUE/FALSE } }

Exemplo:
#VRML V2.0 utf8 #ImageTexture.wrl #Criacao de um vaso com flores. O vaso e mapeado com uma #textura colorida e a textura das flores possui transparencia. #Definicao do ponto de vista inicial Viewpoint { position 0.0 5.0 18.0 description "Vista inicial" } Group { children [ #Cria o vaso com a geometria Extrusion Shape { appearance Appearance { texture ImageTexture { url "imporsol.jpg"} } geometry Extrusion { creaseAngle 1.57 endCap FALSE solid FALSE crossSection [ 1.00 0.00, 0.92 -0.38, 0.71 -0.71, 0.38 -0.92, 0.00 -1.00, -0.38 -0.92, -0.71 -0.71, -0.92 -0.38, -1.00 -0.00, -0.92 0.38, -0.71 0.71, -0.38 0.92, 0.00 1.00, 0.38 0.92, 0.71 0.71, 0.92 0.38, 1.00 0.00 ]

67
spine [ 0.0 0.0 0.0, 0.0 0.6 0.0, 0.0 1.0 0.0, 0.0 1.4 0.0, 0.0 1.8 0.0, 0.0 2.2 0.0, 0.0 2.6 0.0, 0.0 3.0 0.0, 0.0 3.4 0.0, 0.0 3.8 0.0, 0.0 4.2 0.0 ] scale [ 1.5 1.5, 1.95 1.95, 2.0 2.0, 1.95 1.95 1.8 1.8, 1.5 1.5 1.2 1.2, 1.05 1.05, 1.0 1.0, 1.05 1.05, 1.3 1.3, ] } }, # Cria um cubo e aplica uma imagem com tulipas, # simulando as flores do vaso Transform { translation 0.0 6.8 0.0 children Shape { appearance Appearance { #Textura com transparencia texture DEF flowers ImageTexture { url "imtulipas.jpg" } } geometry Box{ size 5.0 5.0 5.0 } } } #Cria mais um cubo com as flores Transform { translation 0.0 7.8 0.0 rotation 0.0 1.0 0.0 -0.75 children Shape { appearance Appearance { texture USE flowers } geometry Box { size 3.0 5.0 3.0 } } } ] }

68

2.9.3 MovieTexture
O campo texture MovieTexture especifica a localizao de um filme que ser utilizado para texturizar a geometria. O filme deve estar no formato MPEG e pode ser repetido verticalmente ou horizontalmente ao longo das faces da forma. Os campos presentes so: loop: especifica se o filme deve ser apresentado repedidamente, sem parar. speed: especifica o quo rpido o filme deve ser apresentado; por exemplo, se a velocidade (speed) for 2 o filme ser duas vezes mais rpido; valores negativos fazem com que o filme seja apresentado de trs para a frente. startTime: especifica o tempo de incio da apresentao do filme em segundos; o valor deste campo o nmero de segundos desde a meianoite de 1 de janeiro de 1970. stopTime: especifica o tempo do final da apresentao do filme em segundos; o valor deste campo o nmero de segundos desde a meianoite de 1 de janeiro de 1970. url: especifica a localizao do filme; podem ser definidas mltiplas localizaes e o browser ir procurar pelos dados em ordem decrescente de endereos. repeatS: TRUE indica que o filme deve ser repetido verticalmente. repeatT: TRUE indica que o filme deve ser repetido horizontalmente.

Em VRML o mundo foi criado meia-noite de 1 de janeiro de 1970. Alguns dizem que a razo da escolha desta data foi para coincidir com o nascimento do sistema operacional UNIX. Se o loop marcado como TRUE e o startTime for maior ou igual a stopTime, o filme vai ser repetido para sempre. Entretanto, se o startTime for menor que o stopTime, o filme vai parar assim que o stopTime for alcanado. Se o startTime for maior ou igual a stopTime, ento o filme vai comear to logo o startTime for alcanado. Note que alguns browsers somente comeam o filme se o startTime for maior que o stopTime.

69 Todos os campos so opcionais e valores default so aplicados quando os campos no so referenciados. Se o filme no for localizado, nenhuma textura aplicada. Sintaxe: appearance Appearance { texture MovieTexture { loop TRUE/FALSE speed startTime stopTime url [ ] repeatS TRUE/FALSE repeatT TRUE/FALSE } } Exemplo:
#VRML V2.0 utf8 #MovieTexture.wrl #Usa o vaso com flores criado em ImageTexture.wrl, #mas no lugar das flores apresenta um filme #Definicao do ponto de vista inicial Viewpoint { position 0.0 5.0 18.0 description "Vista inicial" } Group { children [ Shape { appearance Appearance { texture ImageTexture { url "imporsol.jpg" } }

70
geometry Extrusion { creaseAngle 1.57 endCap FALSE solid FALSE crossSection [ 1.00 0.00, 0.92 -0.38, 0.71 -0.71, 0.38 -0.92, 0.00 -1.00, -0.38 -0.92, -0.71 -0.71, -0.92 -0.38, -1.00 -0.00, -0.92 0.38, -0.71 0.71, -0.38 0.92, 0.00 1.00, 0.38 0.92, 0.71 0.71, 0.92 0.38, 1.00 0.00 ] spine [ 0.0 0.0 0.0, 0.0 0.6 0.0, 0.0 1.0 0.0, 0.0 1.4 0.0, 0.0 1.8 0.0, 0.0 2.2 0.0, 0.0 2.6 0.0, 0.0 3.0 0.0, 0.0 3.4 0.0, 0.0 3.8 0.0, 0.0 4.2 0.0 ] scale [ 1.5 1.5, 1.95 1.95, 2.0 2.0, 1.95 1.95 1.8 1.8, 1.5 1.5 1.2 1.2, 1.05 1.05, 1.0 1.0, 1.05 1.05, 1.3 1.3, ] } }, #Cria um cubo em cima do vaso e passa o filme em suas faces Transform { translation 0.0 6.8 0.0 children Shape { appearance Appearance { texture MovieTexture { url "usuario.mpeg" loop TRUE speed 1 } } geometry Box{ size 5.0 5.0 5.0 } } } ] }

71

3 Consideraes Finais
Nesse curso pde-se ver como a Realidade Virtual vem interferindo na vida das pessoas, seja na sua forma mais tradicional, seja atravs de tecnologias relacionadas, como a Realidade Aumentada. A criao de novas interfaces

homem-mquina fundamental e hoje muitas pessoas se beneficiam de suas aplicaes. Conforme estudado no curso, a Realidade virtual uma tecnologia que ser utilizada cada vez mais num futuro prximo. Seu potencial vasto e tende a ser utilizada em vrias reas com muito mais frequncia do que a encontrada na atualidade. Porm, uma desvantagem dessa tecnologia ainda o seu custo, uma vez que necessria a utilizao de diversos aparatos de hardware para permitir uma interao mais intensa e realista com os mundos virtuais, como capacetes, luvas, controladores, roupas especiais, dentre outros. Outro importante tpico abordado no curso foi a linguagem VRML, que a linguagem de programao mais acessvel para a criao de objetos e cenrios virtuais em 3D na internet. A linguagem VRML, conforme exposto, no proprietria, sendo uma ferramenta de fcil aprendizado e muito utilizada para a criao de interfaces de Realidade Virtual. Com a crescente demanda de usurios interessados em criar ou mesmo utilizar ambientes de RV, outras linguagens de programao passaram a incorporar cdigos VRML em suas bibliotecas, fazendo com que ampliassem as suas reas de aplicao, como anlise financeira, entretenimento, educao, entre outras. Como se pde ver so diversas as tecnologias de RV que proporcionam ao usurio sensaes e emoes que talvez no mundo real no se pudesse ter. A tecnologia de RV no se resume apenas nas apresentadas nessa apostila, pois pesquisadores continuam sempre em busca de melhorias e acredita-se que a RV poder confundir a mente humana entre o que realmente real e o que virtual. Assim, caro estudante, continue suas pesquisas nesta rea e acompanhe sempre as novidades tecnolgicas ligadas RV!

72

4 Bibliografia Consultada
[1] PIRES, Felipe; et al. Realidade Virtual no Cinema. Disponvel em: http://www.ruigaspar.com/wp-content/uploads/2010/02/ realidadevirtualnocinema_filipepires_joc3a3ogil_ruigaspar1.pdf. em: 21 nov. 2010. Acesso

[2]

STRICKLAND, Jonathan. Histria da Realidade Virtual. Disponvel em: http://eletronicos.hsw.uol.com.br/realidade-virtual8.htm. Acesso em: 21 nov. 2010.

[3]

NETTO, Antonio V.; MACHADO, Liliane S.; OLIVEIRA, Maria Cristina F. Realidade Virtual (Fundamentos e Aplicaes). Santa Catarina: Editora Visual Books, 2002.

[4]

Mundos Virtuais:Ferramentas com vantagens reais. Disponvel em: https://www.cpqd.com.br/highlights/341-mundos-virtuais-ferramenta-comvantagens-reais.html. Acesso em: 10 out. 2010.

[5]

HEEKS, Richard. Dinheiro Real de Mundos Virtuais. Scientific American Brasil Ed. 93 Fevereiro, 2010. Disponvel em: http://www2.uol.com.br/sciam/reportagens/dinheiro_real_de_mundos_virtua is.html. Acesso em: 13 out. 2010.

[6]

BASTOS, Rodrigo. Os benefcios de trabalhar no mundo virtual 3D. Bigsense. Disponvel em: http://www.bigsense.com.br/os-beneficios-de-trabalhar-no-mundo-virtual3d/. Acesso em: 21 set. 2010.

[7]

Iniciando no VRML: Introduo ao VRML. Disponvel em: http://www.htmlstaff.org/ver.php?id=3155. Acesso em: 11 out. 2010.

73 [8] Criao de mundos virtuais por meio da Linguagem VRML 2.0. Disponvel em: http://www.arte.unb.br/lis/fapfim/vrml.html. Acesso em: 11 out. 2010.

[9]

Casulo de realidade virtual estimulam os cinco sentidos do usurio. G1 So Paulo 06 mar. 2009. Disponvel em:

http://g1.globo.com/Noticias/Tecnologia/0,,MUL1029990-6174,00CASULO+DE+REALIDADE+VIRTUAL+ESTIMULA+CINCO+SENTIDOS+D O+USUARIO.html. Acesso em: 11 set. 2010.

[10]

Realidade Virtual coloca mente masculina em corpo de mulher. Terra So Paulo 15 mai. 2010. Disponvel em:

http://tecnologia.terra.com.br/noticias/0,,OI4428972-EI12882,00Realidade+virtual+coloca+mente+masculina+em+corpo+de+mulher.html. Acesso em: 15 out. 2010.

[11]

Realidade Virtual para arquitetura e planejamento urbano. Inovao Tecnolgica 12 mai. 2004. Disponvel em:

http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=0101500 40512. Acesso em: 05 out. 2010.

[12]

Embraer usa simulador de vo de realidade virtual com tecnologia GIS e imagens de satlite. MUNDOGEO 04 jan. 2006. Disponvel em: http://www.mundogeo.com.br/noticias-diarias.php?id_noticia=5306. Acesso em: 02 out. 2010.

[13]

TODESCHINI, Raquel T.; PEREIRA, Alice Terezinha C.; KEJELIN, Cezar R. Jogos e Entretenimentos em realidade virtual: Perspectivas e Possibilidades. Disponvel em:

http://www.cce.ufsc.br/~pereira/artigos/jogos/artigo5.htm. Acesso em: 07 out. 2010.

74 [14] CASTRO, Elisa C.; MAGALHES, Lo P. Computao Grfica e Multimdia I. Disponvel em: Acesso

http://www.dca.fee.unicamp.br/sibgrapi99/vrml/Aula1/aula1.html em: 19 out. 2010.

[15]

TRAC. Black Trac. Disponvel em: http://blackhex.no-ip.org/doxygen/Coin/classSoVRMLCone.html Acesso em: 8 out. 2010.

[16]

THE WEB ENVIRONMENT, Virtual Reality in Architecture. Disponvel em: http://www-personal.umich.edu/~emdanat/Tutorials/vrml97/Shape.html Acesso em: 22 out. 2010.

[17]

CAREY, Rikk; BELL, Gavin. The Annotated VRML 97 Reference. Disponvel em:

http://accad.osu.edu/~pgerstma/class/vnv/resources/info/AnnotatedVrmlRef /ch3-311.htm Acesso em: 10 out. 2010.

[18]

SOFRANKO, Juraj. Virtual Reality Modeling Language version 2 Disponvel em: http://www.cescg.org/CESCG98/JSofranko/index.html Acesso em: 24 out. 2010.

[19]

Curtin

Department

of

Computing.

Disponvel

em:

http://www.computing.edu.au/~raytrace/VRML/Sec2.htm Acesso em: 24 out. 2010.

[20]

DAVIDSON,

Jim.

Virtual

Environment.

Disponvel

em:

http://www.hitl.washington.edu/research/cedes/arch498e/VRMLtutor.htm. Acesso em: 25 out. 2010.

[21]

WEBMASTER. OpenWorlds Optimizer Node Support. Disponvel em: http://www.openworlds.com/doc/vrml_nodes/opt_support.html Acesso em: 03 Nov. 2010.

75

[22]

Virtual Reality Modeling Language. Disponvel em: http://users.swing.be/sw246620/home%20%20files/Vrml/annexe1.html. Acesso em: 06 Nov. 2010.

[23]

Vapour Technology. Disponvel em: http://pesona.mmu.edu.my/~ypwong/virtualreality/vrml97_tutorial_floppy/es/ nodes.html. Acesso em: 06 Nov. 2010.

[24]

5DT Virtual Reality Information Virtual Reality to the Real World 5DT 18 jul. 2007. Disponivel em: http://www.5dt.com/virtualinfo.html Acesso em: 08 nov. 2010.

[25]

STRICKLAND, Jonathan. Histria da Realidade Virtual. Disponvel em: http://eletronicos.hsw.uol.com.br/realidade-virtual9.htm. Acesso em: 30 set. 2010.

[26]

LIMA, Waldir, GONALVES Iris, JULIO Gabriel. Realidade Virtual em Ambientes Virtuais Interativos Disponivel em:

http://www.scribd.com/doc/2430872/Realidade-Virtual Acessado em 30 set, 2010.

[27]

Prof. Dr. Kirner, Claudio, Sistemas de Realidade Virtual. Disponivel em:http://www2.dc.ufscar.br/~grv/tutrv/tutrv.htm Acesso em: 30 set, 2010.

[28] JAMSA, K, SCHMAUDER, P., YEE, N. VRML biblioteca do programador. Makron Books, 1999. [29] AMES, A. L., NADEAU, D. R., MORELAND, J. L. VRML 2.0 sourcebook. John Wiley & Sons, Inc., 1997. [30] HARTMAN, J., WERNECKE, J. The VRML 2.0 handbook - building moving worlds on the web. Addison-Wesley Publishing Company, 1996.

76 [31] MARRIN, C., CAMPBELL, B. Teach yourself VRML 2 in 21 days, Sams.net Publishing, 1997. [32] PESCE, M. VRML browsing and building cyberspace. New Riders Publishing, 1995. [33] LEA, R., MATSUDA, K., MIYASHITA, K. Java for 3D and VRML worlds. New Riders Publishing, 1996.

O aluno tambm pode consultar estes links para continuar seus estudos: http://www.terravista.pt/enseada/1527/vrml_ok.htm

http://www.di.ufpe.br/~if291/documentos/vrmlsibgrapi97/toc.htm

http://mirror.impa.br/sibgrapi97/cursos/vrml/cap01/toc.htm

http://www.lighthouse3d.com/vrml/tutorial/index.shtml?intro

http://www.inf.pucrs.br/~pinho/CG/Aulas/Vrml/Vrml2/vrml2Pinho.htm