Verônica Stocchi Marinho MODELAGEM E VISUALIZAÇÃO DE AMBIENTES VIRTUAIS NA WEB

Texto

(1)

Verônica Stocchi Marinho

MODELAGEM E VISUALIZAÇÃO DE AMBIENTES VIRTUAIS NA WEB

Palmas-TO

2004

(2)

Verônica Stocchi Marinho

MODELAGEM E VISUALIZAÇÃO DE AMBIENTES VIRTUAIS NA WEB

Trabalho de Estágio apresentado como requisito parcial de disciplina Prática de Sistemas de Informação I do curso de Sistemas de Informação, orientado pelo Prof. Jackson Gomes de Souza .

Palmas-TO

2004

(3)

VERÔNICA STOCCHI MARINHO

MODELAGEM E VISUALIZAÇÃO DE AMBIENTES VIRTUAIS NA WEB

Trabalho de Estágio apresentado como requisito parcial de disciplina Prática de Sistemas de Informação I do curso de Sistemas de Informação, orientado pelo Prof. Jackson Gomes de Souza .

BANCA EXAMINADORA

_______________________________________________

Prof. Jackson Gomes de Souza

Centro Universitário Luterano de Palmas

_______________________________________________

Profª. M.Sc. Parcilene Fernandes de Brito

Centro Universitário Luterano de Palmas

_______________________________________________

Prof. M.Sc. Fabiano Fagundes

Centro Universitário Luterano de Palmas

Palmas-TO

2004

(4)

AGRADECIMENTOS

Após cinco meses de pesquisa e desenvolvimento, sinto uma imensa vontade de agradecer àqueles que me apoiaram ao longo desse trabalho, pois sem esse apoio e o compartilhamento de idéias, todo o resultado seria diferente. Aos meus pais, que proporcionaram meios para que esse desenvolvimento fosse possível, como a oportunidade de cursar uma faculdade que eu realmente adoro, além do interesse pelo acompanhamento de minhas atividades. Ao Jânio, por se manter disponível todas as vezes que eu precisei de um help, além de me agüentar nos períodos de stress total. E, é claro, ao meu orientador, porque além de me ajudar a descobrir a área que, com certeza, é a que eu mais gosto, me apoiou durante todo o projeto, oferecendo ajuda, incentivo e tornando o projeto, dessa forma, bom de ser realizado.

(5)

SUMÁRIO

1 INTRODUÇÃO...10

2 REVISÃO DA LITERATURA...13

2.1 REALIDADE VIRTUAL...13

2.1.1 Histórico ...14

2.1.2 Definição...17

2.1.3 Utilização da Realidade Virtual na Arquitetura...19

2.2 VRML - VIRTUAL REALITY MODELING LANGUAGE...21

2.2.1 Componentes Funcionais...22

2.2.1.1 Estrutura do grafo de cena ...22

2.2.1.2 Arquitetura de eventos ...24

2.2.1.3 Sensores ...25

2.2.1.4 Scripts e Interpolators ...25

2.2.1.5 DEF e USE...27

2.2.1.6 Prototipagem ...28

2.2.1.7 Cenas distribuídas ...30

2.2.2 Animação ...31

2.2.3 Browser VRML ...32

2.3 X3D - EXTENSIBLE 3D ...33

2.3.1 X3D e XML ...35

2.3.2 Componentes Funcionais...36

2.4 AUTOCAD...40

2.4.1 Funcionalidades do AutoCAD 2000 ...41

2.5 3D STUDIO MAX...46

2.5.1 Funcionalidades do 3D Studio Max 6.0 ...47

3 MATERIAL E MÉTODOS ...52

3.1 LOCAL E PERÍODO...52

3.2 MATERIAL...52

3.3 METODOLOGIA...53

4 RESULTADOS E DISCUSSÃO...55

(6)

4.1 CRIAÇÃO DO MODELO 2D ...56

4.2 CRIAÇÃO DO MODELO 3D ...59

4.3 CRIAÇÃO DO ARQUIVO X3D ...65

4.4 TESTES COM PLUGINS...67

4.4.1 Flux ...68

4.4.2 Cortona ...69

4.4.3 Vcom3D ...71

4.4.4 Octaga...72

4.4.5 BSCONTACT ...73

4.5 CRIAÇÃO DO SITE...75

5 CONCLUSÕES ...78

6 REFERÊNCIAS BIBLIOGRÁFICAS...80

(7)

LISTA DE FIGURAS

Figura 1: Anúncio do Sensorama de Morton Heilig (PIMENTEL, 1995). ...14

Figura 2: Vídeo-capacete criado por Ivan Sutherland (PIMENTEL, 1995)...15

Figura 3: VideoPlace criado por Myron Krueger (PIMENTEL, 1995). ...15

Figura 4: VIVED, criado por Michael McGreevy (STURMAN, 1994). ...16

Figura 5: Luva de dados Dataglove de Thomas Zimmerman (STURMAN, 1994). ...17

Figura 6: O triângulo da realidade virtual. ...17

Figura 7: Los Angeles virtual exemplo de cenário urbano (PIMENTEL, 2001). ...20

Figura 8: Exemplo de arquivo VRML...23

Figura 9: Código VRML da Figura 10 executado pelo browser Octaga. ...23

Figura 10: Exemplo de nó Script...26

Figura 11: Execução do código completo da Figura 10. ...26

Figura 12: Exemplo de DEF e USE. ...27

Figura 13: Execução do código da Figura 12. ...28

Figura 14: Exemplo de arquivo VRML utilizando rotas e protótipos...29

Figura 15: Execução do código da Figura 14. ...29

Figura 16: Fluxo de eventos em uma animação. ...31

Figura 17: Modelo conceitual do browser VRML. ...33

Figura 18: Profiles do X3D. ...35

Figura 19: Exemplo de arquivo X3D. ...37

Figura 20: Código da Figura 19, executado pelo browser Octaga. ...37

Figura 21: Exemplo de indicação EXPORT. ...39

Figura 22: Exemplo de indicação IMPORT. ...39

Figura 23: Tela do programa AutoCAD 2000...41

Figura 24: Exemplo de criação de retângulo através de comandos...45

Figura 25: Opções de visualização para o Viewport...47

Figura 26: Tela principal do programa 3D Studio Max 6.0. ...48

Figura 27: Ferramentas referentes ao frame e animação. ...50

Figura 28: Comandos para criação de Scripts. ...50

Figura 29: Alguns comandos adicionais da parte inferior da tela. ...51

Figura 30: Arquitetura do projeto. ...55

Figura 31: Exemplo inicial do modelo 2D. ...57

(8)

Figura 32: Transformando um traço em um tipo Layer. ...58

Figura 33: Apresentação de alguns Layers do modelo 2D...59

Figura 34: Modelo 2D. ...60

Figura 35: Aplicando o modificador extrude nas paredes e muro do modelo...61

Figura 36: Exemplo de criação de janelas e portas. ...62

Figura 37: Janela de manipulação de texturas. ...62

Figura 38: Menu de criação de iluminação. ...63

Figura 39: Exemplo de ambiente 3D criado no programa 3D Studio Max 6.0 (vista 1)....64

Figura 40: Exemplo de ambiente 3D criado no programa 3D Studio Max 6.0 (vista 2)....64

Figura 41: Tela principal do programa X3D Edit. ...65

Figura 42: Parte do código X3D do projeto. ...66

Figura 43: Parte do código VRML do projeto...66

Figura 44: Imagem gerada pela renderização do programa 3D Studio Max 6.0...68

Figura 45: Código do plugin Flux para visualização de mídias na web...69

Figura 46: Imagem gerada pelo plugin Flux, a partir da câmera 01...69

Figura 47: Código do plugin Cortona para visualização de mídias na web. ...70

Figura 48: Imagem gerada pelo plugin Cortona, a partir da câmera 01. ...71

Figura 49: Código do plugin Vcom3D para visualização de mídias na web. ...71

Figura 50: Imagem gerada pelo plugin VCom3D, a partir da câmera 01. ...72

Figura 51: Código do plugin Octaga para visualização de mídias na web...73

Figura 52: Imagem gerada pelo plugin Octaga, a partir da câmera 01...73

Figura 53: Código do plugin BSContact para visualização de mídias na web...74

Figura 54: Imagem gerada pelo plugin BSContact, a partir da câmera 01...75

Figura 55: Tela do principal do site...76

Figura 56: Tela do site que disponibiliza a navegação pelos ambientes 3D. ...77

(9)

LISTA DE TABELAS

Tabela 1: Comparativo da sintaxe do VRML e X3D. ...38

Tabela 2: Comandos fornecidos pelo menu standard do AutoCAD 2000. ...42

Tabela 3: Comandos da barra de ferramenta Snap. ...42

Tabela 4: Comandos da barra de ferramenta Snap. ...43

Tabela 5: Comandos da barra de ferramentas que trabalha com a dimensão. ...44

Tabela 6: Comandos para modelagem 3D...44

Tabela 7: Comandos da barra de criação. ...45

Tabela 8: Comandos da barra de status. ...46

Tabela 9: Comandos da barra superior. ...48

Tabela 10: Comandos do painel de criação. ...49

Tabela 11: Controles de visualização. ...51

Tabela 12: Cronograma do projeto. ...54

Tabela 13: Comparativo entre os plugins testados. ...75

(10)

LISTA DE ABREVIATURAS

3D Tridimensional.

CAD Computer Aided Design.

HTML HyperText Markup Language.

RV Virtual Reality.

SIG Geographics Informations Systems.

VRML Virtual Reality Modeling Language.

XML Extensible Markup Language.

UTF-8 Universal Transformation Format, 8-bit form.

(11)

RESUMO

A utilização de programas como o AutoCAD e o 3D Studio Max, na criação de projetos arquitetônicos, oferece um melhor acompanhamento dos projetos por parte do projetista e do seu cliente pela qualidade e precisão obtidas através de simulação de luz e texturas. Geralmente, são preparadas animações ou cenas pré-definidas nestas maquetes 3D para serem apresentadas ao público. Desta forma, não é possível obter informações que não tenham sido previamente inseridas na apresentação. Uma necessidade bastante emergente é a visualização dessas mídias no ambiente de navegação na web, tornando possível a realização de um passeio virtual pelo ambiente e, desta forma, obter informações perceptíveis visualmente bastante superiores em relação à forma de apresentação convencional. A visualização de um modelo 3D na web necessita da utilização de plugins específicos, além de formatos como o VRML e X3D para a construção dos mundos virtuais . O objetivo deste projeto é desenvolver um site que sirva como um ambiente de visualização tridimensional de ambientes arquitetônicos.

Palavras chave: realidade virtual, maquetes arquitetônicas, X3D, VRML.

(12)

ABSTRACT

The use of programs as the AutoCAD and 3D Studio Max, in the creation of projects architectural, offer a better accompaniment of the projects on the part of the designer and its customer for the quality and precision gotten through light simulation and textures. Generally, animations or scenes daily predefined in these mockups are prepared 3D to be presented the public. Of this form, it is not possible to get information that has not been previously inserted in the presentation. A sufficiently emergent necessity is the visualization of these medias in the environment of navigation in the web, becoming possible the accomplishment of a "virtual stroll" for the environment and, form by this way, to get visually sufficiently superior perceivable information in relation to the form of conventional presentation. The visualization of a model 3D in web needs the use of plugins specific, beyond formats as VRML and X3D for the construction the "virtual worlds". The objective of this project is to develop a site that serves as an environment of three- dimensional architectural visualization surrounding.

Keywords: virtual reality, electronic mockup, VRML, X3D.

(13)

10

1 INTRODUÇÃO

Em 1989, Jaron Lanier utilizou pela primeira vez o termo Realidade Virtual (RV).

A partir daí, esse termo foi adotado nos mais variados tipos de aplicações, que vão desde a simulação da realidade no computador (forma não-imersiva) até a criação de uma realidade específica permitindo que o usuário interaja com o ambiente (forma imersiva).

As formas não-imersivas são bastante aplicadas em jogos, filmes, maquetes eletrônicas e propagandas. Sua vantagem está ligada ao baixo custo, quando comparado com as formas imersivas, pela facilidade de acesso e a não necessidade de utilização de equipamentos adicionais como capacetes e luvas, necessitando somente do computador.

Em contrapartida, a forma imersiva, a partir da utilização dos Head Mounted Displays (capacetes), data gloves (luvas), CAVEs (cavernas virtuais) ou BOOMs (caixa que contém pequenos monitores), dentre outros equipamentos de imersão, proporciona uma maior amplitude de aplicações, já que é obtida uma maior integração entre o usuário e o ambiente virtual, criando aplicações que possibilitam uma experimentação de fatores sensoriais como toque, força, calor, frio e deslocamento.

A construção de projetos de engenharia civil e arquitetura possue, atualmente, aplicações muito amplas de RV. Com o advento dos softwares de CAD (Computer Aided Design) esses projetos se tornaram uma tarefa que praticamente é realizada, por completo, utilizando o computador. Em tempos mais remotos, a visualização ou a simulação desses ambientes somente era possível através das plantas 2D, o que não oferecia muitos recursos visuais ao cliente. Mais tarde, foi possível criar ambientes virtuais 3D, através de

(14)

11

programas como o AutoCAD e o 3D Studio Max, oferecendo ao projetista e seu cliente um melhor acompanhamento da edificação, através de simulações de luz e materiais, mesmo que a tarefa de criação das maquetes 3D exija dispêndio de grande quantidade de tempo, até porque é necessário expressar o máximo possível de detalhes.

A utilização das maquetes 3D não resolve, por si, a questão da visualização da construção; geralmente, são preparadas visualizações ou cenas pré-definidas para serem apresentadas ao público. Desta forma, é impossível perceber detalhes ou obter informações que não tenham sido previamente inseridas na apresentação.

A visualização de mídias não-convencionais na web é uma área de crescente atualização; vários formatos de mídias (imagem, som, vídeo) são descobertos e especificados com freqüência bastante elevada e a conveniência de se visualizar essas mídias no ambiente de navegação na web se torna uma necessidade bastante emergente e uma característica bastante explorada pelos desenvolvedores de web sites. Partindo desse pressuposto, a visualização de maquetes eletrônicas na web se torna uma área de exploração atrativa e bastante viável. É possível, por exemplo, realizar um passeio virtual pelo ambiente e, desta forma, obter informações perceptíveis visualmente, bastante superiores em relação à forma de apresentação de maquetes eletrônicas (como citado anteriormente).

Para que seja possível a visualização de um modelo 3D na web, tem-se a necessidade de usar padrões ou formatos de arquivo específicos. Formatos como o VRML e X3D possibilitam a criação de conteúdo 3D que, com a utilização de plugins, podem ser visualizados na internet.

O presente projeto tem como objetivo o desenvolvimento de um site que sirva como um ambiente de visualização tridimensional de ambientes arquitetônicos, sendo possível realizar um passeio virtual através dele. Para o desenvolvimento dessas atividades são necessárias ferramentas como softwares e componentes de hardwares que suportem o desenvolvimento de gráficos, modelos, imagens e a programação dos ambientes. Foram utilizados os programas AutoCAD 2000, 3D Studio Max 6.0 e o X3D Edit, além das linguagens VRML e XD3.

(15)

12

Na Revisão de Literatura será apresentado o histórico da realidade virtual e a sua aplicação na arquitetura. No segundo e no terceiro serão apresentados respectivamente os formatos VRML e X3D, suas características e os seus principais componentes funcionais.

Para o X3D serão mostradas suas diferenças com o VRML, bem como as vantagens contidas na utilização do XML como forma de representação destes arquivos. No quarto e quinto capítulos, as funcionalidades das duas ferramentas utilizadas para a construção dos ambientes, AutoCAD 2000 e 3D Studio Max 6.0, serão apresentadas; sendo a primeira usada para construir o modelo 2D e a segunda utilizada para tridimensionalizar o ambiente criado do AutoCAD, através da extrusão (levantamento de paredes), iluminação e texturização.

Em Material e Métodos serão apresentados os materiais utilizados, configuração do computador utilizado durante os testes realizados com os plugins, livros e referências bibliográficas. Nele, será descrita a metodologia adotada para o desenvolvimento do trabalho.

No capítulo referente a Resultados e Discussão, serão explicados todos os passos para a geração do site: criação do modelo 2D e 3D, utilização da ferramenta X3D Edit para a criação do arquivo X3D, com um breve comparativo dos códigos referentes ao ambiente arquitetônico criado, testes realizados com plugins que permitem a navegação através de

mundos virtuais criados nos formatos VRML e X3D e o desenvolvimento do site.

(16)

13

2 REVISÃO DA LITERATURA

2.1 Realidade Virtual

A maioria das informações recebidas pelo ser humano tem a forma de imagens visuais, e estas são interpretadas por um computador extremamente eficiente: o cérebro.

Por outro lado, os computadores também podem interpretar informações desde que estas sejam fornecidas através de algum dispositivo, como por exemplo, um mouse ou um teclado. Atualmente, com a realidade virtual, computadores e mente humana entram numa esfera onde ambos podem atuar num nível cada vez mais íntimo (MACHADO, 1995).

A realidade virtual vem sendo aplicada em muitos projetos, surgindo, dessa forma, vários conceitos para este termo:

Realidade Virtual é uma técnica avançada de interface, onde o usuário pode realizar imersão, navegação e interação em um ambiente sintético tridimensional gerado por computador, utilizando canais multi-sensoriais" (KIRNER, 1996).

Realidade Virtual é uma forma das pessoas visualizarem, manipularem e interagirem com computadores e dados extremamente complexos" (AUKSTAKALNIS, 1992).

(17)

14

Uso de alta tecnologia para convencer o usuário de que ele está em outra realidade um novo meio de estar e tocar em informações (PIMENTEL, 1995).

Uma avançada interface homem-máquina que simula um ambiente realístico e permite que participantes interajam com ele (LATTA, 1994).

2.1.1 Histórico

As tecnologias de RV remontam à década de 40, logo após a Segunda Guerra Mundial, quando a Força Aérea norte-americana sentiu a necessidade de desenvolver simuladores de vôo para treinamento por causa da força e do perigo que os vôos causavam a pilotos pouco experientes. A pesquisa foi difícil e demorada, produzindo verdadeiros resultados somente em 1960 (PIMENTEL, 1995 apud MACHADO, 1995).

Logo depois, em 1962, Morton Heilig patenteou o Sensorama, apresentado pela Figura 1, instalação em forma de cabine que combinava filmes 3D, som estéreo, vibrações mecânicas, aromas, e ar movimentado por ventiladores, para que o espectador tivesse uma viagem multissensorial (PIMENTEL, 1995 apud NETTO, 2002).

Figura 1: Anúncio do Sensorama de Morton Heilig (PIMENTEL, 1995).

Por volta de 1965, Ivan Sutherland apresentou à comunidade científica a idéia de desenhar projetos diretamente na tela de um computador através do uso de uma caneta

(18)

15

ótica dando início à computação gráfica; tornou-se o precursor da atual indústria de CAD e desenvolveu um vídeo-capacete, como mostra a Figura 2, que permitia ao usuário, conforme a movimentação de sua cabeça, ver os diferentes lados de uma estrutura, na forma de um cubo flutuando no espaço (PIMENTEL, 1995 apud MACHADO, 1995).

Figura 2: Vídeo-capacete criado por Ivan Sutherland (PIMENTEL, 1995).

Nesta mesma época, Myron Krueger uniu computadores e sistemas de vídeo, criando a técnica chamada de realidade artificial. Já em 1975, Krueger criou o Videoplace, apresentado pela Figura 3, o qual capturava imagens reais através de uma câmara de vídeo e projetava-as em uma grande tela. Os movimentos e interação entre os participantes e objetos eram constantemente capturados e processados. Essa técnica tornou-se conhecida como realidade virtual de projeção (JACOBSON, 1994 apud NETTO, 2002).

Figura 3: VideoPlace criado por Myron Krueger (PIMENTEL, 1995).

Em 1982, Thomas Furness demonstrava para a Força Aérea dos Estados Unidos o VCASS (Visually Coupled Airborne Systems Simulator); um sistema que simulava a cabine de um avião e que, quando utilizado juntamente a vídeo-capacetes com áudio e vídeo, ligados a computadores, formava um ambiente 3D em que os pilotos podiam voar

(19)

16

praticamente isolados do mundo ao seu redor (PIMENTEL, 1995 apud MACHADO, 1995).

No ano de 1984, Michael McGreevy, juntamente com a nova tecnologia de visores de cristal líquido (LCD), começou a trabalhar no projeto VIVED (Virtual Visual Environment Display), como apresenta a Figura 4, na NASA, no qual seriam geradas imagens estereoscópicas (RHEINGOLD, 1991 apud NETTO, 2002). Mesmo que a resolução das imagens fosse limitada em comparação ao VCASS, o custo era bastante atrativo. Sobre uma máscara de mergulho, os componentes de áudio e vídeo foram montados utilizando dois visores de cristal líquido com pequenos autofalantes acoplados.

Em 1985, Scott Fisher juntou-se a esse projeto com o objetivo de incluir nele luvas de dados, reconhecimento de voz, síntese de som 3D, além de dispositivos de feedback tátil (NETTO, 2002).

Figura 4: VIVED, criado por Michael McGreevy (STURMAN, 1994).

A comercialização de produtos de RV se deu pela primeira vez em 1985, quando a empresa VPL Research Inc., da qual Thomas Zimmerman foi um dos fundadores, criou a luva de dados DataGlove, apresentado pela Figura 5, a qual era capaz de captar a movimentação dos dedos e manipular objetos virtuais (CARVALHO, 2002).

(20)

17

Figura 5: Luva de dados Dataglove de Thomas Zimmerman (STURMAN, 1994).

Em 1986 a equipe da NASA já possuía um ambiente virtual que permitia aos usuários ordenar comandos pela voz, escutar fala sintetizada e som 3D, e manipular objetos virtuais diretamente através do movimento das mãos (PIMENTEL, 1995 apud MACHADO, 1995). A partir das experiências da NASA, empresas de informática passaram também a desenvolver programas de pesquisa em RV. Em 1989 a AutoDesk apresentava o primeiro sistema de realidade virtual baseado num computador pessoal (JACOBSON, 1994 apud MACHADO, 1995).

Contudo, a expressão realidade virtual foi proposta nos anos 80 por Jaron Lanier, quando este necessitava de um termo para diferenciar as simulações tradicionais por computação dos mundos digitais que ele tentava criar (MACHOVER, 1994).

2.1.2 Definição

A realidade virtual (RV) proporciona uma experiência imersiva e interativa, que simula um ambiente realístico, baseada em imagens gráficas 3D geradas em tempo real por um computador (PIMENTEL, 1995). As principais características oferecidas pela RV podem ser melhor visualizadas através da Figura 6.

Figura 6: O triângulo da realidade virtual.

(21)

18

As principais áreas em que a RV pode atuar são: jogos e entretenimento;

comunicação à distância; simulação e treinamento; telepresença (interação à distância); e, visualização (científica e de dados 3D).

O conceito de RV abrange diversas modalidades, que diferem entre si pelos níveis de imersão e de interatividade que proporcionam. Esses níveis dependem dos dispositivos de entrada e saída de dados utilizados (capacetes, óculos e luvas de dados), além da velocidade e da potência do computador que suporta o sistema de realidade virtual (JACOBSON, 1994; PIMENTEL, 1995 apud MACHADO, 1995):

a) realidade virtual de simulação originou-se após a Segunda Guerra Mundial com o desenvolvimento nos simuladores de vôo; dentro de uma cabine, telas de vídeo e monitores apresentam um mundo virtual que imita, por exemplo, o interior de um carro, avião ou jato, e reage aos comandos do usuário; em alguns sistemas as cabines são montadas sobre plataformas móveis, podendo também dispor de controles com feedback tátil e auditivo;

b) realidade virtual de projeção criada por Myron Krueger, também é conhecida como realidade artificial; nesse tipo de sistema o usuário está fora do mundo virtual, podendo se comunicar com personagens ou objetos dentro dele e obtendo respostas por meio de sons e efeitos visuais;

c) augmented reality (realidade realçada) utiliza dispositivos visuais conhecidos como heads-up-displays (HUDs); eles são transparentes e presos à cabeça do participante, nos quais os dados são projetados sem que ele deixe de enxergar também o mundo real. Pode-se citar como exemplo, uma situação em que o usuário estaria consertando algo e visualizando, nos óculos, os dados necessários para essa atividade;

d) tele-presença emerge e projeta o usuário no mundo virtual por meio de câmeras de vídeo e microfones; em cirurgias, por exemplo, permite ao médico visualizar o interior do corpo de seu paciente para tomada de decisão;

e) desktop RV (RV de mesa) o mundo virtual é exibido em grandes monitores de vídeo ou telões e visualizado geralmente por meio de óculos 3D conhecidos como lightweight;

(22)

19

f) visually coupled displays (displays visualmente casados) um dispositivo fixado aos olhos e ouvidos que exibe sons e imagens em estéreo que acompanham e se modificam de acordo com os movimentos da cabeça do usuário.

2.1.3 Utilização da Realidade Virtual na Arquitetura

A computação gráfica tem sido o meio mais rápido e eficaz para a representação de ambientes em projetos de arquitetura e urbanismo, permitindo uma melhor compreensão e análise de projeto. A realidade virtual é mais um elemento de auxílio ao usuário na interação em tempo real com modelos tridimensionais de superfícies urbanas, espaços abertos, fechados e quaisquer elementos formadores do espaço urbano, fornecendo uma melhor compreensão do espaço de intervenção (REBELO, 2004). Além disso, os recursos oferecidos atualmente pelas ferramentas que criam estas representações gráficas são inúmeros; elas permitem um melhor acompanhamento dos projetos, através de simulações de luz, de ambiente e de materiais.

Um exemplo do crescimento de novas tecnologias na área em questão é a criação do programa conhecido como ARTHUR (criado pelos Engenheiros do Fraunhofer Institute na Alemanha); ele permite que o projeto receba qualquer tipo de modificação, mostrando seus resultados em tempo real. Essas modificações podem ser realizadas em conjunto, permitindo que todos os envolvidos visualizem como cada uma das mudanças propostas afeta o modelo, e como elas interagem entre si (INOVAÇÃO TECNOLÓGICA, 2004).

Uma área em que a RV vem crescendo bastante é na construção de cenários urbanos; trata-se de um projeto de grande desafio pela alta complexidade geométrica, necessita de uma gestão das bases de dados, que trata da especificação e implementação das várias estruturas de dados, das características geométricas ou não, dos vários objetos, e o seu comportamento dinâmico durante o processo de rendering (renderização). O processo de renderização consiste em transformar a geometria criada, através de um programa gráfico, em imagens de qualidade, aplicando de forma mais precisa e realística os efeitos de iluminação e texturização, já que tais imagens exigem um número alto de cálculos e processamento. Algumas das aplicações relacionadas a projetos de construção

(23)

20

de cenários urbanos são: o planejamento urbanístico, sistemas de navegação automóvel, simulador de catástrofes, impacto ambiental e meteorologia, turismo, educação, entre tantas outras (PIMENTEL, 2001).

Figura 7: Los Angeles virtual exemplo de cenário urbano (PIMENTEL, 2001).

Para projetos como o acima citado, é necessário considerar que um fator importante para a sua realização são os dados oriundos das ferramentas SIG, já que o seu planejamento necessita de imagens fornecidas por satélites com o posicionamento dos objetos urbanísticos e descrições da geometria dos objetos. Essas ferramentas auxiliam na visão da estrutura espacial urbana de modo digital permitindo o intercâmbio de outros dados no desenvolvimento e na execução do projeto, baseado no uso de softwares e hardwares específicos para cada tipo de tarefa (REBELO, 2004).

Na área da arquitetura, a RV está servindo como ferramenta da representação, simulação, exploração e avaliação de projetos, dependendo do interesse ou necessidade (REBELO, 2004). Geralmente, as áreas em que a RV atua, em relação à arquitetura, são:

análise de projeto, projetos colaborativos, análise estrutural e desenho urbano (GRILO, 2001).

A principal vantagem dos modelos arquitetônicos computadorizados deve-se à tridimensionalidade e a disponibilização de diferentes pontos de observação, tanto internos quanto externos. Renderizações e perspectivas podem ser automaticamente geradas com um mínimo de esforço humano. Animações e simulações podem ser geradas empregando o mesmo modelo. O realismo constitui um dos pontos-chave dos modelos gerados por computador, devido à tridimensionalidade, à representação dos elementos arquitetônicos

(24)

21

em escala e à simulação de texturas e efeitos luminosos nas superfícies e volumes, tornando-se, assim, uma ferramenta eficiente de comunicação com os clientes (GRILO, 2001).

O interesse pelo uso da realidade virtual deu-se através do freqüente aumento de usuários e informações disponibilizadas na internet, onde cada vez mais são necessárias novas formas de comunicação e interação (CASSAL, 1999).

Existem várias formas de apresentar conteúdos 3D na web. Como exemplo, podem ser citados o Shockwave 3D e o Fly3D. O Shockwave 3D, criado pela Macromedia, é um plugin que disponibiliza na internet gráficos e animações criadas por ferramentas da Macromedia, apresentando, como maior característica, a não transferência de um grande conjunto de dados através da rede, já que o processador do PC do usuário passa a executar as ações necessárias de processamento das imagens (MACROMEDIA, 2004). Já o Fly3D é um plugin desenvolvido pela Paralelo, que inclui métodos de renderização, som, controle da cena, tarefas de desenho na tela, captura de entrada do teclado e do mouse, simulação física dos objetos na cena 3D, além de uma variedade de ferramentas adicionais que podem ser utilizadas de acordo com a necessidade do programador (FLY3D, 2004).

As linguagens apresentadas a seguir (VRML e X3D) são exemplos de formatos de criação de realidades virtuais que possibilitam a navegação pelo ambiente em tempo real através de navegadores da internet, como o Internet Explorer, que vêm apresentando um maior crescimento quanto à utilização.

2.2 VRML - Virtual Reality Modeling Language

VRML (Linguagem para Modelagem em Realidade Virtual) é uma linguagem textual que possibilita a criação de objetos e ambientes interativos 3D, os quais podem ser aplicados em diferentes áreas como: engenharia, visualizações científicas, títulos educacionais, páginas da internet, apresentações multimídia, entretenimento e mundos virtuais compartilhados (VRML, 2004). Suas características principais estão relacionadas à capacidade de criar objetos 3D (estáticos e animados) e multimídia com hiperlinks para outras mídias tais como sons, textos, imagens e filmes (VRML, 2004).

(25)

22

Arquivos VRML possuem extensão .wrl e podem ser vistos através de um aplicativo auxiliarou um plug-in VRML, localmente ou através da internet.

A idéia de criar essa linguagem surgiu no ano de 1994, em Genebra, na Primeira Conferência sobre World Wide Web com o intuito de levar a realidade virtual para a internet. Assim, seria possível criar ambientes virtuais onde um usuário poderia interagir, passear e visualizar objetos em ângulos diferentes.

2.2.1 Componentes Funcionais

Os componentes funcionais mais importantes para a formação de um arquivo VRML são (BOOK VRML, 2004):

estrutura do grafo de cena;

arquitetura de eventos;

sensores;

scripts e interpolators;

DEF e USE;

prototipagem;

cenas distribuídas;

2.2.1.1 Estrutura do grafo de cena

Arquivos VRML descrevem objetos e mundos 3D utilizando um grafo hierárquico da cena. As entidades no grafo da cena são conhecidas como nós. O VRML define 54 tipos diferentes de nós, incluindo, por exemplo, geometria primitiva, propriedades da aparência, som e vários tipos de nós de agrupamento. Os nós armazenam seus dados nos fields (campos), existindo 20 tipos diferentes que podem ser usados para armazenar os values (valores) necessários para descrever as propriedades da cena (BOOK VRML, 2004).

O grafo da cena é acíclico dirigido. Os nós podem conter outros nós (alguns tipos de nós podem ter o "children") e podem estar contidos em mais de um nó (podem ter mais

(26)

23

de um "parent"), mas um nó não pode conter ele mesmo. Esta estrutura torna fácil a criação de grandes mundos ou objetos complexos no que diz respeito a sua criação (BOOK VRML, 2004).

A geometria do grafo de cena apresenta-se hierárquica e agrupada, podendo, dessa forma, fornecer uma representação audiovisual dos objetos, bem como os nós que participam no mecanismo de geração e distribuição do evento.

O código ilustrado abaixo exemplifica um arquivo VRML:

1 #VRML V2.0 utf8

2 # Exemplo de uma caixa 3 Shape {

4 appearance Appearance { 5 material Material { 6 diffuseColor 1 0 0 7 }

8 }

9 geometry Box { 10 size 1 1 1 11 }

12 }

Figura 8: Exemplo de arquivo VRML.

Figura 9: Código VRML da Figura 10 executado pelo browser Octaga.

A Figura 8 apresenta um código VRML que representa uma caixa (Box). O header (cabeçalho), apresentado na linha 1, é obrigatório em qualquer arquivo VRML; ele é iniciado através do caracter # , além de identificar o arquivo como sendo VRML, sua versão, e o conjunto de caracteres internacional que será utilizado (nesse caso, UTF-8). O

(27)

24

caracter # também representa o início de um comentário, como ilustra a linha 2, e pode ser aplicado em qualquer parte do arquivo. Na linha 3, um nó Shape está sendo representado; ele descreve a geometria da estrutura 3D do objeto e a sua aparência. A aparência (nó appearance, linha 4) descreve propriedades relacionadas ao material e à textura. Na linha 5, o nó material especifica as propriedades materiais da superfície; o campo diffuseColor determina o modo com que a luz reflete sobre a superfície dos objetos para criar a sua cor (linha 6). Por último, na geometria do nó Shape, um cubo é descrito nas linhas 9 a 11, onde são definidos o seu tipo (Box) e suas dimensões (size).

2.2.1.2 Arquitetura de eventos

Alguns nós VRML geram eventos em resposta às mudanças ambientais ou à interação com o usuário. A distribuição de eventos fornece um mecanismo, através do qual estes eventos são propagados para efetuar mudanças em outros nós. Uma vez gerados, os eventos são emitidos a seus destinos, distribuídos em ordem de tempo e processados pelo nó de recepção. Esse processamento pode mudar o estado do nó, gerar eventos adicionais, ou mudar a estrutura do grafo de cena (VRML, 2004).

Cada tipo de nó define os nomes e os tipos de eventos que esse tipo de nó pode gerar ou receber, além das indicações da rota, definindo os trajetos do evento entre geradores do evento e os seus receptores (BOOK VRML, 2004).

Quando as rotas são construídas, mensagens podem ser trocadas entre dois nós.

Tais mensagens, também conhecidas como events (eventos), são emitidas aos nós destinos para serem processadas, podendo mudar o estado do nó, gerar eventos adicionais, ou mudar a estrutura do grafo de cena. Quando um evento é roteado para outro, eles não precisam ter o mesmo nome, mas têm que ser, necessariamente, do mesmo tipo. Uma rota criada entre dois nós, onde o primeiro envia eventos (mensagens) para o segundo, torna possível, por exemplo, quando o usuário passar o mouse ou clicar em um objeto, fazendo com que este gire, mude de cor ou que uma música toque. A criação de rotas envolve um par de nós que serão ligados e uma rota entre os dois nós (VRML, 2004):

ROUTE <nome_nó>.<nome_evento> TO <nome_nó>.<nome_evento>

(28)

25

A maioria dos nós VRML possuem, pelo menos, uma definição eventIn (evento de entrada), podendo, assim, receber eventos. Eventos de entrada são mensagens enviadas por outros nós para modificar algum estado no nó receptor. Alguns nós também possuem eventos de saída (eventOut), usados para enviar mensagens para outros nós, avisando os receptores que algum estado foi modificado no nó remetente (VRML, 2004).

2.2.1.3 Sensores

Sensores são nós que possuem a capacidade de gerar eventos respondendo a ações do usuário ou com o passar do tempo (VRML, 2004). O nó TimeSensor gera eventos com o passar do tempo, sendo indispensável para o comportamento das animações. Outros sensores, como Scripts, são também indispensáveis para a interação com o usuário. Os sensores geram somente eventos; eles devem ser combinados com outros nós através das rotas para apresentar todo o efeito visível na cena (BOOK VRML, 2004).

Estes nós, combinados com outros através das rotas, podem responder gerando eventos adicionais, e assim sucessivamente. Este processo é chamado de cascata de eventos . Alguns sensores geram múltiplos eventos simultaneamente: nestes casos, cada evento gerado inicia uma cascata de eventos diferente (VRML, 2004).

2.2.1.4 Scripts e Interpolators

Freqüentemente, eventos pré-definidos no código VRML e ações realizadas pelo usuário fazem com que mudanças sejam realizas no mundo virtual . Estes tipos de respostas podem ser expressos como nós scripts, que recebem eventos de outros nós, os processam, e depois os emitem a outros nós (VRML, 2004). O nó script é ativado quando recebe um evento. O browser executará então o código contido no campo url do nó script ou o programa referenciado externamente.

Os nós scripts são ativados quando recebem um evento, podendo, para isso, ser introduzidos entre geradores de eventos (geralmente nós sensores) e receptores de eventos (BOOK VRML, 2004). O browser executará então o código contido no campo url do nó

(29)

26

script ou o programa referenciado externamente, que pode ser, por exemplo, um programa ou script criado na linguagem de programação Java. O programa pode executar uma grande variedade de ações incluindo a emissão dos eventos externamente, executando cálculos, e comunicando-se com os usuários.

Quando um evento de entrada chega ao nó, o browser chama a função de mesmo nome. A função recebe como parâmetros o valor do evento e um timestamp que indica, geralmente, quando o evento foi enviado. Para cada campo e evento de saída definido em um nó Script, o browser cria uma variável global com o mesmo nome e o mesmo tipo, para ser usada pelo programa (POLLO, 1997).

...

1 DEF Script Script{

2 eventIn SFTime touchTime 3 url "javascript:

4 function touchTime(){

5 toScript = TRUE;

6 }

7 function eventsProcessed(){

8 string = 'Clicaram na bola!!!!';

9 }"

10 } ...

11 ROUTE TS.touchTime TO Script.touchTime 12 ROUTE Script.string TO Collector.fromString ...

Figura 10: Exemplo de nó Script.

Figura 11: Execução do código completo da Figura 10.

A Figura 10 representa um exemplo de execução de scripts utilizando JavaScript.

Quando o usuário clica no objeto círculo, a mensagem Clicaram na bola!!!! é impressa

(30)

27

no browser. A primeira rota é definida para que, quando o usuário clicar no objeto criado (bola), seja enviada essa informação para o nó Script para que este seja acionado através do true gravado na variável toScript (enquanto o nó TS TouchSensor estiver recebendo true, o script vai sendo executado). Depois disso, outra rota é criada para enviar a frase contida na variável script (Clicaram na bola!!!!) para o nó fromString, que imprimirá na tela essa frase.

Os nós Interpolators são, basicamente, os scripts internos que executam cálculos simples da animação. São combinados geralmente com um TimeSensor e algum nó no grafo da cena para fazer com que os objetos movimentem-se (BOOK VRML, 2004).

2.2.1.5 DEF e USE

O nó DEF permite que o usuário crie nomes para qualquer nó. Quando um nó possui um nome, ele pode ser utilizado posteriormente no arquivo. Como exemplo, no domínio de um laboratório de informática, pode-se imaginar a criação do nome

"computador" para um nó ou grupo de nós usados na construção de um computador. Para inserir cinco computadores em uma bancada, é possível simplesmente reutilizar este nó, sem ter que descrever todo o computador novamente. Pode-se chamar de "nó original aquele nó ao qual um nome foi definido e de instância cada reutilização deste nó. Assim, a definição de um nó que será instanciado é realizada usando-se a palavra-chave DEF; e para que este nó seja utilizado dentro do arquivo utiliza-se a palavra-chave USE ou ROUTE (VRML, 2004). A sintaxe destes comandos é a seguinte:

DEF <nome_do_nó> <tipo_do_nó> { <corpo> } USE <nome_do_nó>

1 #VRML V2.0 utf8 2 DEF Cilindro Shape {

3 geometry Cylinder { height 1 radius .1 } 4 }

5 Transform {

6 translation .5 0 .5 7 children USE Cilindro 8 }

Figura 12: Exemplo de DEF e USE.

(31)

28

Figura 13: Execução do código da Figura 12.

Na Figura 12 foram utilizados os conceitos da definição (DEF) e da instanciação (USE). Assim, na linha 2, foi definido o nome Cilindro para o nó Shape que representa a construção de um Cylinder (cilindro), especificado nas linhas 3 e 4; a sua geometria (linha 3) possui altura (heigth) 1 e raio (radius) 1. Depois de especificado o Cilindro, um nó Transform foi criado (linha 5) para posicionar a nova instanciação do Cilindro, definida como nó filho (children) do nó Transform, (linha 7) nas coordenadas .5, 0 e .5 através do campo translation.

O nó de agrupamento Transform define um sistema de coordenadas locais para os nós filhos, relativo ao sistema raiz ou a qualquer outro (VRML, 2004). Através do nó Transform, pode-se posicionar Shapes em qualquer lugar do mundo VRML. Para cada sistema de coordenadas que utiliza o nó Transform, sua posição é especificada em relação ao sistema de coordenadas do nó pai, que neste caso corresponde às coordenadas iniciais padrão (0, 0, 10). A distância é dada nas coordenadas X, Y e Z, que determina o posicionamento de qualquer Shape. Com isso, a coordenada (1.0, 2.0, 3.0), por exemplo, está 1.0 unidade ao longo do eixo X, 2.0 unidades ao longo do eixo Y e 3.0 unidades ao longo do eixo Z.

2.2.1.6 Prototipagem

Em um arquivo VRML, o uso do mecanismo conhecido como prototipagem permite que o usuário possa criar os seus próprios tipos de nós, definindo dentro dele uma

(32)

29

combinação dos tipos de nós existentes, que podem tornar o VRML mais fácil de ser usado e reduzir o tamanho dos arquivos (BOOK VRML, 2004). A sintaxe para utilização de protótipo é a seguinte (VRML, 2004):

PROTO <nome_do_protótipo> [ <declaração_da_interface> ] { <definição> }

1 #VRML V2.0 utf8

2 PROTO Cubo [ ] {Box {}}

3 DEF Cor ColorInterpolator {

4 key [ 0.0, 0.5, 1.0 ] 5 keyValue [ 1 0 0, 0 1 0, 0 0 1 ] 6 }

7 DEF Relogio TimeSensor { 8 cycleInterval 10.0 9 loop TRUE 10 }

11 Shape {

12 appearance Appearance {

13 material DEF MaterialCubo Material { } 14 }

15 geometry Cubo { } 16 }

17 ROUTE Relogio.fraction_changed TO Cor.set_fraction 18 ROUTE Cor.value_changed TO MaterialCubo.set_diffuseColor

Figura 14: Exemplo de arquivo VRML utilizando rotas e protótipos.

Figura 15: Execução do código da Figura 14.

A Figura 14 exemplifica um modelo no qual há uma caixa que muda de cor com o passar do tempo. Para isso, as definições sobre rotas e protótipos foram aplicadas. Na linha 2, um protótipo foi criado com o nome Cubo; a sua aparência foi definida como uma caixa (Box). Logo depois, duas definições (DEF) foram criadas, sendo que a primeira (Cor) referencia o nó ColorInterpolator (linha 3), inserindo valores (keyValue) do tipo MFColor em uma lista, para produzir o evento value_changed (linha 18) (VRML, 2004). A outra definição criada (linha 7), chamada Relógio , referencia o nó TimeSensor, que gera

(33)

30

eventos com o passar do tempo; este nó será o responsável pela especificação da velocidade em que as cores serão modificadas (cycleInterval) e se esse nó será ativo infinitamente ou não (loop). Depois, um nó Shape é criado (linha 11); foi definido o nome MaterialCubo para o nó Material e a geometria foi especificada como sendo do tipo Cubo (nó criado anteriormente através do protótipo). Até agora, foram criadas apenas partes separadas do mundo VRML que não realizam nenhuma ação separadamente, já que não estão ligadas umas às outras. E para que alguma ação seja disparada, é necessária a troca de mensagens através do uso de rotas, exemplificadas nas linhas 17 e 18 do código.

Na rota da linha 17, o nó Relógio acessa o evento de saída fraction_changed, que envia ao nó destino, dentro de um intervalo fechado [0,1], as frações finalizadas do atual ciclo. O nó Cor recebe o valor do evento de saída do nó anterior (Relógio) através do seu evento de entrada set_fraction, que usa esse valor de entrada na execução do modelo de cores HSV. Já a rota apresentada pela linha 18, possui o nó Cor, o qual emite o evento value_changed do tipo SFColor, que é definido dentro do modelo de cores RGB, para o evento de entrada set_diffuseColor do nó MaterialCubo que estará gravando no objeto Cubo uma nova cor RGB.

2.2.1.7 Cenas distribuídas

Uma grande vantagem do VRML é a possibilidade de construir o mundo virtual através de objetos pré-definidos em arquivos distintos. Essa possibilidade de referenciar nós, criados e definidos em arquivos diferentes, pode ser um recurso interessante, por exemplo: móveis podem estar sendo definidos em arquivos separados (ou, em uma biblioteca de objetos comuns) e que vários mundos (ambientes) virtuais podem utilizar os elementos daquela biblioteca para compor o seu próprio grafo de cena. Duas formas de tornar isso possível é através da utilização dos nós Inline e EXTERNPHOTO. O nó Inline executa o arquivo VRML, indicado através da url, localizado em qualquer local da internet para a construção do mundo virtual, inserindo de vários objetos pré-definidos em uma biblioteca. Sua sintaxe é dada por:

Inline { url "caminho_do_arquivo.wrl"}

(34)

31

Além disso, é possível utilizar protótipos criados em outros arquivos, através da seguinte sintaxe (VRML, 2004):

EXTERNPROTO <nome_protótipo> [ <declaração externa> ] URL ou [ URLs ]

2.2.2 Animação

Para realizar animações é necessário mudar o estado do ambiente com o passar do tempo, o que significa alterar os valores dos campos dos objetos. Para efetuar mudanças de estado nos objetos, alterando seus campos ou propriedades, é preciso enviar um evento (event), através de uma rota (ROUTE), para este campo. O browser VRML é o encarregado por todo o processo de geração e roteamento de eventos durante a navegação (POLLO, 1997).

As animações, em VRML, consistem em enviar eventos seguindo uma seqüência de passos, embora a maior parte das animações possa omitir um ou mais passos. A Figura 16 mostra um diagrama do fluxo de eventos completo em uma animação (POLLO, 1997).

Figura 16: Fluxo de eventos em uma animação.

Os passos ilustrados na figura têm as funções descritas a seguir (HARTMANT, 1996 apud POLLO, 1997):

Disparador (trigger): Geralmente, ele é o sensor que envia um evento quando o usuário executa uma ação específica; ele dá início à animação;

Lógica: para animações simples, esse passo é geralmente desnecessário. Ele realiza um processamento sobre o evento enviado pelo gatilho antes de iniciar o Timer. Para iniciar o estágio de Lógica, o browser passa o evento enviado pelo gatilho para um nó Script, e chama a rotina apropriada dentro do programa especificado naquele nó. O script processa o evento e, geralmente, envia um evento de saída para iniciar o timer;

Disparador Lógica Timer Engine Alvo

(35)

32

Timer (temporizador): o browser repassa os eventos de saída do gatilho ou do estágio de lógica para o campo startTime de um nó TimeSensor. Este sensor gera eventos de tempo por um período determinado ou continuamente até que seja interrompido;

Engine (máquina de execução): o browser envia os eventos de saída do sensor de tempo para um nó ou conjunto de nós que determinam os parâmetros da animação naquele dado momento e geram mais eventos de acordo com esses parâmetros. Um engine consiste, tipicamente, de um nó interpolador, mas pode incluir um nó Script para realizar qualquer tipo de tarefa que seja necessária; e,

Alvo: o browser envia a saída do engine para um nó relevante na hierarquia da cena, cujos campos possam ser modificados de acordo com os valores da saída produzida, alterando o seu estado.

2.2.3 Browser VRML

O browser é responsável pela interpretação, execução e apresentação de arquivos VRML, onde serão exibidos o modelo e sons do grafo de cena. Esta apresentação é conhecida como mundo virtual , onde através de paradigmas de navegação fornecidos pelo browser é possível que o usuário navegue pelo ambiente, explorando e conhecendo suas característica. Em um ambiente arquitetônico, por exemplo, é possível navegar através dos cômodos de uma casa, observando sua decoração.

Além da navegação, o browser fornece um mecanismo que permite uma interação do usuário com o mundo através de nós sensores dentro da hierarquia do grafo de cena. Os sensores respondem à interação do usuário com objetos geométricos no mundo, no movimento do usuário através do mundo, ou com o passar do tempo (VRML, 2004).

(36)

33

Figura 17: Modelo conceitual do browser VRML.

A Figura 17 ilustra o modelo conceitual do browser VRML. O browser é retratado como uma aplicação de apresentação que interage com o usuário nos formulários de seleção de arquivos (explícita ou implícita) e trata de manipulações realizadas pelo usuário na interface. Os três componentes principais do browser são: o parser, o grafo de cena, e a apresentação áudio/visual. O parser lê o arquivo VRML e cria o grafo de cena. O grafo de cena consiste na hierarquia da transformação (os nós) e o grafo de rota. O grafo de cena inclui também o mecanismo de execução, onde os eventos serão processados e propagados através da execução o grafo de rota (que possui as rotas), e fazem mudanças à hierarquia da transformação (nós). O usuário afeta geralmente o grafo de rota (sensores) e o componente da apresentação áudio/visual (navegação). A apresentação áudio/visual executa os grafos e áudio da hierarquia da transformação que é submetida novamente ao usuário (VRML, 2004).

2.3 X3D - eXtensible 3D

Neste trabalho, além dos ambientes virtuais codificados na linguagem VRML, eles também foram codificados na linguagem X3D, com o intuito de comparar suas funcionalidades, diferenças e características visuais. Nesse capítulo, também será abordada

(37)

34

uma breve descrição do motivo pelo qual o XML foi escolhido como formato de arquivo para a criação de arquivos X3D.

O X3D é um padrão aberto, criado para distribuir conteúdo 3D. Ele combina geometria e descrições de comportamentos instantâneos em um simples arquivo que possui inúmeros formatos disponíveis, incluindo o Extensible Markup Language (XML) (XML, 2004). O padrão X3D surgiu da última revisão da especificação ISO VRML97, incorporando os avanços dos recursos disponíveis nos mais recentes dispositivos gráficos tanto quanto melhoras na sua arquitetura (X3D, 2004).

Na criação do X3D, foi aproveitado o trabalho realizado pelo VRML97, utilizando as premissas básicas e estendendo-as para prover uma maior flexibilidade. As mudanças começaram pela especificação, que sofreu um completo ajuste, sendo divididas em três partes: conceitos abstratos; formato de codificação para arquivos; e acesso à linguagem de programação (X3D, 2004). Além dessas, muitas outras modificações ocorreram, onde as principais foram: uma maior precisão com a iluminação e modelo de eventos; expansão das capacidades do grafo de cena; revisão e unificação do modelo da API; múltiplos formatos de codificação são aceitos: VRML, XML e o binário comprimido; e arquitetura modular, permitindo uma faixa de níveis para serem adotados e suportados por diversos tipos de aplicações ou uma plataforma em particular.

A arquitetura modular foi empregada no X3D porque a maioria das aplicações não necessita de todos os seus recursos, tão pouco todas as plataformas suportam a gama de funcionalidades definidas na especificação. Com isso, dois novos conceitos foram adicionados ao XD3: profiles e components. Estes são as novas formas do X3D definir respectivamente extensibilidade e o conjunto de serviços que o conteúdo dos usuários necessita. Os recursos do X3D são agrupados em componentes (components) que podem ser suportados pela implementação ou por uma plataforma em particular definindo uma coleção específica de nós que possui um conjunto de funcionalidades. Um profile é uma coleção de components para um específico nível de suporte. Todos os arquivos X3D requerem a definição do profile que está em uso, na qual pode ser suprida com a requisição de componentes adicionais pelo usuário - ou por níveis maiores que aqueles providos pelo profile. (X3D, 2004).

(38)

35

Figura 18: Profiles definidos no X3D.

Na Figura 18, são apresentados alguns dos perfis (profiles) disponibilizados pelo X3D, que satisfazem a um conjunto variado de exigências. Além destes, existem, ainda:

Core, MPEG4Interactive e CDF (CAD Distillation Format).

2.3.1 X3D e XML

Para o desenvolvimento desse projeto utilizou-se o XML como modo de codificação do X3D; desta forma, toda a sintaxe apresentada sobre o X3D será representada somente através desse formato.

Os nós X3D são conhecidos em XML como elementos e os campos como atributos.

Cada tag começa e termina com suportes dos sinais < e > , respectivamente. O corpo de um nó é incluído entre um par de tags de abertura e de fechamento, onde a tag de fechamento tem a precedência da barra / . Muitas vezes, se nenhum elemento adicional for contido como nó filho (children), uma única tag pode omitir a tag de fechamento do elemento terminando o único elemento com os caracteres /> .

O XML foi adotado como uma das sintaxes X3D com o intuito de resolver problemas reais como (X3D, 2004):

(39)

36

as linguagens de marcação provam ser a melhor solução para o arquivamento, reúso e filtragem de uma grande quantidade de dados;

integração baseada em páginas XML, facilitando o desenvolvimento de páginas web, maximizando a interoperabilidade com outras linguagens da internet;

integração com a futura web, já que os membros do World Wide Web Consortium (W3C) estão se esforçando muito no desenvolvimento do XML; e, suporte a um grande número de ferramentas, como stylesheets que permitem o trabalho em qualquer formato nativo XML, além de transformações para visualização 3D através do Chemical Markup Language (CML), MathML e diversas outras linguagens XML.

Uma característica importante no formato XML do X3D, refere-se às indicações DEF e USE, que são tratadas como atributos. Um atributo USE indica que o nó é uma cópia da referência do nó DEF com o mesmo ID (X3D, 2004). Fazendo uma analogia com a sintaxe XML, a indicação DEF é atribuída ao XML como um atributo ID e USE como um IDREF.

2.3.2 Componentes Funcionais

Um arquivo X3D pode ser composto pelos mesmos componentes funcionais que existem no VRML, além de alguns componentes adicionais, que serão apresentados posteriormente. Primeiramente, será ilustrado, pela Figura 19, o código referente ao primeiro código VRML, apresentado na Figura 8, para que haja uma melhor compreensão das diferenças existentes entre essas duas linguagens:

1 <?xml version="1.0" encoding="UTF-8"?>

2 <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"

"http://www.web3d.org/specifications/x3d-3.0.dtd">

3 <X3D profile='Immersive' xmlns:xsd='http://www.w3.org/2001/XMLSchema-

instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d- 3.0.xsd'>

4 <head>

5 <meta name='filename' content='Exemplo.x3d'/>

6 <meta name='description' content='Exemplo que arquivo X3D.'/>

7 <meta name='created' content='Setembro 2004'/>

8 </head>

9 <Scene>

10 <Shape>

11 <Appearance>

12 <Material diffuseColor='1 0 0'/>

13 </Appearance>

(40)

37

14 <Box size='1 1 1'/>

15 </Shape>

16 </Scene>

17 </X3D>

Figura 19: Exemplo de arquivo X3D.

Figura 20: Código da Figura 19, executado pelo browser Octaga.

Nas linhas 1 e 2 do código, apresentado pela Figura 19, é representado o header de um arquivo X3D, o qual é composto por 2 tags: a primeira identifica o arquivo como sendo XML, sua versão e o conjunto de caracteres internacional UTF-8, já na segunda (linha 2), é declarado o DOCTYPE X3D que especifica o caminho da DTD de validação XML. Na linha 3, o nó raiz X3D é definido; ele identifica o perfil X3D como Immersive e os schemas XML de validação. Entre as linhas 4 e 8, um header opcional é criado; ele pode conter componentes e informações. Nesse caso ele possui um nome (linha 5), uma descrição (linha 6) e uma data de criação (linha 7). Um elemento Scene é definido entre as linhas 9 e 16; ele é um nó raiz que contém um ou mais elementos do grafo de cena; Já entre as linhas 11 e 15, é bastante visível a semelhança entre os nomes dos elementos X3D em relação aos nós do VRML. Portanto, a definição de cada um desses elementos e atributos torna-se desnecessária, já que isso foi realizado na seção 2 do VRML. A partir do parágrafo seguinte, serão apresentadas as sintaxes dos mesmos componentes funcionais explicados no capítulo anterior onde foi apresentada a linguagem VRML, além de alguns outros componentes adicionais.

(41)

38

Para que haja uma melhor compreensão entre as diferenças existentes entre as linguagens VRML e o X3D no que diz respeito à sintaxe, será apresentado, através da Tabela 1, uma relação entre os nós apresentados no item 2.2 desse capítulo.

Tabela 1: Comparativo da sintaxe do VRML e X3D.

VRML X3D

Shape{ } <Shape></Shape>

Appearance{ } <Appearance></Appearance>

Material{ } <Material />

Geometry tipo_geometria{ } <tipo_geometria />

ROUTE <nome_nó>.<nome_evento>

TO <nome_nó>.<nome_evento>

<ROUTE fromNode=' ' fromField=' ' toNode=' ' toField=' '/>

Script { url [ ] } <Script url= />

DEF <nome_do_nó> <tipo_do_nó>{

<corpo> }

<tipo_de_nó DEF= >

</tipo_de_nó>

USE <nome_do_nó> <tipo_de_nó USE= />

Transform { } <Transform></Transform>

PROTO <nome_do_protótipo>[

<declaração_da_interface> ] {

<definição> }

<ProtoDeclare name=' '>

<ProtoInterface></ProtoInterface>

<ProtoBody></ProtoBody>

</ProtoDeclare>

EXTERNPROTO <nome_protótipo> [

<declaração externa> ] URL ou [ URLs ]

<ExternProtoDeclare name=' ' url='" " "http:// "'>

<field name=' '/>

</ExternProtoDeclare>

Inline {url "arquivo.tipo" } <Inline url='"arquivo.tipo"'/>

Além do X3D conter os mesmos componentes funcionais existentes no VRML, ele possui alguns adicionais, como é o caso do EXPORT e IMPORT que servem respectivamente para definir quais os elementos de um arquivo externo que poderão ser importados e, para fazer com que o arquivo externo fique disponível para uso e possíveis distribuições de eventos.

No VRML97, os nós de um mundo virtual adicionado através do comando Inline não são totalmente visíveis ao arquivo que o adicionou, pois aqueles nós nomeados não podem ser referenciados e eventos não podem ser trocados entre eles. O X3D permite a exposição de nós específicos e campos dentro do Inline ao mundo usando IMPORT e EXPORT. Em contrapartida com EXTERNPROTO, que permite o acesso aos campos

Imagem

temas relacionados :