Utiliza˘c~ao de T ecnicas de Realidade Virtual na Simula˘c ... · de Ambientes Virtuais...
Transcript of Utiliza˘c~ao de T ecnicas de Realidade Virtual na Simula˘c ... · de Ambientes Virtuais...
UNIVERSIDADE FEDERAL DE GOIAS – UFG
CAMPUS CATALAO – CaC
DEPARTAMENTO DE CIENCIA DA COMPUTACAO – DCC
Bacharelado em Ciencia da Computacao
Projeto Final de Curso
Utilizacao de Tecnicas de Realidade Virtual naSimulacao de Ambientes Virtuais MultidisciplinaresInterativos. Estudo de caso: Aquecimento Global
Autora: Andrea Alves da Costa
Orientador: Marcio Antonio Duarte
Catalao - 2009
Andrea Alves da Costa
Utilizacao de Tecnicas de Realidade Virtual na Simulacao de Ambientes
Virtuais Multidisciplinares Interativos. Estudo de caso: Aquecimento Global
Monografia apresentada ao Curso de
Bacharelado em Ciencia da Computacao da
Universidade Federal de Goias Campus Catalao
como requisito parcial para obtencao do tıtulo de
Bacharel em Ciencia da Computacao
Area de Concentracao: Computacao Grafica
Orientador: Marcio Antonio Duarte
Catalao - 2009
da Costa, Andrea A.
Utilizacao de Tecnicas de Realidade Virtual na Simulacao de Ambientes
Virtuais Multidisciplinares Interativos. Estudo de caso: Aquecimento
Global/Marcio Antonio Duarte- Catalao - 2009
Numero de paginas: 51
Projeto Final de Curso (Bacharelado) Universidade Federal de Goias, Campus
Catalao, Curso de Bacharelado em Ciencia da Computacao, 2009.
Palavras-Chave: 1. Realidade Virtual. 2. Ambientes Virtuais. 3. Aquecimento
Global
Andrea Alves da Costa
Utilizacao de Tecnicas de Realidade Virtual na Simulacao de Ambientes
Virtuais Multidisciplinares Interativos. Estudo de caso: Aquecimento Global
Monografia apresentada e aprovada em de
Pela Banca Examinadora constituıda pelos professores.
Marcio Antonio Duarte – Presidente da Banca
Alexsandro Santos Soares
Luanna Lopes
Dedico este trabalho em especial aos meus pais e toda a
minha famılia que sempre me deram forca e apoio nos
estudos e me ajudaram a superar as dificuldades para
que pudesse alcancar os meus objetivos.
AGRADECIMENTOS
Em primeiro lugar agradeco a Deus, pelos dons me dados, os quais foram essenciais
para que eu chegasse aonde cheguei.
Aos meus pais, Oly-Mar e Maria de Fatima, pela base, pela educacao, pelo compan-
heirismo, pela forca, pela credibilidade e pelo apoio.
Aos meus irmaos Daniela, Carolina e Oly-Mar, meu muito obrigada.
Ao meu sobrinho Matheus, que mesmo sem saber, e a minha forca para todas as horas.
Aos meus avos, por todo apoio dado durante todos meus anos de estudos.
Aos colegas que por algum motivo nao prosseguiram ate o final do curso com a
gente,mas que continuaram presentes em nossas vidas sempre nos motivando.
A toda minha turma, pela uniao, forca, disposicao, que sempre tivemos durante todo
o curso. Somos vencedores.
Aos meus dois amigos que juntamente comigo formou o trio dinamico, Fabio e Mirian,
pela amizade, pelo apoio, pela uniao, pelos momentos de alegrias e tambem de tristezas
compartilhados durante todo o curso, voces foram fundamentais nessa minha caminhada.
Alem da Marcinha que se juntou a nos para aumentar esse laco de amizade.
Aos demais amigos do curso, que sempre estavam presentes, seja para estudos, para
festas ou para uma conversa, karla Goncalves, Rosangela Alves, Lorena Texeira, entre
tantos outros. Muito Obrigada!
Aos meus amigos Ana Eloısa, Ana Olıvia, Christiane, Jainer, Larissa e Vanessa por
todo apoio, forca, uniao e seguranca transmitida.
As professoras Luanna Lopes e Liliane Nascimento que estiveram sempre dispostas a
ajudar. E aos demais professores pelos conhecimentos passados durante o curso.
A professora Thaise kelly de Lima, pela disposicao e ajuda, tirando algumas duvidas,
durante a realizacao deste trabalho.
Ao meu professor e orientador Marcio Duarte, pela sua dedicacao e disposicao para
comigo neste trabalho.
A todos os meus familiares e amigos que direta ou indiretamente sempre me deram
forca para vencer mais essa batalha, que me mostraram a luz quando achava que havia
somente escuridao, guiando-me sempre que preciso e sempre me aconselhando com as
palavras certas nos momentos em que mais precisava.
A todos voces meus sinceros agradecimentos, muito obrigada...
“O importante e estar pronto para, a qualquer momento,
sacrificar o que somos pelo que podemos vir a ser.
Charles Du Bois
RESUMO
da COSTA, A. A. Utilizacao de Tecnicas de Realidade Virtual na Simulacao
de Ambientes Virtuais Multidisciplinares Interativos. Estudo de caso: Aque-
cimento Global. Curso de Ciencia da Computacao, Campus Catalao, UFG, Catalao,
Brasil, 2009, 51p.
O desenvolvimento desse trabalho visa simular ambientes virtuais multidisciplinares
que apresentem uma interacao entre os elementos da biologia e da quımica para representar
alguns impactos gerados pelo aquecimento global utilizando-se de metodos e tecnicas de
Realidade Virtual. Os ambientes sao representados pelo cenario da biologia e outro pela
quımica, os quais interagem por meio de trocas de informacoes que resultam em alteracoes
no meio ambiente, sendo que a mudanca em um ambiente causa impacto no outro. Para
implementacao destes ambientes foi utilizado tecnicas como a X3D e para interacao entre
interfaces diferentes foi utilizada a SAI.
Palavras-Chaves: Realidade Virtual, Ambientes Virtuais, Aquecimento Global
i
Sumario
1 Introducao 1
1.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Organizacao da Monografia . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Realidade Virtual 5
2.1 Realidade Virtual: Historico e Conceitos . . . . . . . . . . . . . . . . . . . 5
2.2 Dispositivos de Entrada e Saıda (E/S) . . . . . . . . . . . . . . . . . . . . 8
2.2.1 Dispositivos de Entrada . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2 Dispositivos de Saıda . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Realidade Virtual Imersiva e Nao Imersiva . . . . . . . . . . . . . . . . . . 10
2.4 Areas Relacionadas a RV . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.1 Realidade Aumentada (RA) e Realidade Melhorada (RM) . . . . . 11
2.5 Aplicacoes de Realidade Virtual . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5.1 Educacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5.2 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.3 Medicina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.4 Tratamento de Fobias . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5.5 Industrias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5.6 Entretenimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Aquecimento Global 18
3.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Consequencias Globais e no Brasil . . . . . . . . . . . . . . . . . . . . . . . 18
4 Trabalho Desenvolvido e Tecnologias Utilizadas 22
4.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2 Vizx3d/ Vivaty Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3 X3D e o Xj3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.4 SAI (Scene Authoring Interface) . . . . . . . . . . . . . . . . . . . . . . . . 30
ii
4.5 Java e Netbeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.6 Arquitetura do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5 Implementacao 34
5.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2 Geracao dos Ambientes Virtuais . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2.1 Ambiente Virtual da Biologia . . . . . . . . . . . . . . . . . . . . . 34
5.2.2 Ambiente Virtual da Quımica . . . . . . . . . . . . . . . . . . . . . 35
5.3 Aplicacoes Externas(Classes Java) . . . . . . . . . . . . . . . . . . . . . . . 36
5.3.1 AVbiologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3.2 AVquimica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6 Resultados e Dificuldades 39
6.1 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2 Dificuldades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7 Conclusao e Trabalhos Futuros 43
7.1 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Referencias 45
Apendices 47
A Codigo Fonte 48
A.1 Classe AVquımica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
A.2 Classe AVbiologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
A.3 Ambiente Virtual Quımica e Ambiente Virtual Biologia . . . . . . . . . . . 51
iii
Lista de Figuras
1.1 Imagem do filme Toy Store (Primeiro longa metragem em 3D, feito em 1995) 2
2.1 Cartaz de divulgacao do Sensorama . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Exemplo de um Simulador de Voo da Varig . . . . . . . . . . . . . . . . . 8
2.3 Exemplo de Dataglove (Luva de dados) . . . . . . . . . . . . . . . . . . . . 9
2.4 Exemplo de Capacete de Visualizacao . . . . . . . . . . . . . . . . . . . . . 10
2.5 Exemplos de CAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6 Exemplo de aplicacao em Realidade Aumentada . . . . . . . . . . . . . . . 12
2.7 Exemplo de aplicacao em Realidade Melhorada para auxilio de remocao de
tumores cerebrais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.8 Maquina de medir coordenadas . . . . . . . . . . . . . . . . . . . . . . . . 14
2.9 Projeto Oscar Niemeyer Vida e Obra . . . . . . . . . . . . . . . . . . . . . 14
2.10 Sistema de assistencia na remocao de tumor cerebral . . . . . . . . . . . . 15
2.11 Aranha Virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.12 Visualizacao em tempo real do modelo de projeto de uma plataforma . . . 16
2.13 Ambiente do Second Life . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1 Efeito Estufa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1 Ambiente Virtual da Biologia . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2 Ambiente Virtual da Quımica . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3 Grafico Concentracao CO2 x Variacao Temperatura . . . . . . . . . . . . 24
4.4 Janela Inicial do Vizx3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.5 Perfis X3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.6 Exemplo de arquitetura para um navegador X3D . . . . . . . . . . . . . . 30
4.7 Grafo de cena representando uma Casa . . . . . . . . . . . . . . . . . . . 31
4.8 Arquitetura do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.1 Ambientes Virtuais sem Modificacoes . . . . . . . . . . . . . . . . . . . . . 39
6.2 Ambientes Virtuais apos aumentar a concentracao de CO2 pela 1a vez . . . 40
6.3 Ambientes Virtuais apos aumentar a concentracao de CO2 pela 2a vez . . . 40
6.4 Ambientes Virtuais apos aumentar a concentracao de CO2 pela 3a vez . . . 41
iv
6.5 Ambientes Virtuais apos aumentar a concentracao de CO2 pela 4a vez . . . 41
v
Lista de Tabelas
3.1 Possiveis impactos decorrentes do aquecimento global. . . . . . . . . . . . . . . 21
vi
Lista de Codigos
4.3.1 Arquivo de cena codificado em XML . . . . . . . . . . . . . . . . . . . . . 27
4.3.2 Arquivo de cena codificado em VRML Classico . . . . . . . . . . . . . . . . 28
5.3.1 Bibliotecas importadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3.2 Codigo do metodo readableFieldChanged . . . . . . . . . . . . . . . . . . . 38
vii
Capıtulo 1
Introducao
1.1 Motivacao
O aquecimento global refere-se ao aumento da temperatura media dos oceanos e do ar
proximo a superfıcie da Terra, sendo em grande parte causado pela emissao em excesso
de gases de estufa como: gas carbonico (CO2), metano (CH4), oxido nitroso (N2O), os
quais bloqueiam a saıda de radiacao solar, resultando assim no aumento da temperatura
[Belmonte, 2006].
Segundo [Rocha, 2003], o IPCC (Intergovernmental Panel on Climate Change)diz que
os impactos economicos, sociais e ambientais decorrentes do aquecimento global afetarao
todos os paıses, porem, serao sentidos de maneira diferenciada.
Uma forma que vem sendo muito utilizada para expressar fenomenos fısicos e o uso
das tecnicas de Realidade Virtual (RV). No caso do aquecimento global, com o estudo de
suas causas e consequencias, os impactos decorrentes do aumento da temperatura podem
ser melhores visualizados, por meio das tecnicas de RV.
A RV e uma subarea da Computacao Grafica e podemos definir a computacao grafica
como um conjunto de ferramentas e tecnicas para converter dados para um dispositivo
grafico ou de um dispositivo grafico atraves do computador [Correa e Gomes, 2004].
Em 1950, foi quando desenvolveram o primeiro computador com recursos graficos,
chamado de Whirlwind I, o qual foi desenvolvido pela MIT. O Whirlwind foi usado para
desenvolver o SAGE (Semi-Automatic Ground Enviroment), que e um sistema utilizado
para monitorar e controlar voos, e foi desenvolvido em 1955 [Cohen e Mansour, 2006].
O termo Computer Graphics (Computacao Grafica) surgiu em 1959 e foi denominado
por Verne Hudson. Depois disso, foram feitas diversas pesquisas, outras publicacoes foram
lancadas, novas tecnicas criadas, algoritmos desenvolvidos, incremento de animacoes, entre
outros, os quais ainda sao utilizados atualmente [Correa e Gomes, 2004].
Podemos citar como exemplos que utilizaram tecnicas de computacao grafica os se-
1
guintes filmes: Jurassic Park, Exterminador do Futuro 2, Toy Story, Shrek, entre outros.
Na Figura 1.1 e apresentada uma imagem do filme Toy Store.
Figura 1.1: Imagem do filme Toy Store (Primeiro longa metragem em 3D, feito em 1995)
[Brown, 1999]
A computacao grafica engloba algumas subareas, entre elas [Azevedo e Conci, 2003]:
• Sıntese de Imagens: considera a criacao sintetica das imagens, ou seja, as representacoes
visuais de objetos criados pelo computador a partir das especificacoes geometricas
e visuais de seus componentes.
• Processamento de Imagens: considera o processamento das imagens na forma digital e
suas transformacoes.
• Analise de Imagens: considera as imagens digitais e as analisa para obtencao de carac-
terısticas desejadas.
Ja a RV pode ser definida de forma simples, como sendo a forma mais avancada de
interface entre usuario e o computador ate agora disponıvel [Siqueira, 2005].
A RV permite que informacoes em um computador sejam manipuladas e visualizadas
atraves de tecnicas e artifıcios que reproduz a realidade em outro meio.
Atraves das tecnicas de RV e possıvel a criacao de ambientes virtuais interativos que
representam disciplinas diferentes, a chamada multidisciplinaridade, que e a interacao
entre duas ou mais disciplinas, transferindo metodos de uma disciplina a outra. A imple-
mentacao desses ambientes pode ser feita utilizando umas dessas linguagens:
• OpenGL (Open Graphics Library) e uma multi-linguagem destinada a produzir graficos
3D com bastante realismo e e uma API (Application Programming Interface) grafica.
A OpenGL trabalha com bibliotecas, e nao com dispositivos de entrada grafica. E
bastante utilizada no desenvolvimento de cenas tridimensionais complexas, e muito
popular na industria de vıdeo-games [Tori et al., 2006b].
2
• VRML (Virtual Reality Moldelling Language ou Linguagem de Modelagem de Reali-
dade Virtual) e uma linguagem interpretada utilizada para modelagem de objetos
e ambientes tridimensionais na Web, com interacao direta com o usuario atraves
de sensores, interpoladores e criacao de animacoes usando scripts. Nela pode-se
navegar, ver objetos sob diversos angulos e interagir com eles, caracterıstica mais
marcante dessa linguagem [Bramorski e Marques, 1998]. E uma linguagem de facil
entendimento e que exige pouco esforco computacional.
• X3D (Extensible 3D) - E um padrao aberto para distribuicao de conteudo 3D, que
combina geometrias e descricoes de comportamento instantaneos em um simples
arquivo que possui diversos formatos de arquivos disponıveis.
O sistema proposto simula um ambiente virtual multidisciplinar interativo, o qual
faz uso das tecnicas de RV. Como exemplo pratico da comunicacao entre os ambientes,
e apresentada uma interacao entre os elementos da Biologia e da Quımica, tendo como
resultado os impactos gerados pelo aquecimento global, que e o resultado da mudanca em
um ambiente e o seu impacto no outro.
1.2 Objetivos
Este trabalho tem como objetivo principal o estudo de ambientes virtuais interativos
entre si, onde facam troca de parametros interferindo nas cenas de um e outro. Para isto
tem-se como objetivos secundarios os seguintes itens:
• Estudo das linguagens de programacao: VRML, X3D e Java;
• Estudo da API SAI;
• Estudo de tecnicas de RV;
• Simular um pequeno impacto relativo ao aquecimento global para evidenciar o uso de
ambientes distribuıdos interativos;
1.3 Organizacao da Monografia
O trabalho e composto por 7 Capıtulos, onde o primeiro e a introducao.
No Capıtulo 2 e mostrado um pouco da historia de RV, conceitos, tipos de dispositivos
utilizados, tipos de realidade virtual: imersiva e nao imersiva, areas relacionadas a RV
como a Realidade Aumentada e Realidade Melhorada, alem de algumas aplicacoes de RV.
No Capıtulo 3 faz-se uma introducao ao assunto aquecimento global, como ele e cau-
sado, algumas consequencias ambientais globais assim como tambem no Brasil, e uma
3
tabela com provaveis impactos ambientais, economicos e sociais causados pelo aqueci-
mento global.
No Capıtulo 4 e apresentado o trabalho, mostrando como os ambientes virtuais foram
gerados, neste capıtulo tambem sao apresentadas as tecnologias utilizadas durante esse
trabalho, que sao o Vizx3D, Vivaty Studio, x3D, xj3D, SAI, Java e o NetBeans, alem da
arquitetura proposta e detalhes do processo.
No Capıtulo 5 e apresentada a implementacao do Sistema.
No Capıtulo 6 sao apresentados resultados e dificuldades encontradas.
Por fim, no Capıtulo 7 sao sintetizadas as conclusoes obtidas com o desenvolvimento
do trabalho e sugestoes para trabalhos futuros. Os codigos sao apresentados no Anexo
A.
4
Capıtulo 2
Realidade Virtual
2.1 Realidade Virtual: Historico e Conceitos
O uso de computadores pessoais se torna cada dia mais popular, devido ao seu custo
estar mais acessıvel, entre outras coisas. Alem do aumento no uso de computadores
pessoais tambem houve uma grande evolucao dos estudos na area da informatica, surgindo
novas tecnologias aplicadas a essa area, dentre as quais podemos citar a Realidade Virtual
(RV).
O termo RV foi cunhado no final da decada de 1980 por Jaron Lanier, artista e cientista
da computacao que conseguiu convergir dois conceitos antagonicos em um novo e vibrante
conceito capaz de captar a essencia dessa tecnologia: a busca pela fusao do real com o
virtual [Tori et al., 2006a].
Ha diversas definicoes para o termo Realidade Virtual, uma delas e a definicao citada
por [Kirner e Siscoutto, 2007], onde :
“Realidade Virtual e uma interface avancada para aplicacoes computacionais, que per-
mite ao usuario navegar e interagir, em tempo real, com um ambiente tridimensional
gerado por computador, usando dispositivos multisensoriais“.
Outra definicao e “o uso de computadores e interfaces com o usuario para criar efeito
de mundos tridimensionais que incluem objetos interativos com uma forte sensacao de
presenca tridimensional“ [Bryson, 1996].
A RV tem como caracterıstica a visualizacao, manipulacao e a interacao, do usuario
com o Ambiente Virtual (AV), onde o usuario podera se movimentar e interagir com o
ambiente.
Na pratica a RV permite que o usuario navegue e observe um mundo tridimensio-
nal, em tempo real e com seis graus de liberdade (6DOF). Isso exige a capacidade do
software de definir e a capacidade do hardware de reconhecer, seis tipos de movimentos:
para frente/para tras, acima/abaixo, esquerda/direita, inclinacao para cima/para baixo,
5
angulacao a esquerda/a direita e rotacao a esquerda/a direita. Na essencia, a RV e um
espelho da realidade fısica, na qual o indivıduo existe em tres dimensoes, tem a sensacao
do tempo real e a capacidade de interagir com o mundo ao seu redor. Os equipamentos de
RV simulam essas condicoes, chegando ao ponto em que o usuario pode tocar os objetos
de um mundo virtual e fazer com que eles respondam, ou mudem, de acordo com suas
acoes [Schweber e Schweber, 1995].
Devemos citar tambem a ideia dos tres I’s, que sao: Interacao, Imersao e Imaginacao,
onde a Interacao diz respeito a capacidade do usuario poder estar interagindo com o
ambiente virtual e essa interacao deve ser reconhecida pelo computador, o qual fara as
devidas mudancas (atualizacoes) no ambiente. A Imersao e o sentimento de estar presente
naquele mundo virtual, essa e possıvel com a utilizacao de alguns dispositivos de RV. E
a Imaginacao, que vai depender de cada usuario, do envolvimento de cada um com o
ambiente.
A interacao entre usuario e o ambiente e feita por dispositivos, com a utilizacao desses
dispositivos e possıvel movimentar, manipular e se comunicar com o ambiente.
Para maior sentimento de imersao e interacao sao usados alguns dispositivos como
joystick (controle), capacetes de visualizacao, datagloves (luvas de dados) e oculos 3D, o
que faz com que os usuarios tenham uma maior sensacao de presenca naquele ambiente
tanto na visualizacao quanto na interacao com os objetos, atraves da manipulacao dos
mesmos.
Pode-se dividir os dispositivos utilizados em um sistema de RV em duas categorias:
dispositivos de entrada e dispositivos de saıda, sendo eles responsaveis por toda comu-
nicacao usuario-sistema. Os dispositivos de entrada procuram captar movimentos e acoes
do usuario para alimentar o sistema de RV, que retornara o resultado do processamento
desta interacao, na forma de estımulos a pelo menos um dos cinco sentidos humanos,
atraves dos dispositivos de saıda. Estes dispositivos sao especıficos para que o sistema
de RV possa prover um meio intuitivo de comunicacao usuario-sistema. No entanto,
grande parte dos sistemas de RV integra tambem dispositivos convencionais, como mouse
e teclado. Na maioria das vezes estes sao utilizados para selecionar menus e objetos ou
navegar pelo ambiente [Machado e Cardoso, 2006].
A RV iniciou-se na decada de 1950, nessa mesma decada foram criados simuladores
de voo pela Forca Aerea dos Estados Unidos, logo apos a Segunda Guerra Mundial.
Teve tambem a criacao do Cinerama e de um simulador chamado Sensorama, o qual foi
patenteado em 1962 por Morton Heilig, o que foi um grande passo dado nessa epoca.
O Sensorama era uma especie de cabine que combinava filmes 3D, som estereo, vi-
bracoes mecanicas, aromas e ar movimentado por ventiladores; tudo isso para proporcio-
nar ao espectador uma viagem multisensorial [Netto et al., 2002]. Na Figura 2.1 tem-se
um cartaz de divulgacao do Sensorama.
6
Figura 2.1: Cartaz de divulgacao do Sensorama
[Kirner et al., 2006]
Depois disso foram desenvolvidos outros trabalhos, como por exemplo, o Ambiente
Virtual pertencente a equipe da NASA.
No final de 1986 a equipe da NASA ja possuıa um AV que permitia aos usuarios
ordenar comandos pela voz, escutar fala sintetizada e som 3D, e manipular objetos virtuais
diretamente por meio do movimento das maos. O mais importante e que esse trabalho
permitiu verificar a possibilidade e comercializacao de um conjunto de novas tecnologias,
tornando mais acessıvel o preco de aquisicao e desenvolvimento. A conscientizacao de que
os empreendimentos da NASA poderiam gerar equipamentos comercializaveis deu inıcio
a inumeros programas de pesquisa em RV no mundo inteiro. Desde firmas de softwares
ate grandes corporacoes de informatica comecaram a desenvolver e a vender produtos e
servicos voltados para RV. Em 1989 a AutoDesk apresentou o primeiro sistema de RV
para computadores pessoais (PC) [Jacobson, 1994].
Na decada de 1990, militares e industrias comecaram investir macicamente no desen-
volvimento de simuladores de voo e com isso, tornaram o treinamento de pilotos mais
barato e seguro em relacao aos problemas de um voo real. Estes simuladores se limitavam
a uma cabine construıda sobre uma plataforma movel e possuıam caracterısticas como
mudanca de nıvel e movimentos. Mais tarde tambem foram criados simuladores para
tanques e navios de guerra. Os simuladores de voo foram as aplicacoes mais influentes na
historia da RV e hoje e possıvel, ate mesmo para usuarios domesticos, pilotar, pousar ou
ate mesmo participar de um combate virtual em um simulador de voo. Na Figura 2.2 e
apresentado um exemplo de um Simulador de Voo da Varig.
7
Figura 2.2: Exemplo de um Simulador de Voo da Varig
[Ribeiro, 2009]
Houve um grande crescimento no numero de aplicacoes, aumentando tambem o estudo
na area e melhorando o desenvolvimento, fazendo com que a busca por essa tecnologia
seja maior e os precos tendem a ficarem mais acessıveis a um maior numero de pessoas.
2.2 Dispositivos de Entrada e Saıda (E/S)
2.2.1 Dispositivos de Entrada
Fazem a comunicacao entre o usuario e o sistema, atraves deles o usuario pode exercer
alguma acao, onde essa acao sera transformada em dados para o sistema. Ha dois tipos
de dispositivos de entrada que sao: interacao ou rastreamento.
Dispositivos de interacao permitem ao usuario a movimentacao e manipulacao de
objetos no mundo virtual, de forma direta ou indireta [Machado e Cardoso, 2006]. Temos
alguns tipos de dispositivos de interacao como:
• Dispositivo com 6DOF que permite seis tipos de movimentacoes, as quais foram citados
nesse trabalho;
• Luva de Dados, que capta os movimentos dos dedos da mao do usuario e os transmite
para o computador fazendo assim o reconhecimento;
• Sensores de Entrada Biologicos, que seria, por exemplo, entrada por comando de voz
enviadas para o computador e entao faria o reconhecimento.
Dispositivos de rastreamento monitoram movimentos de parte do corpo do usuario,
para criar a sensacao de presenca no mundo virtual. Assim ao movimentar-se o usuario
tem seu deslocamento reconhecido pelo dispositivo e uma atualizacao do ambiente virtual
e efetuada. Podemos citar entre esses dispositivos [Machado e Cardoso, 2006]:
8
• Dispositivo de Rastreamento Mecanicos, os quais consistem de uma serie de estruturas
cinematicas que, em paralelo, sao capazes de detectar alteracoes da posicao dos
elementos aos quais se encontram conectados;
• Dispositivo de Rastreamento Magnetico sao capazes de efetuar medicoes do campo
magnetico produzido por um transmissor estacionario para determinar, em tempo
real, a posicao do receptor (que esta em movimento);
• Dispositivo de Rastreamento Ultrassonicos nao entram em contato com o usuario e usam
um sinal ultrassonico, produzido por um transmissor estacionario para determinar
a posicao do objeto em tempo real em funcao da mudanca de posicao do receptor.
Na Figura 2.3 tem-se um exemplo de dispositivo de entrada de dados, a luva de dados,
usadas para captar o movimento dos dedos da mao do usuario.
Figura 2.3: Exemplo de Dataglove (Luva de dados)
[Henke, 2007]
2.2.2 Dispositivos de Saıda
Esses dispositivos retornam informacoes para o usuario estimulando os seus sentidos,
como por exemplo, a visao.
Dentre os dispositivos de saıda de dados temos os seguintes:
• Dispositivos Visuais os quais podem ser subdivididos em de visualizacao individual e de
visualizacao coletiva. Podemos definir como dispositivo de visualizacao individual:
os Vıdeos Capacetes (HMD - Head-Mounted Display), que tambem funciona como
dispositivo de entrada, alem disso, isola o usuario do mundo real e os Head-Coupled
Display, o qual e montado sobre um braco mecanico e permite seis graus de liber-
dade. Ja os dispositivos de visualizacao coletiva seriam: Monitores e Sistemas de
Projecao, os quais nos retornam as informacoes atraves de um monitor ou atraves
9
do uso de um projetor podendo assim ter a participacao de varias pessoas ao mesmo
tempo;
• Dispositivos Auditivos como o proprio nome ja indica, sao dispositivos utilizados para
a geracao de som para o usuario;
• Dispositivos Fısicos estao relacionados com o tato e requerem que dispositivos eletro-
mecanicos sejam colocados em contato com o corpo do usuario. Podemos subdividi-
los em:
• Dispositivos Hapticos que estao relacionados a questao da sensacao de tato e/ou
forca quando algum elemento do ambiente virtual e manipulado;
• Dispositivos de Resposta Termica que e quando o usuario manipula algum ele-
mento do ambiente virtual, ele pode sentir uma sensacao termica (fria ou
quente) na parte do seu corpo;
• Plataformas Moveis que fornecem ao usuario a sensacao de movimento.
Na Figura 2.4, e mostrado um exemplo de capacete de visualizacao, que e um dispositivo
de saıda, para sistemas de RV.
Figura 2.4: Exemplo de Capacete de Visualizacao
[Kirner et al., 2006]
2.3 Realidade Virtual Imersiva e Nao Imersiva
Podemos considerar a Realidade Virtual como imersiva ou nao imersiva. Diremos
que a realidade virtual e imersiva quando o usuario tem a sensacao que esta dentro do
ambiente virtual, para isso e utilizado capacetes, sala de projecoes chamadas de CAVE
(Cave Automatic Virtual Environment), entre outros, para a visualizacao do ambiente
10
virtual, como por exemplo na Figura 2.5 que mostra uma CAVE . Caso contrario sera
considerado nao-imersiva, a RV nao-imersiva utiliza-se de monitores por se basear em
computadores pessoais.
Embora a RV com o uso de capacetes tenha evoluıdo e seja considerada tıpica, a RV
com monitor apresenta ainda assim alguns pontos positivos como: utilizar plenamente to-
das as vantagens da evolucao da industria de computadores, evitar as limitacoes tecnicas
e problemas decorrentes do uso de capacete e facilidade de uso. Em alguns casos, como
visualizacao, por exemplo, a RV com monitor e aceitavel, mas com a evolucao da tecno-
logia de RV a tendencia sera a utilizacao de capacetes ou salas de projecao para a grande
maioria das aplicacoes [Kirner e Pinho, 1997].
Figura 2.5: Exemplos de CAVE
[Kirner et al., 2006]
2.4 Areas Relacionadas a RV
2.4.1 Realidade Aumentada (RA) e Realidade Melhorada (RM)
RA e RM sao subconjuntos da Realidade Virtual, as quais proporcionam um aumento
do desempenho humano em suas atividades por utilizar tecnologias diferentes.
A Realidade Aumentada e quando trazemos objetos do mundo virtual para o mundo
real. A RA pode ser definida de varias maneiras como, por exemplo:
• E o enriquecimento do ambiente real com objetos virtuais, usando algum dispositivo
tecnologico, funcionando em tempo real[Kirner et al., 2006];
• E a mistura de mundos reais e virtuais em algum ponto da realidade, virtualidade
contınua que conecta ambientes completamente reais a ambientes completamente
virtuais[Kirner et al., 2006];
• E um sistema que suplementa o mundo real com objetivos virtuais gerados por computa-
dor, parecendo coexistir no mesmo espaco e apresentando as seguintes propriedades
[Kirner et al., 2006]:
11
• Combina objetos reais e virtuais no ambiente real;
• Executa interativamente em tempo real;
• Alinha objetos reais e virtuais entre si;
• Aplica-se a todos os sentidos, incluindo audicao, tato , forca e cheiro.
Na Figura 2.6 e mostrado um exemplo de aplicacao em RA, onde o usuario, com o uso
de um capacete de visualizacao, observa o objeto virtual, que aparece sobre o marcador.
Figura 2.6: Exemplo de aplicacao em Realidade Aumentada
[Fernandes, 2005]
A Virtualidade Aumentada, e quando o ambiente que predomina e o Virtual, e ocorre
a insercao de elementos reais dentro do ambiente virtual. Pode-se dizer que a Reali-
dade Melhorada e uma variacao do sistema de realidade aumentada, onde um sistema de
processamento de imagem gera informacoes adicionais para serem sobrepostas a ima-
gem real. O resultado final pode ser tanto uma melhoria espectral quanto espacial,
gerando transformacoes e anotacoes sobre a imagem. A geracao de imagens obtidas
atraves de ampliacao do espectro visıvel do olho humano e a anotacao de caracterısticas
especıficas dos objetos como distancia, tipo, etc., sao exemplos para melhoria de uma
imagem [Kirner e Pinho, 1997].
Basicamente, a diferenca entre RA e RM e que, na primeira, a realidade e suplemen-
tada por ambientes sintetizados pelo computador, enquanto que na segunda a realidade e
suplementada por ambientes gerados por meio de uma combinacao de vıdeo e computacao
grafica [Araujo, 1996].
Na Figura 2.7 e apresentado um exemplo de aplicacao em Realidade Melhorada para
auxılio de remocao de tumores cerebrais.
12
Figura 2.7: Exemplo de aplicacao em Realidade Melhorada para auxilio de remocao de
tumores cerebrais
[Kirner et al., 2006]
2.5 Aplicacoes de Realidade Virtual
As aplicacoes de Realidade Virtual abrangem diversas areas, com aplicacoes cada vez
mais sofisticadas, como pode ser visto algumas delas a seguir.
2.5.1 Educacao
A utilizacao de aplicacoes de RV na area da educacao esta ganhando cada vez mais
espaco. A utilizacao desse recurso na sala de aula pode facilitar o aprendizado, aumentar
o interesse do aluno, melhorar o seu desempenho, entre outros. Afinal, e bem mais
interessante, por exemplo, aprender formas geometricas utilizando um ambiente virtual,
seja atraves de um jogo ou quem sabe ate utilizar a RA para mostrar em aula essas formas
geometricas, do que apenas ver em um livro ou um desenho no quadro negro. A interacao,
o envolvimento utilizado em RV faz com que se prenda mais a atencao do aluno, alem do
mais e sempre bom sair da rotina.
A RV tem potencial para propiciar uma educacao como processo de exploracao, desco-
berta, observacao e construcao de uma nova visao do conhecimento, oferecendo ao apren-
diz a oportunidade de melhor compreensao do objeto de estudo. Essa tecnologia, portanto,
tem potencial de colaborar no processo cognitivo do aprendiz, proporcionando nao apenas
a teoria, mas tambem a experimentacao pratica do conteudo em questao, de forma similar
ao que ocorre com o uso de laboratorios didaticos [Cardoso e Lamonier, 2004], Na Figura
2.8 um exemplo de ambiente virtual, que possui uma maquina de medir por coordenadas,
usada para medida de pecas mecanicas de alta precisao e esse ambiente virtual pode ser
usado por estudantes de engenharia.
13
Figura 2.8: Maquina de medir coordenadas
[Kirner et al., 2006]
2.5.2 Arquitetura
O uso de RV facilitaria o trabalho do arquiteto ou do egenheiro, pois podem utilizar RV
para construir um ambiente virtual, pelo qual o cliente visualiza o projeto e caso queira que
faca alguma mudanca, as alteracoes desejadas serao feitas de forma mais rapida, pratica
e com menor custo. Na Figura 2.9 e mostrado um ambiente virtual que representa a
estrutura de uma das criacoes de Oscar Niemeyer.
Figura 2.9: Projeto Oscar Niemeyer Vida e Obra
[Kirner et al., 2006]
2.5.3 Medicina
Um exemplo de aplicacao na area medica seria em cirurgias.
A RV aplicada a cirurgia abrange uma serie de situacoes que vao desde o planejamento
de um procedimento ate o treinamento de tecnicas e a assistencia para a sua realizacao.
Dessa forma, um grande numero de pessoas podem ser beneficiadas com a utilizacao destes
sistemas, pois havera maior qualidade no servico oferecido aos pacientes uma vez que os
profissionais que os atenderao estarao melhor preparados [Machado, 2004].
Alem de cirurgias tambem podemos citar: estudo de anatomia, estudo de celulas e
tecidos, etc. Na Figura 2.10 e mostrado um sistema de auxılio na remocao de tumores
14
cerebrais.
Figura 2.10: Sistema de assistencia na remocao de tumor cerebral
[Kirner et al., 2006]
2.5.4 Tratamento de Fobias
Existem grandes variedades de fobias, seja por aranha, altura, elevador entre outros. A
RV pode ser utilizada como uma alternativa para o tratamento de tais fobias. Um exemplo
e alguem que tenha medo de andar de elevador, entao seria construıdo um sistema, no
qual seria simulado dentro de um elevador e sua movimentacao. E para maior realidade e
necessario que seja um sistema imersivo no qual a pessoa sente-se como estivesse realmente
dentro de um elevador. A aracnofobia, e outro tipo de fobia, de quem tem medo de
aranhas. Uma tecnica utilizada para esse tipo de tratamento e o uso da RV e RA, onde
aranhas virtuais sao criadas e o paciente e submetido a um ambiente com essas aranhas
virtuais, com o uso das tecnicas de RV e RA. Na Figura 2.11 e mostrada uma aranha
virtual usada para esse tipo de tratamento.
Figura 2.11: Aranha Virtual
[Tiraboschi, 2007]
2.5.5 Industrias
Diversas empresas tem utilizado a RV em campos como automacao de projetos, venda e
marketing, planejamento e manutencao, treinamento e simulacao,concepcao e visualizacao
15
de dados [Netto, 2002].
Dentre suas varias utilizacoes, a RV pode ser utilizada em industrias para [Netto, 2002]:
• Projetar maquinas que podem ter suas propriedades estruturais e funcionais avaliadas
e testadas;
• Desenvolver uma ergonomia funcional e confiavel sem a necessidade de construir um
modelo em escala real;
• Projetar produtos que possuam design estetico segundo as preferencias de cada cliente;
• Facilitar operacoes remotas e controle de equipamentos (tele-manufatura e tele-robotica);
• Garantir que os equipamentos fabricados estejam dentro das normas estabelecidas por
orgaos governamentais;
• Desenvolver e avaliar processos que assegurem a manufaturabilidade, sem produzir de
fato o produto em escala comercial;
• Desenvolver planos de producao e itinerarios e simular se esses estao corretos;
• Educar empregados em tecnicas avancadas de manufatura, com enfase, principalmente,
em seguranca no trabalho.
Na Figura 2.12 e mostrado um modelo de projeto de uma plataforma, para exploracao e
producao de petroleo.
Figura 2.12: Visualizacao em tempo real do modelo de projeto de uma plataforma
[Kirner e Tori, 2004]
16
2.5.6 Entretenimento
Uma area que esta em alta, e se tornando cada dia mais comum e a do entretenimento.
As tecnicas de RV utilizadas na criacao de jogos fazem com que atualmente o gosto
de adolescentes e jovens pelos jogos cresca cada dia mais, com isso aumenta tambem o
investimento na area.
Outras aplicacoes nessa area de entretenimento sao: criacao de filmes, desenhos, pro-
pagandas, entre outras. As tecnicas de RV estao sendo muito utilizadas tambem em
programacao de canais, como por exemplo: transmissao de corrida, como a stock car,
para fazer propaganda durante a corrida, e mostrado imagens, com placa e com a propa-
ganda do produto, porem, essas sao propagandas virtuais colocadas junto com a imagem
real, mas parece que sao reais.
Na Figura 2.13 e mostrado um ambiente do Second Life, que e um jogo que utiliza
tecnicas de RV.
Figura 2.13: Ambiente do Second Life
[Costa, 2008]
17
Capıtulo 3
Aquecimento Global
3.1 Introducao
O tema, aquecimento global, esta sendo bastante discutido nos ultimos anos, devido as
mudancas no clima mundial. Essas mudancas geram grandes preocupacoes por causa das
consequencias negativas geradas por elas. Assim o aquecimento global se torna o maior
desafio ambiental da atualidade.
O CO2, dioxido de carbono, e o CH4, metano, sao grandes responsaveis pelo aqueci-
mento global, pois formam uma camada de poluentes, dificultando a dispersao do calor,
aumentando assim o calor retido na atmosfera e causando o Efeito Estufa [Belmonte, 2006].
O efeito estufa ocorre quando parte dos raios solares que sao refletidos pela superfıcie
terrestre ficam retidos na atmosfera por alguns gases como, por exemplo, o dioxido de
carbono (CO2). Dentro de uma determinada faixa o efeito estufa e de suma importancia,
pois e atraves dele que parte do calor e retido na atmosfera e nos da condicoes de vida.
Porem como esta cada vez maior a emissao desses gases de efeito estufa na atmosfera, o
calor retido na atmosfera consequentemente aumenta, provocando assim um desequilıbrio
ambiental. Podemos ver como funciona esse efeito na Figura 3.1.
Os maiores responsaveis por esse desequilıbrio ambiental e, consequentemente, o aque-
cimento global, sao os homens, atraves das suas atividades.
3.2 Consequencias Globais e no Brasil
Em [Rocha, 2003], diz que os impactos economicos, sociais e ambientais decorrentes
do aquecimento global afetarao todos os paıses, porem, serao sentidos de maneira diferen-
ciada. Como por exemplo, enquanto em uma certa regiao pode-se aumentar a producao
agrıcola, em outra regiao podera diminuir a producao agrıcola, vai variar de regiao para
regiao.
18
Figura 3.1: Efeito Estufa
[Gomes, 2007]
Alguns desses impactos economicos, sociais e principalmente ambientais ja podem ser
percebidos, dentre os impactos percebidos tem-se:
• Aumento do nıvel dos oceanos: com o aumento da temperatura no mundo, esta em curso
o derretimento das calotas polares. O nıvel do mar aumenta com o derretimento do
gelo glacial, aquele formado pela precipitacao de neve e que esta sobre continentes
e ilhas na Antartica, na Groenlandia, nas ilhas articas e nas geleiras de montanhas.
Geleiras de montanhas extrapolares estao desaparecendo. Ao o nıvel das aguas
dos oceano, pode ocorrer, futuramente, a submersao de muitas cidades litoraneas
[Belmonte, 2006].
• Crescimento e surgimento de desertos: o aumento da temperatura provoca a morte de
varias especies animais e vegetais, desequilibrando varios ecossistemas. Somando ao
desmatamento que vem ocorrendo, principalmente em florestas de paıses tropicais
(Brasil, paıses africanos), a tendencia e aumentar cada vez mais as regioes deserticas
em nosso planeta [Belmonte, 2006];
• Aumento de furacoes, tufoes e ciclones: o aumento da temperatura faz com que ocorra
maior evaporacao das aguas dos oceanos, potencializando estes tipos de catastrofes
climaticas [Belmonte, 2006];
• Grandes secas afetaram a regiao amazonica, fazendo com que aumentasse o numero de
19
queimadas, o que aumenta a quantidade de emissao de gases de efeito estufa criando
assim um ciclo vicioso, nıvel dos rios abaixo do normal devido a falta de chuvas,
entre outros [Belmonte, 2006];
• Na Costa brasileira, podemos citar como uma consequencia do aquecimento global, por
exemplo, o furacao formado nas aguas do oceano atlantico, na regiao de Santa Ca-
tarina em 2004, o qual foi chamado de Catarina e causou grandes desastres naquela
regiao como mortes, destruicao, entre outras coisas. Alem disso, pode constatar o
aumento do nıvel do mar, dentre outros [Belmonte, 2006];
• Na Regiao Sul, podemos notar os extremos, que e a seca e tempestades, ou esta muito
quente ou esta tendo uma tempestade, nao tem meio termo na maior parte do
tempo, o que causa prejuızo ao produtor [Belmonte, 2006].
A Tabela 3.1 resume algumas previsoes desses impactos em diversas regioes do mundo.
20
Regiao Provaveis Impactos
1.Africa a. Diminuicao da producao agrıcola
b. Diminuicao da disponibilidade de agua na regiao do Medi-
terraneo e em paıses do Sul
c. Aumento dos vetores de diversas doencas
d. Aumento da desertificacao
e. Extincao de animais e plantas
2.Asia a. Diminuicao da producao agrıcola
b. Diminuicao da disponibilidade de agua nas regioes arida e semi-
arida
c. Aumento do nıvel do mar devera deslocar dezenas de milhoes de
pessoas
3.Australia e a. Diminuicao da disponibilidade de agua
Nova Zelandia b. Extincao de animais e plantas
4.Europa a. Desaparecimento de geleiras nos Alpes
b. Aumento da producao agrıcula em algumas regioes
c. Impactos no turismo
5.America a. Diminuicao da producao agrıcola
Latina b. Aumento dos vetores de diversas doencas
c. Extinsao de animais e plantas
6.America a. Aumento da producao agrıcola em algumas regioes
do Norte b. Aumento dos vetores de diversas doencas
7.Polar a. Diminuicao da calota polar
b. Extincao de animais e plantas
8.Pequenas a. Aumento do nıvel do mar devera deslocar dezenas de milhoes de
pessoas
Ilhas b. Diminuicao da disponibilidade de agua
c. Diminuicao da atividade pesqueira
d. Diminuicao no Turismo
Tabela 3.1: Possıveis impactos decorrentes do aquecimento global[Rocha, 2003]
Essas sao algumas dentre as varias consequencias que podem ser geradas devido ao
aumento da temperatura (o aquecimento global), o qual podera estar afetando todas
as regioes nao so do Brasil, mas de todos os paıses, cada um de sua forma e com um
grau de intensidade. Alem dos impactos ambientais causados pelas mudancas climaticas
tambem podemos perceber os impactos sociais e economicos. Esses impactos so poderao
ser amenizados com a conscientizacao e atitudes dos seres humanos que sao os grandes
responsaveis pelo aquecimento global do planeta.
21
Capıtulo 4
Trabalho Desenvolvido e Tecnologias
Utilizadas
4.1 Introducao
Neste trabalho foi utilizada a ferramenta Vizx3D para a construcao dos ambientes
virtuais, que permite a criacao de formas mais complexas, utilizando a sua interface
visual. Foram criados dois ambientes, um relacionado a quımica e outro relacionado a
Biologia, como pode ser visto nas Figuras 4.1 e 4.2.
Figura 4.1: Ambiente Virtual da Biologia
22
Figura 4.2: Ambiente Virtual da Quımica
O ambiente da quımica contem um objeto mostrando a ligacao quımica do CO2 e
um mostrando a do CH4, esses gases sao dois dos responsaveis pelo Efeito Estufa e por
estarem sendo emitidos em uma quantidade muito grande tambem sao os responsaveis pelo
Aquecimento Global. O AV possui tambem um Sol, uma superfıcie plana representando o
solo e o uso de textura para representar o ceu. O usuario podera interagir com o ambiente
da quımica clicando sobre a ligacao quımica do CO2, aumentando assim a concentracao
de CO2 na atmosfera.
Por meio das pesquisas e dados obtidos e constatado que a floresta amazonica pode
perder 30% davegetacao, por causa de um aumento na temperatura que vai de 3oC a
5,3oC ate 210, ou seja em 100 anos.
Tambem foi encontrado um grafico, que pode ser visto na Figura 4.3, que mostra a
concentracao de dioxido de carbono (azul) e a variacao da temperatura global (vermelho)
em 1000 anos.
Neste grafico podemos perceber que quando a concentracao de dioxido de carbono e
de 340 ppm, o valor relativo ao aumento na temperatura e de 4,1◦C, que esta dentro do
aumento previsto para os proximos 100 anos.
23
Figura 4.3: Grafico Concentracao CO2 x Variacao Temperatura
[Roberto, 2008]
No Ambiente Virtual da Biologia, foram implementadas 10 arvores que estao agrupa-
das em 3 grupos com 3 arvores cada um e uma arvore sozinha. Com os dados citados
acima sobre o aumento da temperatura e a concentracao de carbono, cada vez que o
usuario interagir, clicando para aumentar a concentracao de dioxido de carbono em 340
ppm, quer dizer que a temperatura sofreu uma variacao media 4,1◦ e logo 30% das arvores
vao desaparecer, e 30 % de 10 arvores correspondea 3 arvores, por isso foram agrupadas
de 3 em 3, sobrando uma sozinha.
Alem disso foi colocada uma superfıcie plana composta por 4 objetos planos para re-
presentar um rio, a medida que a concentracao de dioxido de carbono vai aumentando,
a temperatura tambem vai aumentando e diminui a quantidade de agua do ambiente, ou
seja, diminui o nıvel do rio. Este cenario e apenas uma representacao do aquecimento glo-
bal sobre o meio ambiente, sendo que a quantidade de agua que diminui nao foi calculada
com base em uma medida proporcional ao impacto sobre o meio ambiente.
Na criacao de ambientes virtuais pode-se optar por alguma linguagem entre diferentes
linguagens. No trabalho optou-se pelo uso da X3D por ser mais aperfeicoada, possuir
uma especificacao melhorada, aceitar multiplos formatos de codificacao, possuir melhor
flexibilidade e extensao, alem de possuir um API unificado, que e a SAI.
X3D e um padrao aberto para distribuicao de conteudo 3D, que combina geometrias
e descricoes de comportamento instantaneos em um simples arquivo que possui diversos
formatos de arquivos disponıveis.
24
Apos a construcao dos ambientes virtuais, esses foram abertos no Vivaty Studio e entao
exportados para arquivos com extensao (.x3dv). Foi adicionado no arquivo (.x3dv) da
quımica um TouchSensor, no no do grafo de cena, o qual o usuario podera estar clicando
para fazer a interacao com Ambiente Virtual.
Por fim foram criadas as classes Java, com o uso da API SAI, onde a SAI vai fazer a
ligacao entre a cena tridimensional e a classe Java, alem da iteracao entre as duas classes
para poder estar removendo nos do grafo de cena da biologia.
Durante o desenvolvimento do trabalho, alem do estudo e uso da linguagem X3D,
foram necessarios o estudo e o uso de outras ferramentas, como: Vizx3D e o Vivaty Studio,
usados para a modelagem dos ambientes virtuais. O Xj3D, usado para visualizacao desses
ambientes, a SAI, para fazer a comunicacao entre o X3D e o Java, por fim o Java e o
Netbeans foram utilizados para a criacao das aplicacoes externas (Classes Java).
4.2 Vizx3d/ Vivaty Studio
O Vizx3D e um editor, da empresa Virtock Technologies(a qual foi adquirida pela Me-
dia Machines e que atualmente e a Vivaty), usado para modelagem de objetos e ambientes
3D atraves de uma interface visual GUI (Graphical User Interface). Nessa interface a area
de criacao dos objetos e ambientes e subdividida, como mostra a Figura 4.4, permitindo
assim a visualizacao em diferentes perspectivas. A versao anterior ao Vizx3D era deno-
minada SPAZZ3D, a qual ja existia antes do ano 2000 e so depois na nova versao que
passou a ser chamado de Vizx3D, sendo disponibilizado, gratuitamente por 30 dias. Neste
trabalho foi utilizado o Vizx3D, versao 1.0, que atualmente e o Vivaty Studio1 e o Vivaty
Studio e gratuito.
Esses objetos e ambientes criados no Vizx3D podem ser exportados para os padroes
X3D ou VRML. Tambem e possıvel a importacao de arquivos VRML. Alem disso, esse
editor possui diversas funcoes como: interacao, multi texturas, que permite utilizar mais
de uma textura em um objeto, animacoes, iluminacao, H-Anim2, entre outras.
O Vizx3D foi a ferramenta utilizada na criacao dos ambientes virtuais no respectivo
trabalho.Apos a versao chamada de Vizx3D, foi criada uma nova versao aberta e gra-
tuita chamada de Flux Studio, a qual evoluiu para Vivaty Studio, de forma ampliada
e melhorada. Durante a realizacao do trabalho, em fases posteriores a criacao dos AV,
percebeu-se a necessidade do uso do Vivaty Studio para que se pudesse exportar esses
ambientes para uma extensao do X3D, que e o x3dv.
1Disponıvel para download em: http://developer.vivaty.com/2Animacao de Avatares
25
Figura 4.4: Janela Inicial do Vizx3D
4.3 X3D e o Xj3D
X3D e uma linguagem de padrao aberto usado para descricao de cenas 3D e e capaz de
representar e comunicar essas cenas. A web3D Consortium e a responsavel pelo desenvol-
vimento e especificacao da linguagem, a qual e composta por 3 especificacoes separadas
devido ao fato de suportar multiplos formatos de arquivos e linguagem de programacao3.
A estrutura dos dados pode ser apresentada em um arquivo com codificacao XML que
possui a extensao .x3d e permite uma interoperabilidade com outras aplicacoes que usem
esse padrao , VRML Classico com a extensao .x3dv que ajuda na transicao de usuarios
de VRML para x3D e o binario que possui uma representacao de menor tamanho, alem
de facilitar o processamento por maquinas.
A estrutura do arquivo X3D pode ser definido da seguinte maneira [Costa, 2008]:
• Cabecalho do arquivo : que contem as informacoes sobre a configuracao inicial da cena
X3D;
• Declaracao do cabecalho X3D: identifica o documento como um arquivo X3D;
3Disponıvel em: http:// www.web3d.org/about/overview/
26
• Declaracao do perfil: colecao de componentes para um especıfico nıvel de suporte;
• Declaracao do componente: colecao de nos que geralmente possuem funcionalidades
comuns;
• Declaracao META: que proveem informacoes frequentemente utilizadas para referencia,
autor, direitos autorais e outras informacoes;
• Corpo da cena grafica: que contem todos os nos que compoem o modelo.
O codigo de arquivos de cena codificado em XML e mostrado no Codigo 4.3.1
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’ >
4
5 <Scene>
6 <WorldInfo
7 title="cliente"
8 info=’"This Web3D World was created with Vizx3D, a Web3D authoring tool"
9 "www.vizx3d.com"’
10 />
11
12
13
14
15
16
17 <Transform DEF=’dad_GROUND’>
18 <Group DEF=’GROUND’>
19 <Transform DEF=’dad_Box1’
20 translation=’-.001 -.041 0’>
21 <Shape DEF=’Box1’>
22 <Appearance>
23 <Material DEF=’Shiny_Blue_mat’
24 ambientIntensity=’0.200’
25 shininess=’0.100’
26 diffuseColor=’0 0 1’
27 specularColor=’0 0 1’
28 />
29 </Appearance>
30 <Box
31 size=’1 1 .0001’
32 />
33 </Shape>
34 </Transform>
35 <TouchSensor DEF=’TOUCHSENSOR_1’
36 />
37 </Group>
38 </Transform>
39 </Scene>
40 </X3D>
Codigo 4.3.1: Arquivo de cena codificado em XML
27
O codigo de arquivos de cena codificado VRML classico e mostrado no Codigo 4.3.2.
1 #X3D V3.0 utf8
2 PROFILE Immersive
3 META "ExportTime" "9:48:38"
4 META "ExportDate" "5/25/2009"
5 META "VivatyStudioVersion" "709"
6 META "VivatyStudioSource" "../cliente.fxw"
7 WorldInfo {
8 title "cliente"
9 info ["This Web3D Content was created with Vivaty Studio, a Web3D authoring tool"
10 "www.mediamachines.com"]
11 }
12 ## Vizthumbnail Thumb_cliente_x3dv1337961243255718.jpg
13
14 DEF dad_GROUND Transform {
15 children [
16 DEF GROUND Group {
17 children [
18 DEF dad_Box1 Transform {
19 translation -.001 -.041 0
20 children [
21 DEF Box1 Shape {
22 appearance Appearance {
23 material DEF Shiny_Blue Material {
24 ambientIntensity 0.200
25 shininess 0.100
26 diffuseColor 0 0 1
27 specularColor 0 0 1
28 }
29 }
30 geometry Box {
31 size 1 1 .0001
32 }
33 }
34 ]
35 }
36 DEF Sensor1 TouchSensor {
37 }
38 ]
39 }
40 ]
41 }
Codigo 4.3.2: Arquivo de cena codificado em VRML Classico
Os perfis e os componentes sao usados em X3D para definir o conjunto de servicos que
o usuario ira precisar. O componente define uma especıfica colecao de nos, que costumam
ter um conjunto de funcionalidades em comum. Ja os perfis possuem uma colecao de
componentes para um especıfico nıvel de suporte, todos os arquivos X3D requerem a
definicao do perfil.
Na Figura 4.5 e mostrado os tipos de perfis e apos a Figura tem-se a definicao de cada
perfil:
28
Figura 4.5: Perfis X3D
[Costa, 2008]
Interchange: perfil basico para comunicacao entre aplicacoes. Suporta texturas,
animacoes, geometrias basicas e iluminacao basica.
Interactive: alem das capacidades citadas no Interchange, inclui iluminacoes adicio-
nais e interacao do usuario com a cena atraves de sensores.
Imersive: todos as capacidades citadas anteriormente com a adicao de suporte de
audio, colisao, fog e scripting.
Full: todos ja citados e a inclusao de DIS (Distributed Interactive Simulation), H-
Anim (Humanoid Animation), GeoSpacial, NURBS (Non-Uniform Rational B-spline Sur-
faces) e outros componentes avancados.
Alem desses, tem-se ainda os seguintes perfis adicionais:
MPEG-4 Interactive: Combinacao do perfil Interactive, que suporta necessidades
de especificacao multimıdia MPEG-4 para definicoes graficas tridimensionais.
CDF (CAD Distillation Format): Possui caracterısticas do Interchange e suporta
importacao de modelos CAD.
Para visualizar os Ambientes Virtuais, e necessario o uso de um navegador (Browser),
que traduzem o codigo, processam a cena e permite a iteracao do usuario com esta.
No trabalho foi utilizado o Xj3D Browser, que e um navegador X3D codigo aberto, para
conteudo X3D e VRML, e um projeto da Web3D Consortium, e escrito em Java e suporta
as plataformas Windows, MacOS X, Linux e Solaris. Porem, alem desse, pode citar
tambem:
Blaxxun3D: Pequena applet Java que permite acessar ambientes tridimensionais sem
instalacao, apenas com plug-in, com o mınimo de download e e de licenca comercial.
Flux Player(Atual Vivaty Player): Para plataforma Windows e carrega conteudos X3D
e VRML97.
Octaga: Navegador para plataforma Windows ou Linux que carrega conteudos X3D e
VRMl.
Na Figura 4.6 e mostrado um exemplo de arquitetura para um navegador X3D, retirado
29
de [Costa, 2008] . Na figura em (1), tem-se um conjunto de arquivos com os codigos das
cenas, que serao lidos por analisadores em (2), os quais podem suportar varios formatos
de arquivos disponıveis, logo depois em (3) o gerenciador da cena grafica recebe os nos
depois de lidos e criados, logo o gerenciador vai percorrer as cenas da arvore de cena,
repetidamente, para poder desenhar os quadros da imagem de saıda e redesenhar de forma
rapida caso possua alguma mudanca (4), entao os Scripts que podem enviar ou receber
algum evento,encapsula o codigo de programacao de outra linguagem (EcmaScript ou
Java) em (5), logo apos a SAI vai definir como a API deve trabalhar, permitindo assim a
criacao de codigos por autores, que podem trabalhar em diferentes sistemas operacionais
e navegadores (6) e por fim, em (7), podem ser usadas paginas Web ou aplicacoes externas
com interatividade que vao aparecer para os usuarios.
Figura 4.6: Exemplo de arquitetura para um navegador X3D
[Costa, 2008]
4.4 SAI (Scene Authoring Interface)
SAI e uma interface de programacao usada para fazer a comunicacao entre X3D e
Java, desenvolvida para suprir a necessidade do autor de ambiente em interligar objetos
do grafo de cena com acoes definidas por um codigo customizado, seja atraves de um
acesso interno ou externo. Nao e considerada parte direta do grafo de cena, porem e
definida como um protocolo para manipulacao do grafo de cena X3D [Costa, 2008]. Na
Figura 4.7 tem-se um exemplo de um grafo de cena representando uma casa .
No acesso interno, o arquivo X3D possui Script interno, o qual e responsavel pela
comunicacao com a classe Java, entao a cena X3D vai chamar a classe Java, a qual vai
30
Figura 4.7: Grafo de cena representando uma Casa
[Silva et al., 2004]
ter o codigo para executar determinadas alteracoes na cena. Ja o acesso externo, a classe
Java que vai chamar uma instancia do navegador e carregar o arquivo com a cena X3D,
utiliza a API , no caso a SAI, para fazer a iteracao com a cena, atraves de acoes.
A SAI permite cinco tipos de acesso a cena X3D, que sao[Costa, 2008]:
• Acesso a funcionalidades do navegador;
• Recebimento de notificacoes das acoes do navegador, como: falsas URL, iniciacao e
encerramento;
• Envio de eventos para campos de entrada ou entrada/saıda dos nos contidos na cena;
• Leitura do ultimo valor enviado dos campos de saıda ou entrada/saıda dos nos contidos
na cena;
• Notificacoes de quando os eventos modificam os valores de campos de nos contidos na
cena.
No trabalho e utilizado o acesso externo para fazer a iteracao com o grafo de cena,
pois teremos uma aplicacao composta por duas janelas (ambiente quımica e ambiente
biologia), cada uma referente a uma cena 3D.
4.5 Java e Netbeans
Java e uma linguagem de programacao orientada a objetos desenvolvida na empresa
Sun Microsystems, na decada de 90. A linguagem Java e compilada para um bytecode,o
31
qual e executado por uma maquina virtual, a JVM (Java Virtual Machine). O inter-
pretador transforma os bytecodes em linguagem de maquina. Logo Java e Compilada e
Interpretada.
Umas das vantagens de se usar Java e que ela e distribuıda com um vasto conjunto de
Bibliotecas API, e independente de arquitetura, entre outras.
No trabalho foi preciso acrescentar o jogl.jar ao classpath do Java para que nao ocor-
resse erros durante a execucao do sistema.
O NetBeans IDE e um ambiente de desenvolvimento integrado de codigo aberto, uma
ferramenta que auxilia programadores a escrever, compilar, debugar e instalar aplicacoes.
Foi arquitetada em forma de uma estrutura reutilizavel que tem como objetivo simpli-
ficar o desenvolvimento e aumentar a produtividade, reunindo em uma unica aplicacao
todas estas funcionalidades. Foi escrito em java mas pode suportar outras linguagens de
programacao como C++, PHP, entre outras.
Foi utilizado no trabalho o NetBeans IDE e a linguagem java para criacao das classes,
que sao a aplicacoes externas que vao instanciar o navegador, no caso o Xj3D, carregando
as duas cenas, cada uma em uma janela (Interfaces Graficas), onde o usuario podera
interagir com a cena. Para utilizacao da SAI no NetBeans foi criada uma biblioteca e
foram colocados no classpath todos os aquivos (.jar) que estavam em uma pasta do Xj3D.
4.6 Arquitetura do Sistema
Figura 4.8: Arquitetura do Sistema
32
O usuario podera estar interagindo com o ambiente virtual quımica, no aumento da
concentracao de CO2, o qual vai ser visualizado atraves de um Browser que e carregado
na Interface Grafica assim que a aplicacao externa e executada. A API SAI vai ser a
responsavel em fazer a comunicacao entre a cena 3D e a aplicacao externa. Ja, com o
Ambiente Virtual Biologia, o usuario podera apenas visualizar, as modificacoes ocorridas
quando ele fizer a acao no ambiente da quımica. Este processo sera melhor entendido no
proximo capıtulo, com a explicacao da implementacao feita. Na Figura 4.8 e mostrada a
arquitetura do sistema.
33
Capıtulo 5
Implementacao
5.1 Introducao
Como visto no capıtulo anterior, foram utilizadas algumas tecnologias para a criacao
tanto dos ambientes virtuais quanto das aplicacoes externas. Neste capıtulo e mostrado
como esses Ambientes Virtuais e as aplicacoes externas foram implementados.
5.2 Geracao dos Ambientes Virtuais
Neste capıtulo sera falado como os ambientes virtuais foram criados e sua composicao.
5.2.1 Ambiente Virtual da Biologia
O Ambiente Virtual da Biologia e composto por arvores, sol, rio, solo terra e solo
grama.
As geometrias utilizadas para a construcao dos objetos desse ambiente foram:
• Sol: Foi usado uma esfera para a criacao do Sol e foi atribuido a ela uma cor amarela;
• Solo grama: Inicialmente foi usado um cubo e aumentado as suas dimensoes no eixo x
e z (largura e profundidade) e ao valor de sua altura (eixo y) foi atribuıdo o valor
0, tambem foram feitas translacoes nos seus eixos x, y e z para definir a posicao;
• Solo Terra: Foi feito da mesma forma que o solo grama, porem com dimensoes menores,
para ocupar somente a area onde as arvores seriam colocadas;
• Rio: Foi utilizada a mesma tecnica das anteriores, porem foram usados 4 cubos para que
se pudesse ir retirando partes e dar a impressao que a agua do rio esta diminuindo;
• Arvores: Primeiramente foram criados cilindros para representar o tronco das arvore,
depois a superfıcie foi subdividida 4 vezes, com uso de dobras em angulos de 30o.
34
Ja a parte superior da arvore, que representa as folhas, foram feitas usando Swept
Extrusion, que utiliza pontos interligados e depois pode mover esses pontos para ficar
da forma desejada, esses objetos vao ser do tipo IndexedFaceSet. Foram utilizadas
texturas nas partes das folhas.
Alem das formas geometricas foi utilizado background, sendo colocada textura para
representar o ceu e foi utilizada iluminacao e o viewpoint foi redefinido para melhor
vizualizacao do ambiente. .
5.2.2 Ambiente Virtual da Quımica
O Ambiente Virtual da quımica e composto por ligacao quımica do Dioxido de Car-
bono(CO2) e do Metano(CH4), alem de nuvens, sol e o chao terra. Veja na figura 5.3.
As geometrias utilizadas para a construcao dos objetos desse ambiente foram:
• Ligacao quımica do Dioxido de Carbono(CO2): Foram usados 2 cilindros e 3 esferas,
entao foi feita a uniao desses para tornar somente um objeto e foram acrescentadas
as letras nos devidos lugares. Esse objeto e utilizado para fazer a interacao com o
usuario;
• Ligacao quımica do Metano(CH4): Foram usados 4 cilindros e 5 esferas, os cilindros
sofreram alguma translacoes e rotacoes para ficarem nos lugares desejados, foi feita
a uniao dessas formas geometricas, tornando somente um objeto e as letras foram
acrescentadas;
• Nuvens: Primeiramente foi utilizando o Swept Extrusion, o mesmo utilizado na parte
superior das arvores, para dar a forma as nuvens e depois foi usado translacao e
escala para adicionar as outras no devido tamanho e na posicao que se encontram.
Esses objetos vao ser do tipo IndexedFaceSet, que e um conjunto indexado de ”faces“
de formas, chegando ao formato desejado;
• Sol: Da mesma forma que no ambiente da biologia, foi usada uma esfera;
• Chao terra: foi utilizado um cubo, zerando sua altura e aumentando as dimensoes do
eixo x e z.
Tambem foram adicionados fundo com textura, texto, iluminacao e a posicao do ponto
de vista foi redefinida para melhor visualizacao do ambiente.
Alem do usuario interagir com o ambiente virtual, ele pode estar se movimentando
nos ambientes, utilizando o mouse ou as setas direcionais do teclado.
35
5.3 Aplicacoes Externas(Classes Java)
Apos a criacao dos ambientes virtuais, fez se necessario a criacao de aplicacoes exter-
nas, utilizando a API SAI para que se pudesse fazer a integracao do Java com a cena
tridmensional. A classe java instancia um Browser e carrega a cena 3D neste. Porem,
como os ambientes estariam cada um em uma janela, foi necessario que o sistema abrisse
dois browsers, cada um na respectiva janela e cada um carregasse a sua respectiva cena
3D.
Foram criadas duas classes javas: AVbiologia e Avquimica.
5.3.1 AVbiologia
Essa classe e responsavel abrir um Browser na janela (UI - User Interface) e carregar
a cena 3D nesse browser. Ela extende a classe JFrame. No codigo da classe AVbiologia e
possıvel visualizar e entender como adicionar um browser a sua aplicacao externa. A classe
foi implementada com o uso do tutorial SAI. Ela foi inicializada na classe Avquimica.
Inclui (herda) as bibliotecas extras que serao usadas na classe. As bibliotecas herdadas
podem ser vistas no Codigo 5.3.1 .
1 import org.web3d.x3d.sai.*; // Herda todas as classes SAI
2 import java.awt.*; // usado para implementar interface de aplicativos escritos em java atraves de janelas
3 import javax.swing.*; // usado para implementar a Interface grafica
4 import java.util.HashMap; // herda a classe a qual vai configurar os parametros do Browser
Codigo 5.3.1: Bibliotecas importadas
A classe Avbiologia vai extender a classe JFrame, para criacao da interface grafica com
o usuario. No metodo construtor, e construıdo um componente X3D usando a classe SAI
BrowserFactory. Este componente vai ser adicionado a aplicacao, na interface grafica.
Logo depois, para procurar pela cena, e preciso usar um browser, que e uma interface
basica para interagir com o sistema, o browser vai ser carregado atraves da referencia
do componente X3D criado, e por fim procura por um arquivo que vai ser carregado no
browser, que e a cena 3D. Como pode ser visto no Codigo, no anexo.
5.3.2 AVquimica
A classe AVquımica alem de abrir um browser na janela e carregar a cena 3D, como
a classe AVbiologia, vai procurar por um no chamado TOUCHSENSOR 1, na cena da
quımica, se nao tiver retorna uma mensagem falando que nao foi encontrado o sensor de
toque, caso contrario ele vai verificar quando esse sensor for tocado e adiciona o evento
ao campo chamado tt, que e do tipo SFTime, sensor de tempo.
36
O metodo readableFieldChanged que pertence a interface X3DFieldEventListener im-
plementada pela classe AVquımica vai receber o evento e vai realizar as mudancas na
cena da biologia. No Codigo 5.3.2 e apresentado a codificacao deste metodo. O codigo
completo dessa classe esta em anexo, no apendice.
Essas classes vao intergir com o browser e a cena, alem de haver uma interacao entre
elas para que possa ser feita as modificacoes no ambiente da biologia, quando o usuario
interagir com o ambiente da quımica. Podendo assim este ver as modificacoes causadas
no ambiente da biologia, apos a sua acao no ambiente da quımica.
Desta forma conseguiu-se que os ambientes interagissem entre si, onde modificacoes
feitas em um ambiente causam consequencias no outro ambiente, alem disso, e os usuarios
podem se movimentar pelo ambiente virtual. Assim o prototipo possui duas das principais
caracterısticas de RV, a interacao e navegacao.
37
1 /*Esse metodo vai receber o evento e vai realizar as mudancas na cena da biologia.
2 Foi acrescentado um contador "cont", o qual se inicializa com um e incrementado cada
3 vez que o sensor e tocado.Com o uso desse contador, e possıvel remover a cada interac~ao,
4 alguns grupos de nos no Ambiente Virtual da quımica.*/
5
6 public void readableFieldChanged(X3DFieldEvent x3DFieldEvent) {
7
8 // Se o temp n~ao e vazio, ou seja se ele e realizado e contador igual a 1
9 if (temp.isRealized() && cont == 1){
10
11 // pega o no de nome "dad_Group1" na cena da biologia e o remove
12 X3DNode gp = demo.cenab.getNamedNode("dad_Group1");
13 demo.cenab.removeRootNode(gp); // remoc~ao de um grupo de arvores
14
15 // pega o no de nome "dad_agua3" na cena da biologia o remove
16 X3DNode gpa = demo.cenab.getNamedNode("dad_agua3");
17 demo.cenab.removeRootNode(gpa); // remoc~ao de parte do rio
18
19 }
20
21 //Se o temp n~ao e vazio, ou seja se ele e realizado e contador igual a 2
22 else if( temp.isRealized()&& cont == 2){
23
24 X3DNode gp2 = demo.cenab.getNamedNode("dad_Group2");
25 demo.cenab.removeRootNode(gp2);
26
27 X3DNode gpa2 = demo.cenab.getNamedNode("dad_agua2");
28 demo.cenab.removeRootNode(gpa2);
29
30 }
31
32 else if( temp.isRealized()&& cont == 3){
33
34 X3DNode gp3 = demo.cenab.getNamedNode("dad_Group3");
35 demo.cenab.removeRootNode(gp3);
36
37 X3DNode gpa3 = demo.cenab.getNamedNode("dad_agua1");
38 demo.cenab.removeRootNode(gpa3);
39
40 }
41
42 else if( temp.isRealized()&& cont == 4){
43
44 X3DNode gp4 = demo.cenab.getNamedNode("dad_Group4");
45 demo.cenab.removeRootNode(gp4);
46
47 X3DNode gpa4 = demo.cenab.getNamedNode("dad_agua");
48 demo.cenab.removeRootNode(gpa4);
49
50 }
51
52 //incrementa o cont
53 cont = cont +1;
54 }
Codigo 5.3.2: Codigo do metodo readableFieldChanged
38
Capıtulo 6
Resultados e Dificuldades
6.1 Resultados
Com a utilizacao de todas as ferramentas citadas anteriormente e com a implementacao
dos ambientes virtuais, assim como a implementacao das aplicacoes externas (classes Java)
e possıvel a simulacao de Ambientes Virtuais Multidisciplinares Interativos. E tendo como
estudo de caso um assunto que vem sendo bastante discutido, devidos as consequencias
negativas causadas por ele, que e o Aquecimento Global.
Algumas imagens serao aprsentadas, estas contem os resultados alcancados na imple-
mentacao do prototipo proposto.
As agua do rio aparece com a coloracao cinza. Quando e executado o sistema, e as
cenas comecam a carregar,a cor da agua esta normal,em tom azul, porem quando carrega
as texturas das folhas das arvores,a cor da agua modifica e fica cinza.
Na Figura 6.1 e ilustrada a execucao do sistema, antes mesmo do usuario fazer a
intercao com este.
Figura 6.1: Ambientes Virtuais sem Modificacoes
39
Se o usuario der um clique para aumentar a concentracao de CO2 e percebido que
algumas arvores irao desaparecer e a agua do rio ira diminuir, o nıvel do rio ira abaixar,
aparecendo uma pequena parte em marrom. A cada interacao do usuario, a cada clique
em CO2, aumenta em 340 ppm de concentracao de carbono e esse valorvai acumulado a
cada clique do usuario em CO2. Com o aumento de CO2, consequentemente aumenta o
aquecimento global. Essas mudancas e mostrada na Figura 6.2 .
Figura 6.2: Ambientes Virtuais apos aumentar a concentracao de CO2 pela 1a vez
Apos clicar pela segunda vez para aumentar a concentracao de CO2, outra quantidade
de arvores irao desaparecer e a agua do rio ira diminuir um pouco mais. Para fazer
a remocao de diversos nos e poder saber qual no deve ser removido em determinado
momento, foi criada uma variavel cont, que e incrementada e depois usada na verificacao
para saber qual no deve ser removido no ambiente da biologia. Veja na Figura 6.3 .
Figura 6.3: Ambientes Virtuais apos aumentar a concentracao de CO2 pela 2a vez
Clicando pela terceira vez mais uma quantidade de arvores irao desaparecer e a agua
40
do rio diminuir e ao clicar pela quarta vez, nao havera mais arvore e nem agua no rio,
pode ser percebido nas Figuras 6.4 e 6.5.
Figura 6.4: Ambientes Virtuais apos aumentar a concentracao de CO2 pela 3a vez
Figura 6.5: Ambientes Virtuais apos aumentar a concentracao de CO2 pela 4a vez
Percebe-se que ha interacao do usuario com o ambiente, quando ele aumenta a concen-
tracao de CO2 e tem tambem a iteracao entre os dois ambientes , que e quando a classe
AVquimica percebe o evento e entao ela faz uma iteracao com a classe da biologia para
poder estar removendo os objetos da cena.
6.2 Dificuldades
As principais dificuldades encontradas foram:
• Na criacao do ambiente virtual da biologia, a maior dificuldade foi na criacao das
41
arvores, para conseguir fazer o formato da parte superior (folhas) das arvores e para
fazer com que o tronco ficasse o mais parecido com o real.
• Ja no ambiente da quımica, fazer as representacoes das moleculas de CO2 e CH4, pelo
posicionamento de cada forma geometrica utilizada.
• Na criacao da aplicacao externa, das classes, foram duas as maiores dificuldades:
• No uso da API SAI: Para uso das classes da API SAI foi necessario criar uma
biblioteca com os arquivo s(.jar) presentes na pasta jars do Xj3D, a biblioteca
criada deve ser adicionada ao projeto.
• Instanciar o browser atraves da aplicacao. E preciso tambem ir em proprie-
dades do projeto, selecionar run e em VM Options colocar (-Xmx450M -
Djava.library.path=’usr/local/Xj3D/bin), para que possa executar sem erros.
42
Capıtulo 7
Conclusao e Trabalhos Futuros
7.1 Conclusao
Atualmente, as tecnicas de RV estao sendo bastante utilizadas para expressar fenomenos
fısicos como, por exemplo, o aquecimento global. O estudo do aquecimento global envolve
principalmente 2 disciplinas: a quımica e a biologia. Podemos denominar assim como
sendo multidisciplinar. A Multidisciplinaridade e a interacao entre duas ou mais discipli-
nas, transferindo metodos de uma disciplina a outra. Com isso, percebeu-se a possibilidade
de estar fazendo a juncao das tecnicas de RV com o estudo de caso proposto, resultando
assim no devido trabalho.
A utilizacao do Vizx3D foi eficiente na criacao dos ambientes virtuais, mas como era
preciso exportar esses ambientes com a extensao (.x3dv) foi necessario a utilizacao do
Vivaty Studio para exportar com a extensao desejada.
O uso da API SAI foi eficiente para instanciar o browser Xj3D na aplicacao externa,
assim como o uso do NetBeans para criacao das classes e execucao.Para criacao das
classes, foi necessario criar uma biblioteca com os arquivos (.jar) contidos na pasta jars
do Xj3D e entao adicionar essa biblioteca ao projeto. Para execucao foi preciso adi-
cionar o path da pasta bin, contida no Xj3D, ao java.library.path, para isso e preciso
ir em propriedades do projeto, selecionar run e em VM Options colocar: -Xmx450M
-Djava.library.path=’usr/local/Xj3D/bin. Isso e feito para ter acesso as bibliotecas de
ligacao dinamica (DLL).
Alem disso, o uso da SAI foi eficiente para que se fizesse a interacao entre os dois
ambientes, detectando o aumento da concentracao de dioxido de carbono em um ambiente
e com isso modificando o outro ambiente. E permite tambem a interacao do usuario com
o sistema.
Durante o desenvolvimento do trabalho, algumas dificuldades surgiram, como foi visto,
porem foram superadas conseguindo assim chegar ao objetivo do trabalho de forma satis-
43
fatoria.
7.2 Trabalhos Futuros
Como trabalhos futuros pretende-se:
• Melhorar os ambientes virtuais.
• Fazer a interacao desses ambientes atraves de sistemas distribuıdos.
• Fazer um estudo aprofundado de novos dados do aquecimento global para utiliza-los
nos calculos das consequencia causadas por este.
• Criar um simulador, no qual a pessoa possa interagir de mais formas com o Ambiente
Virtual, como por exemplo escolhendo a quantidade de concentracao de dioxido de
carbono emitidos e simular o que poderia acontecer, alem da utilizacao de dados
concretos, tornando assim a aplicacao mais real.
• Acrescentar tambem na simulacao a possibilidade de estar diminuindo a concentracao
de dioxido de carbono,para mostrar o que poderia acontecer quando diminuir a
concentracao de CO2, sendo para isso e necessario o estudo aprofundado de dados
relacionados ao aquecimento global.
• Acrescentar opcoes para o usuario, como por exemplo, se ele quer simular quais serao
as consequencias do aquecimento global nas geleiras, ou em uma plantacao, entre
outros. Permitir a opcao de escolha .
Resumindo, seria criar um simulador com diversas opcoes de interacao e visua-
lizacao,das causas e consequencias do aquecimento global, o qual poderia ser utili-
zado por diversas pessoas para estudo, para conscientizacao, etc.
44
Referencias
Araujo, R. (1996). Especificacao e analise de um sistema distribuıdo de realidade virtual.
Departamento de Engenharia de Computacao e Sistemas Digitais. Escola Politecnica
da Universidade de Sao Paulo, Sao Paulo, SP, Brasil.
Azevedo, E. e Conci, A. (2003). Computacao Grafica Teoria e Pratica. Editora Campus,
Rio de Janeiro, RJ, Brasil.
Belmonte, R. V. (2006). Como o Aquecimento Global ja afeta o Brasil. Greenpeace Brasil,
Sao Paulo, SP, Brasil.
Bramorski, M. e Marques, E. (1998). Apostila de VRML Basico. Disponıvel em: ¡
www.inf.ufsc.br/awangenh/CG/apostilas/vrml.doc ¿. Acessado em 2007.
Brown, J. (1999). Toy Store 2. Disponıvel em:
¡http://www.salon.com/ent/movies/review/1999/11/24/toystory2/¿. Acessado em
2009.
Bryson, S. (1996). Virtual reality in scientific visualization. Communications of the ACM.
Cardoso, A. e Lamonier, E. (2004). A Realidade Virtual na Educacao e Treinamento.
Livro do Pre-Simposio SRV 2004.
Cohen, M. e Mansour, I. H. (2006). Introducao a Computacao Grafica.
Correa, R. e Gomes, S. P. (2004). MIP-MAPPING. Universidade Estadual de Campinas,
Campinas, SP, Brasil.
Costa, T. K. L. (2008). Uma estrutura para Associacao de Interfaces 2D a Ambientes
Virtuais Dispostos na Internet. Universidade Federal da Paraıba, Joao Pessoa, PB,
Brasil.
Fernandes, V. M. N. (2005). MEIC: Relatorio Semanal numero 33. Disponıvel em:
¡http://www.vmnf.net/blog/index.php?m=200505¿. Acessado em 2009.
Gomes, P. T. (2007). O efeito de estufa ? II. Disponıvel em:
¡http://geographicae.wordpress.com/2007/05/08/o-efeito-de-estufa-ii/¿. Acessado
em 2009.
Henke, R. (2007). LIVE PERFORMANCE IN THE AGE OF SUPER COMPUTING.
Disponıvel em: ¡http://www.textura.org/reviews/henkeliveperformance.htm >
.Acessadoem2009.
45
Jacobson, L. (1994). Realidade Virtual em casa. Berkeley, CA, USA.
Kirner, C. e Pinho, M. S. (1997). Introducao a Realidade Virtual. 1o Workshop de Realidade
Virtual, Sao Carlos, SP, Brasil.
Kirner, C. e Siscoutto, R. (2007). Realidade Virtual e Aumentada: Conceitos, Projetos e
Aplicacoes. Livro do Pre-Simposio: IX Symposium on Virtual and Augmented Reality,
Sao Carlos, SP, Brasil.
Kirner, C. e Tori, R. (2004). Realidade Virtual: Conceitos e Tendencias. Pre-Simposio SRV
2004-VII Symposium on Virtual Reality, Santo Amaro, SP, Brasil.
Kirner, C., Tori, R., e Siscoutto, R. (2006). Fundamentos e Tecnologias de Realidade Virtual
e Aumentada. Livro do Pre-Simposio VIII Symposium on Virtual and Augmented Reality.
Machado, L. e Cardoso, A. (2006). Dispositivos de Entrada e Saıda para Sistemas de Reali-
dade Virtual. Livro do Pre-Simposio VIII Symposium on Virtual and Augmented Reality.
Machado, L. S. (2004). Aplicacoes da Realidade Virtual em Cirurgia. Realidade Virtual:
Conceitos e Tendencias. Livro do Pre-Simposio SRV 2004.
Netto, A. V., Machado, L. S., e Oliveira, M. C. F. (2002). Realidade Virtual - Definicoes,
Dispositivos e Aplicacoes.
Netto, V. (2002). Virtual reality technology for the automotive engineering area. Congresso
2002 SAE BRASIL, Sao Paulo, SP, Brasil.
Ribeiro, P. M. (2009). Piloto por um dia. Disponıvel em:
¡http://pauloribeiro.tripod.com/simulador.html¿. Acessado em 2009.
Roberto (2008). Grafico do Aquecimento Global. Disponıvel em:
¡http://www.blogers.com.br/grafico-do-aquecimento-global/¿. Acessado em 2009.
Rocha, M. T. (2003). Aquecimento Global e o Mercado de Carbono: uma aplicacao do
modelo CERT. Universidade de Sao Paulo, Piracicaba, SP, Brasil.
Schweber, L. V. e Schweber, E. V. (1995). Cover story: realidade virtual. PC Magazine
Brasil.
Silva, R. J. M., Raposo, A. B., e Gattas, M. (2004). Grafo de Cena e Realidade Virtual.
Pontifıcia Universidade Catolica do Rio de Janeiro, Rio de Janeiro, RJ, Brasil.
Siqueira, L. L. (2005). Estudo Comparativo entre Plataformas de Suporte a Ambientes Vir-
tuais Distribuıdos. Faculdade de Engenharia Eletrica.Universidade Federal de Uberlandia.
46
Tiraboschi, J. (2007). Escravos do medo. Disponıvel em:
¡http://revistagalileu.globo.com/Galileu/0,6993,ECT1080624-1940-3,00.html¿. Aces-
sado em 2009.
Tori, R., kirner, C., e Siscouto, R. (2006a). Fundamentos da Realidade Virtual. Livro do
Pre-Simposio VIII Symposium on Virtual and Augmented Reality.
Tori, R., kirner, C., e Siscouto, R. (2006b). Fundamentos e Tecnologia de Realidade Virtual
e Aumentada. SVR VII, Belem, PA, Brasil.
47
Apendice A
Codigo Fonte
A.1 Classe AVquımica1 package pfc;
2 //Feito com apoio do Tutorial SAI
3
4
5
6 import java.awt.*;
7 import java.util.HashMap;
8 import javax.swing.*;
9 import org.web3d.x3d.sai.*;
10
11
12 public class AVquimica extends JFrame implements X3DFieldEventListener {
13
14
15 AVbiologia demo = new AVbiologia();
16 X3DScene cenaq;
17 X3DNode temp;
18 int cont = 1;
19 SFTime tt;
20
21
22 /**
23 * Construtor.
24 */
25 public AVquimica() {
26 setDefaultCloseOperation(EXIT_ON_CLOSE);
27
28 /*retorna um objeto do tipo Container, esse objeto e o que
29 "recebe" todos os objetos adicionados no JFrame */
30 Container cp = getContentPane();
31
32
33 // Configura os parametros do Browser
34 HashMap parametros = new HashMap();
35
36
37 // Cria um componente SAI
38 X3DComponent Scomp = BrowserFactory.createX3DComponent(parametros);
39
40
41 /*Pega o componente SAI e converte para JComponent e o adiciona ao
42 container, na janela */
43 JComponent Painel = (JComponent)Scomp.getImplementation();
44 cp.add(Painel, BorderLayout.CENTER);
45
46
47 // Obtem um Browser(navegador) externo
48 ExternalBrowser xj3dBrowser = Scomp.getBrowser();
49
48
50
51 setSize(500,500);
52 setVisible(true);
53
54
55 //Cria uma cena do arquivo procurado.
56 cenaq = xj3dBrowser.createX3DFromURL(new String[] { "quimica2.x3dv" });
57
58 // Substitui a cena atual com a nova cena carregada
59 xj3dBrowser.replaceWorld(cenaq);
60
61 /* Pega o no chamado "TOUCHSENSOR_1", na cena da quımica, se n~ao tiver
62 retorna avisando que n~ao foi encontrado o sensor de toque,caso contrario
63 ele vai verificar quando esse sensor for tocado e adiciona o evento ao
64 campo tt,que e do tipo SFTime*/
65 temp = cenaq.getNamedNode("TOUCHSENSOR_1");
66
67 if (temp == null ) {
68 System.out.println("Couldn’t find TouchSensor named: TOUCHSENSOR_1");
69
70 }
71
72
73 tt = (SFTime) temp.getField("touchTime");
74
75
76
77 tt.addX3DEventListener(this);
78
79 }
80
81
82 /*Esse metodo vai receber o evento e vai realizar as mudancas na cena da
83 biologia. Foi acrescentado um contador "cont", o qual se inicializa com um
84 e incrementado cada vez que o sensor e tocado.Com o uso desse contador,
85 e possıvel remover a cada interac~ao,alguns grupos de nos no Ambiente Virtual
86 da quımica.*/
87
88
89 public void readableFieldChanged(X3DFieldEvent x3DFieldEvent) {
90
91 /*Se o temp n~ao e vazio, ou seja se ele e realizado e contador igual a 1*/
92 if( temp.isRealized()&& cont == 1){
93
94 // remoc~ao de um grupo de arvores
95 X3DNode gp = demo.cenab.getNamedNode("dad_Group1"); // pega o no de nome "dad_Group1"
96 demo.cenab.removeRootNode(gp);//remove o no raiz,pego anteriormente
97
98 // remoc~ao de parte do rio
99 X3DNode gpa = demo.cenab.getNamedNode("dad_agua3");// pega o no de nome "dad_agua3"
100 demo.cenab.removeRootNode(gpa);//remove o no raiz,pego anteriormente
101
102 }
103
104 /*Se o temp n~ao e vazio, ou seja se ele e realizado e contador igual a 2*/
105 else if( temp.isRealized()&& cont == 2){
106
107 // remoc~ao de um grupo de arvores
108 X3DNode gp2 = demo.cenab.getNamedNode("dad_Group2");
109 demo.cenab.removeRootNode(gp2);
110
111 // remoc~ao de parte do rio
112 X3DNode gpa2 = demo.cenab.getNamedNode("dad_agua2");
113 demo.cenab.removeRootNode(gpa2);
114
115 }
116
117 /*Se o temp n~ao e vazio, ou seja se ele e realizado e contador igual a 3*/
118 else if( temp.isRealized()&& cont == 3){
119
120 // remoc~ao de um grupo de arvores
121 X3DNode gp3 = demo.cenab.getNamedNode("dad_Group3");
122 demo.cenab.removeRootNode(gp3);
123
49
124 // remoc~ao de parte do rio
125 X3DNode gpa3 = demo.cenab.getNamedNode("dad_agua1");
126 demo.cenab.removeRootNode(gpa3);
127
128 }
129 /*Se o temp n~ao e vazio, ou seja se ele e realizado e contador igual a 4*/
130 else if( temp.isRealized()&& cont == 4){
131
132 // remoc~ao de um grupo de arvores
133 X3DNode gp4 = demo.cenab.getNamedNode("dad_Group4");
134 demo.cenab.removeRootNode(gp4);
135
136 // remoc~ao de parte do rio
137 X3DNode gpa4 = demo.cenab.getNamedNode("dad_agua");
138 demo.cenab.removeRootNode(gpa4);
139
140 }
141
142 //incrementa o cont
143 cont = cont +1;
144
145 }
146 public static void main(String[] args) {
147
148 AVquimica demo1 = new AVquimica();
149 }
150 }
A.2 Classe AVbiologia1 package pfc;
2 //Feito com o apoio do tutorial SAI
3
4 import java.awt.*;
5 import java.util.HashMap;
6 import javax.swing.*;
7 import org.web3d.x3d.sai.*;
8
9 public class AVbiologia extends JFrame {
10
11 X3DScene cenab;
12
13 /**
14 * Metodo contrutor que ira carregar o browser e a cena
15 */
16
17 public AVbiologia() {
18 setDefaultCloseOperation(EXIT_ON_CLOSE);
19
20 /*retorna um objeto do tipo Container, esse objeto e o que
21 "recebe" todos os objetos adicionados no JFrame */
22 Container cp1 = getContentPane();
23
24
25 // Configura os parametros do Browser
26 HashMap parametros1 = new HashMap();
27
28
29 // Cria um componente SAI
30 X3DComponent Scomp1 = BrowserFactory.createX3DComponent(parametros1);
31
32
33 /*Pega o componente SAI e converte para JComponent e o adiciona
34 container */
35 JComponent Painel1 = (JComponent)Scomp1.getImplementation();
36 cp1.add(Painel1, BorderLayout.CENTER);
37
38
39 // Obtem um Browser(navegador) externo
40 ExternalBrowser xj3dBrowser1 = Scomp1.getBrowser();
41
50
42
43 setSize(500,500);
44 setVisible(true);
45 setLocation(505,0);
46
47
48 //Cria uma cena do arquivo procurado.
49 cenab = xj3dBrowser1.createX3DFromURL(new String[] { "Biologia3.x3dv" });
50
51
52 // Substitui a cena atual com a nova cena carregada
53 xj3dBrowser1.replaceWorld(cenab);
54 }
55 }
56
A.3 Ambiente Virtual Quımica e Ambiente Virtual
Biologia
Os arquivos com os codigos dos ambientes virtuais, devido ao tamanho, por ocupar
muitas paginas, encontram-se no CD anexo ao Relatorio.
51