Upload
gil-ambrosio-lopes-junior
View
781
Download
1
Embed Size (px)
DESCRIPTION
Monografia sobre Representação de ambientes de imóveis, como cômodos de uma casa em 3D usando recursos da realidade aumentada.
Citation preview
UNIVERSIDADE PRESIDENTE ANTÔNIO CARLOS-UNIPAC
FACULDADE DE TECNOLOGIA E CIÊNCIAS DE
CONSELHEIRO LAFAIETE - FATEC
ENGENHARIA DA COMPUTAÇÃO
GIL AMBRÓSIO LOPES JÚNIOR
REPRESENTAÇÃO DE AMBIENTES COM RECURSOS DE
REALIDADE AUMENTADA
CONSELHEIRO LAFAIETE
2011
GIL AMBRÓSIO LOPES JÚNIOR
REPRESENTAÇÃO DE AMBIENTES COM RECURSOS DE
REALIDADE AUMENTADA
Trabalho de Conclusão de Curso sobre
Representações de Ambientes com
Recursos de Realidade Aumentada,
apresentado ao curso de Engenharia da
Computação da Universidade Presidente
Antônio Carlos – UNIPAC, como
requisito parcial para obtenção do título de
Bacharel em Engenharia da Computação.
ORIENTADOR: JEAN CARLO MENDES
CONSELHEIRO LAFAIETE
2011
Gil Ambrósio Lopes Júnior
REPRESENTAÇÃO DE AMBIENTES COM RECURSOS DE
REALIDADE AUMENTADA
Trabalho de Conclusão de curso apresentado à Universidade Presidente Antônio Carlos – UNIPAC,
como requisito parcial para obtenção do título de Bacharel em Engenharia da Computação.
BANCA EXAMINADORA
Prof. Jean Carlo Mendes (Orientador)
Universidade Presidente Antônio Carlos - UNIPAC
Prof. Kléber Netto Fonseca
Universidade Presidente Antônio Carlos - UNIPAC
Aprovada em: 26/12/2011
Este trabalho é dedicado à minha família, minha mãe Cláudia, que sempre me apoiou
e acreditou em meu potencial, meu pai Gil Lopes, minha irmã Jéssica, aos meus avós e tios, e
a todos profissionais que utilizam os fantásticos recursos da tecnologia para o bem social e
humano.
AGRADECIMENTOS
Agradeço a Deus por me dar coragem e forças para seguir em frente e não
desistir, às pessoas que me apoiaram e acreditaram em mim, meus pais, minha irmã
Jéssica e minha tia Elisa. Ao amigo Leonardo, parceiro na elaboração do projeto.
Agradeço aos professores que ministram aulas no curso de Engenharia da
Computação em especial à Daniella Barros (Rosinha), Alfredo Ganime e Wesley
Luciano, que além de professores são também amigos. E aos professores que não estão
mais presentes na Instituição, mas que tiveram uma importante participação em minha
formação, Luciana Carla e Rone Ilídio.
Agradeço ao professor Jean, por ter aceitado ser o orientador do projeto e que,
sem ele não seria possível a sua conclusão, agradeço pela paciência, interesse e
dedicação.
“Os progressos obtidos por meio do ensino são lentos; já os obtidos por meio de
exemplos são mais imediatos e eficazes.”
Séneca
“Apesar dos nossos defeitos, precisamos enxergar que somos pérolas únicas no
teatro da vida e entender que não existem pessoas de sucesso e pessoas fracassadas. O que
existem são pessoas que lutam pelos seus sonhos ou desistem deles.”
Augusto Cury
RESUMO
A monografia consiste em um sistema de imobiliária virtual usando os recursos de
Realidade Aumentada, tais recursos incluem: capacidade de reconhecimento angular do
código/marcadores da Realidade Aumentada para demonstração de um ambiente
tridimensional do imóvel modelado em ferramentas de modelagem 3D.
Os códigos/marcadores de Realidade Aumentada serão impressos em um cubo, cada um
em uma face que representará um cômodo ou uma parte do imóvel, para a demonstração será
criado um ponto inicial com uma determinada visualização do ambiente do imóvel. Com a
movimentação do cubo, será possível a visualização de praticamente todo o presente ambiente
do imóvel.
Palavras Chave: Realidade aumentada, virtual, ambientes.
ABSTRACT
The Monograph consists of a system of virtual real estate using the resources of
Augmented Reality, these features include: ability to recognize angular Code/Markers of
Augmented Reality for demonstration of a three-dimensional environment of the building
modeled in 3D modeling tools.
The codes/markers of Augmented Reality will be printed on a cube, each face in a will
represent a room or a portion of the property. With the movement of the cube, it is possible to
see practically the whole atmosphere of building.
Keywords: Augmented reality, virtual, environments.
LISTA DE FIGURAS
Figura 1 - Diagrama de realidade/virtualidade contínua .......................................................... 17
Figura 2 – Diagrama adaptado do sistema de realidade aumentada óptico. ............................. 19
Figura 3 – Diagrama adaptado de realidade aumentada por vídeo........................................... 19
Figura 4 - Diagrama adaptado e dispositivo do sistema baseado em monitor ......................... 20
Figura 5 – Marcadores no ARToolKit ...................................................................................... 22
Figura 6 – Resumo dos passos realizados pelo ARToolKit ..................................................... 22
Figura 7 – Integração entre FLARToolKit e Papervision3D ................................................... 23
Figura 8 – Problema de Oclusão .............................................................................................. 25
Figura 9 –Exemplo de oclusão nos marcadores. (a) Padrão sendo reconhecido. (b)
Escondendo uma parte da região do padrão do marcador ........................................................ 26
Figura 10 – Problema de Iluminação. (a) Marcador com luz ambiente. (b) Marcador com
excesso de luz ........................................................................................................................... 27
Figura 11 –Aplicativo de realidade aumentada que demonstra uma ação publicitária do carro
MINI da Cabrio. ....................................................................................................................... 28
Figura 12 – Jogo de boliche utilizando o Kinect ...................................................................... 29
Figura 13 – Jogo da memória, com vários marcadores ............................................................ 29
Figura 14 – Realidade aumentada na medicina: (a) Visualização da movimentação de um feto
no útero; (b) Retirada de um tumor .......................................................................................... 30
Figura 15 – Mostra uma visão do usuário usando a aplicação: (a) mostra o usuário olhando a
impressora e utilizando uns óculos translúcidos; (b) mostra a visão da aplicação, que mostra o
modo correto de remover a bandeja de papéis ......................................................................... 31
Figura 16 – Formas Primitivas ................................................................................................. 32
Figura 17 –Manipulação e edição dos pontos da malha das geometrias .................................. 32
Figura 18 – Operações booleanas ............................................................................................. 32
Figura 19 – Exemplo de textura ............................................................................................... 34
Figura 20 – Especificação do formato de objetos 3D COLLADA (.dae) ................................ 36
Figura 21 – Fases de desenvolvimento do projeto. Desenvolvimento evolucionário
exploratório ............................................................................................................................... 39
Figura 22 – Cilindro com texturas. (a) Cilindro apresentado na ferramenta de modelagem. (b)
Teste do Cilindro na aplicação. ................................................................................................ 42
Figura 23 – Cubo com texturas. (a) Cubo apresentado na ferramenta de modelagem. (b) Teste
do cubo na aplicação................................................................................................................. 42
Figura 24 – Quarto com texturas. (a) Quarto apresentado na ferramenta de modelagem. (b)
Teste do quarto criado na aplicação. ........................................................................................ 43
Figura 25 –Fluxo de execução do sistema ................................................................................ 44
Figura 26 – Códigos/Marcadores do cubo de representação dos ambientes ............................ 45
Figura 27 – Exemplo de código/marcador para controle da movimentação dos ambientes .... 45
Figura 28 – Caso de uso #1 ...................................................................................................... 48
Figura 29 – Caso de uso #2 ...................................................................................................... 49
Figura 30 – Caso de uso #3 ...................................................................................................... 49
Figura 31 – Diagrama de estados ............................................................................................. 50
Figura 32 – Cubo com um código/marcador por face para a interação com a aplicação ......... 53
Figura 33 – Realidade aumentada do Estádio Olímpico João Havelange (Engenhão) ............ 53
Figura 34 – Realidade aumentada do Estádio Governador Magalhães Pinto (Mineirão) ........ 54
Figura 35 – Realidade aumentada da vista de cima de um quarto ........................................... 54
Figura 36 –Realidade aumentada da vista de cima de um quarto ............................................ 54
Figura 37 – Realidade aumentada da vista de um dos lados de uma sala ................................ 55
SUMÁRIO
1 Introdução ................................................................................................................... 14
1.1 Justificativa ........................................................................................................... 14
1.2 Objetivo .................................................................................................................. 15
1.2.1 Objetivo Geral ............................................................................................... 15
1.2.2 Objetivos Específicos ............................................................................... 15
2 REFERENCIAL TEÓRICO ............................................................................. 16
2.1 Realidade Misturada ..................................................................................... 16
2.2 Realidade Aumentada ................................................................................. 17
2.3 Virtualidade Aumentada ........................................................................... 18
2.4 Realidade Aumentada Tangível ........................................................... 18
2.5 Sistemas de Realidade Aumentada ...................................................... 18
2.5.1 Sistemas de Realidade Aumentada Ópticos ................................. 18
2.5.2 Sistemas de Realidade Aumentada por Vídeo ............................ 19
2.5.3 Sistemas de Realidade Aumentada por Monitores .................... 20
2.6 Hardware ............................................................................................................ 20
2.7 Software ............................................................................................................... 21
2.8 ARToolKit ......................................................................................................... 21
2.9 NyToolKit ........................................................................................................... 22
2.10 FLARToolKit ................................................................................................. 23
2.10.1 Funcionamento do FLARToolKit ........................................................ 23
2.11 Problemas presentes em aplicações de Realidade
Aumentada ....................................................................................................................... 24
2.11.1 Problemas de Registro ................................................................................... 24
2.11.2 Problemas de Oclusão ..................................................................................... 24
2.11.3 O Problema de Oclusão dos Marcadores ................................................... 25
2.11.4 O Problema de Iluminação ........................................................................... 26
2.12 Áreas de Utilização da Realidade Aumentada ........................... 27
2.12.1 Publicidade ....................................................................................................... 27
2.12.2 Jogos ................................................................................................................... 28
2.12.3 Educação ........................................................................................................... 29
2.12.4 Medicina ............................................................................................................ 30
2.12.5 Montagem e Manutenção ............................................................................. 30
2.13 Modelagem 3D .............................................................................................. 31
2.13.1 Formas Primitivas ........................................................................................... 31
2.13.2 Modelagem de Forma Livre ......................................................................... 32
2.13.3 Modelagem de Geometria Sólida Construtiva ........................................ 32
2.13.4 Modelagem por Procedimento .................................................................... 33
2.13.5 Modelagem por Derivação ........................................................................... 33
2.13.6 Renderização .................................................................................................... 33
2.13.7 Texturas ............................................................................................................. 34
2.13.8 Google SketchUp ............................................................................................ 35
2.13.9 Blender .............................................................................................................. 35
2.13.10 Collada (.dae) ................................................................................................ 35
2.14 Flash .................................................................................................................... 36
2.15 RIA (Rich Internet Application) ....................................................... 36
3 METODOLOGIA ................................................................................................... 38
4 DESENVOLVIMENTO ..................................................................................... 39
4.1 Ferramentas de Modelagem 3D ............................................................. 39
4.2 Linguagem de Programação: Action Script ................................... 40
4.3 Kits de Desenvolvimento ............................................................................. 40
4.4 PaperVision 3D ................................................................................................. 40
4.5 Descrição do Esboço ....................................................................................... 40
4.6 Diagrama de Atividades (Fluxo de Execução) .............................. .44
4.7 Códigos/Marcadores ..................................................................................... 45
4.8 Especificações (Engenharia de Software) ........................................ 46
4.8.1 Requisitos Funcionais ...................................................................................... 46
4.8.2 Requisitos não Funcionais .............................................................................. 47
4.8.3 Limitações do Sistema ...................................................................................... 47
4.8.4 Requisitos de Desempenho ............................................................................. 47
4.8.5 Diagrama de Casos de Uso ............................................................................. 48
4.8.6 Diagrama de Estados ........................................................................................ 50
4.9 Validação .............................................................................................................. 50
4.10 Problemas Enfrentados ............................................................................ 51
4.10.1 Instalação de Kits de Desenvolvimento ..................................................... 51
4.10.2 Criação do Modelo 3D dos Ambientes ...................................................... 51
4.11 Resultados ......................................................................................................... 53
5 CONCLUSÃO ........................................................................................................... 56
6 TRABALHOS FUTUROS ................................................................................. 57
7 REFERÊNCIAS BIBILIOGRÁFICAS .................................................... 58
14
1 INTRODUÇÃO
A Realidade Aumentada é uma tecnologia que permite uma interação com o usuário, o
que é obtido através do uso de computação gráfica e de realidade virtual, que resulta na
sobreposição de objetos virtuais com o mundo real.
Além de permitir objetos virtuais em ambientes reais, permite também o manuseio com
as mãos. Entretanto, para que objetos virtuais façam parte do ambiente real e sejam
manuseados, utiliza-se um software capaz de captar o ambiente real e o posicionamento dos
objetos virtuais.
Segundo KIRNER e SISCOUTO (2007), com o crescente uso de webcans e o avanço
tecnológico da visão computacional e o crescente avanço em processamentos computacionais
e de imagens, o rastreamento ótico passou a ser uma realidade em função da disponibilidade
do equipamento de hardware utilizado e seu baixo custo.
O hardware de realidade aumentada pode usar dispositivos de realidade
virtual, mas tende a não obstruir as mãos, que devem atuar naturalmente no
ambiente misturado. Técnicas de rastreamento visual, usando visão
computacional e processamentos de imagens são importantes neste caso.
(TORI, 2006)
Com o uso da Realidade Aumentada para a criação de ambientes virtuais, torna-se
possível a utilização desses ambientes por diversos campos do mercado, como por empresas
responsáveis por publicidade e propaganda, imobiliárias, em arquitetura, construção civil,
dentre outros.
1.1 Justificativa
Com a demanda e exigências do mercado atual é necessário o desenvolvimento de
novas tecnologias, uma delas é a realidade aumentada que se apresenta em diversos campos
de atuação. No presente projeto, é proposto o uso de recursos de realidade aumentada e
representações em 3D, voltadas para o mercado imobiliário.
Com a conclusão e funcionamento do projeto, ele poderá ser apresentado como um
produto a ser comercializado através de imobiliárias que estiverem interessadas em apresentar
15
seus imóveis de uma forma inovadora, prática e cômoda. Também serão abertas novas
possibilidades para uso em novos projetos, em que é indicado o desenvolvimento de novos
ambientes de apresentação em 3D.
1.2 Objetivos
1.2.1 Objetivo Geral
Desenvolver um sistema para apresentação de interiores de imóveis, onde o ambiente
é representado através de recursos de realidade aumentada, facilitando a visualização do
produto à venda para um possível cliente, que mesmo próximo ou distante do imóvel já possa
ter uma ideia de como é o imóvel que está interessado em adquirir. A apresentação dos
recursos propostos poderá ser demonstrada em diversos ambientes como ambiente web e
possibilitará também amostra em outros ambientes computacionais.
1.2.2 Objetivos Específicos
→ Estudar as novas linguagens utilizadas em criações de softwares, as linguagens de
programação, os recursos de criação de objetos gráficos através do uso de recursos
computacionais, as novas tecnologias de representações gráficas bem como a realidade
aumentada e o seu funcionamento, e as técnicas de programação de interfaces ricas para
internet (RIA).
→ Analisar e elaborar objetos e ambientes em três dimensões.
16
2 REFERENCIAL TEÓRICO
A ideia de realidade aumentada surgiu com o cientista americano Thomas Caudell que
trabalhava na Boing, empresa de montagem de aviões. Os funcionários da empresa se perdiam
em meio a inúmeros cabos, com isso Caudell teve a ideia de equipar esses operários com
óculos que projetavam etiquetas virtuais diferenciando cada cabo. As etiquetas que eram
compostas por códigos de barra já não realizavam sua função adequadamente, carregar muitas
e todas as informações necessárias. Para resolver esse problema foram criados os códigos de
duas dimensões, que permitiam o armazenamento de uma maior quantidade de informações.
Esses códigos bidimensionais são responsáveis por projetar os objetos virtuais em uma
filmagem do mundo real. Com isso criou-se apenas o protótipo, mas foi a partir daí que surgiu
o conceito de realidade aumentada, ou seja, a realidade que é vista todos os dias incrementada
com elementos virtuais projetados em um visor ou monitor.
As aplicações de realidade aumentada são possíveis graças à combinação dos códigos
de duas dimensões presentes em marcadores e um programa de computador. Os códigos de
duas dimensões permitem a projeção de objetos virtuais no mundo real, com melhora
significativa das informações mostradas, permitindo, assim, uma maior interatividade e ainda
que novas tecnologias sejam utilizadas com maior praticidade.
A realidade aumentada tem como definição a sobreposição de objetos gerados por
computador em um ambiente real. Essa definição deve ser aplicada juntamente com o uso da
Realidade Misturada, que também é uma sobreposição de objetos virtuais em um ambiente
físico, que se tata da mistura do real com o virtual. A realidade misturada permite duas
possibilidades, a virtualidade aumentada que se trata de o ambiente dominante ser o mundo
virtual e a realidade aumentada que tem como ambiente predominante o mundo real.
2.1 Realidade Misturada
A Realidade misturada é a sobreposição de objetos virtuais gerados por computador com
o ambiente físico, mostrada ao usuário, em tempo real, com o apoio de algum dispositivo
tecnológico. A realidade misturada apresenta duas modalidades: realidade aumentada e
virtualidade aumentada. [traduzido de KIRNER, C.; TORÍ, R (2004)].
17
Figura 1 – Diagrama de realidade/virtualidade contínua.
Fonte: KIRNER, C.; KIRNER, C.; TORÍ, R (2004).
2.2 Realidade Aumentada
Segundo KIRNER e TORI (2004) a realidade aumentada pode ser definida de várias
maneiras:
a) É uma particularização de realidade misturada, quando o ambiente principal é
real ou há predominância do real;
b) É o enriquecimento do ambiente real com objetos virtuais, usando algum
dispositivo tecnológico, funcionado em tempo real.
c) É uma melhoria do mundo real com textos, imagens e objetos virtuais, gerados
por computador [Insley, 2003 apud KIRNER, C.; TORÍ];
d) É a mistura de mundos reais e virtuais em algum ponto da
realidade/virtualidade contínua que conecta ambientes completamente reais a
ambientes completamente virtuais [Milgran, 1994 apud KIRNER, C.; TORÍ, R
(2004).];
e) É um sistema que suplementa o mundo real com objetos virtuais gerados por
computador, parecendo coexistir no mesmo espaço e apresentando as seguintes
propriedades:
- 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 audição, tato e força e cheiro
[AZUMA, 2001 apud KIRNER, C.; TORÍ, R (2004).]
18
2.3 Virtualidade Aumentada
De acordo com KIRNER e TORI (2004) a virtualidade aumentada pode ser definida
como uma particularização da realidade misturada, quando o ambiente principal é o virtual ou
há predominância do virtual. É o enriquecimento do ambiente virtual com elementos reais
pré-capturados ou capturados em tempo real.
2.4 Realidade Aumentada Tangível
Segundo SANTOS FILHO (2005), a realidade aumentada tangível utiliza interfaces
tangíveis, que têm por objetivo utilizar objetos reais como dispositivos de entrada e saída para
suas interações.
Suas interfaces utilizam objetos físicos que podem ser controlados, o que faz com que seu
uso seja bem fácil. Nessas interfaces o uso dos dispositivos físicos pode ser combinado com
as alternativas de exibição melhoradas e oferecidas pela sobreposição da imagem virtual.
O projeto apresentado se trata de uma aplicação de realidade aumentada tangível por
funcionar com o uso de um objeto físico, que se trata de um cubo, onde é usado para as
interações de entrada da aplicação proposta.
2.5 Sistemas de Realidade Aumentada
Há três métodos de construção de sistemas de realidade aumentada: óptico, por vídeo e
por monitores. Todos têm como finalidade a combinação dos ambientes reais com os
ambientes virtuais.
2.5.1 Sistemas de Realidade Aumentada Ópticos
Sistemas de realidade aumentada ópticos permitem a visualização de um ambiente real,
de forma direta e também permite a visualização de imagens ou objetos virtuais gerados
através de aplicações.
19
Figura 2 – Diagrama adaptado do sistema de realidade aumentada óptico.
Fonte: AZUMA, 97
2.5.2 Sistemas de Realidade Aumentada por Vídeo
Em sistemas de realidade aumentada por vídeo é possível se visualizar o ambiente real
por câmeras fixas a um capacete, onde têm como papel representar a função dos olhos do
usuário. A cena real, captada pelas câmeras se mistura com elementos virtuais que devem ser
apresentado diretamente nos olhos do usuário do sistema por mini monitores de vídeo
acoplados ao capacete.
Figura 3 – Diagrama adaptado de realidade aumentada por vídeo.
Fonte: AZUMA, 97
20
2.5.3 Sistemas de Realidade Aumentada por Monitores
O funcionamento dos sistemas de realidade aumentada por monitores se trata de um
sistema muito parecido com os sistemas de realidade aumentada por vídeo, mas sua diferença
é de que o combinador de cenas envia a combinação dos mundos reais e virtuais para as
câmeras fixadas ao capacete apresentado no sistema por vídeo que irá ser transmitido
diretamente para um monitor ou projetor.
Figura 4 – Diagrama adaptado e dispositivo do sistema baseado em monitor.
Fonte: AZUMA, 97
2.6 Hardware
Os sistemas de realidade aumentada podem usar dispositivos de hardware de realidade
virtual, porém não obstrui as mãos.
A tecnologia de realidade virtual envolve todo o hardware utilizado pelo usuário para
participar do ambiente virtual. Estão incluídos ai os rastreadores, os capacetes, os
navegadores, luvas, fones de ouvido, as câmeras os dispositivos de reação e outros
dispositivos específicos. (VINCE, 1995, 2004, SHERMAN, 2003 APUD KIRNER, C. ;
TORI, R., 2004).
21
2.7 Software
A realidade aumentada também demanda softwares mais potentes de acordo com que
vão surgindo novas aplicações mais complexas e poderosas.
O software atua na fase de preparação do sistema, como software de autoria de
ambientes 3D, e na fase de execução. (TORI R., KIRNER C., SISCOUTO R., 2006).
Os softwares de autoria podem envolver linguagens, toolkits implementados sob a
forma de bibliotecas, toolkits gráficos e até mesmo game engines.
2.8 ARToolKit
De acordo com SILVA(2006), o ARToolKit foi desenvolvido pelo Dr. Hirokazu Kato
da Universidade de Osaka, Japão e é apoiado pelo Human Interface Technology Laboratory
(HITLab) da Universidade de Washington e pelo HITLab NZ da Universidade de Canterbury,
Nova Zêlandia. O ARToolKit já foi modificado diversas vezes, conforme a necessidade dos
programadores.
O ARToolKit é uma biblioteca para desenvolvimento de aplicações que utilizam
recursos de realidade aumentada, escrito nas linguagens de programação C e C++. Utiliza a
visão computacional para realizar os cálculos referentes à posição e orientação da câmera de
acordo com o marcador em tempo real.
SANTOS FILHO (2005), descreve o funcionamento do ARToolKit da seguinte
maneira, primeiramente, o marcador é capturado em tempo real (Figura 5a) por uma câmera,
onde seu padrão é transformado em binário (preto ou branco) a partir do valor do limiar
(Figura 5b). Na imagem obtida é encontrada uma região quadrada, onde para cada uma delas
existe um padrão já armazenado na base de dados do ARToolKit, caso a região quadrada
represente um marcador que se encontra armazenado, é calculada a posição da imagem
capturada pela câmera. Uma matriz é preenchida com as coordenadas do mundo real que se
referem ao objeto virtual a ser posicionado sobre o marcador e então a imagem virtual é
inserida no dispositivo de reprodução relacionada ao marcador (Figura 5c).
22
(A) (B) (C)
Figura 5: Marcadores no ARToolKit
Fonte: SANTOS FILHO (2005).
Figura 6: Resumo dos passos realizados pelo ARToolKit (HITLab,2004).
Fonte: SILVA, 2006.
2.9 NyARToolKit.
O NyARToolKit é uma biblioteca para desenvolvimento de aplicativos de realidade
aumentada para dispositivos móveis como celulares, baseado no ARToolKit. Foi
desenvolvido para uso em diversas linguagens de programação como JAVA, C++, C# e
ActionScript3. Funciona no sistemas operacionais Windows e Linux.
Junto com o ARToolKit o NyARToolKit em sua versão portátil em JAVA serviu
como base para o desenvolvimento da ferramenta FLARToolKit.
23
2.10 FLARToolKit.
O FLARToolKit se trata da versão para desenvolvimento de aplicativos em realidade
aumentada na linguagem de programação ActionScript 3 para Flash e é baseado nas
bibliotecas ARToolKit e em NyARToolKit na sua versão portátil desenvolvida em JAVA.
Reconhece os marcadores da imagem de entrada calculando sua orientação e posição no
mundo real.
Desenvolvido por Saqoosha, o FLARToolKit é passível de juntar animações e
imagens em três dimensões, como no ARToolKit, bem como animações e aplicações
desenvolvidas com a tecnologia Papervision3D(SAQOOSHA,2010 apud MATOS,2010).
Figura 7: Integração entre FLARToolKit e Papervision3D.
Fonte: PAPERVISION 3D, 2009 apud MATOS, 2010.
2.10.1 Funcionamento do FLARToolKit.
Por ser uma versão do ARToolKit, os princípios básicos de funcionamento do
FLARToolKit são os mesmos, ou seja, é detectada uma imagem pré-cadastrada no sistema
pela webcam e é calculada sua posição através de algoritmos de rastreamento no espaço 3D,
exibindo a aplicação também cadastrada previamente no sistema (PAPERVISION3D,2009
apud MATOS, 2010).
24
2.11 Problemas presentes em aplicações de Realidade Aumentada
Como praticamente todas as aplicações e ferramentas voltadas para a computação
costumam apresentar alguns problemas comuns, a realidade aumentada também tem os seus.
O que deve ser feito é buscar soluções cabíveis para os problemas ou até mesmo tentar
contorná-los, através do correto uso dos marcadores, que são onde as maiorias dos problemas
ocorrem.
Conforme descrito por Kato (ARTOOLKIT, 2010 apud MATOS, 2010) uma das
principais dificuldades encontradas no desenvolvimento de aplicações em realidade
aumentada é o problema do rastreamento do ponto de vista do usuário. Ou seja, para saber em
qual ponto de vista deve ser desenhada a imagem virtual, a aplicação deve saber de onde o
usuário está olhando no mundo real. (MATOS, 2010).
2.11.1 Problemas de Registro
De acordo com AZUMA (1994 apud MATOS, 2010), para o correto funcionamento
das aplicações que utilizam realidade aumentada é necessário que os objetos reais e virtuais
estejam corretamente alinhados para que se tenha uma perfeita ilusão de existências dos
ambientes real e virtual misturados. O alinhamento resultante dos objetos reais e virtuais tem
como definição o nome de registro que possui como função informar ao sistema a posição e
as dimensões dos objetos reais que irão fazer parte do cenário a ser visualizado. (COMPORT,
MARCHAND e CHAUMETTE, 2003 apud MATOS, 2010).
2.11.2 Problemas de Oclusão
Os problemas de oclusão são bastante comuns em aplicações de realidade aumentada,
ocorrem com os marcadores e também com os objetos no mundo real.
Oclusão refere-se ao ato de ocultar (mascarar) porções dos
objetos reais ou virtuais na cena 3D tornando sua coexistência o
mais real possível. (GROHS e MAESTRI, 2002, p. 41 apud
MATOS, 2010).
25
Na figura 8 pode-se observar uma cena contendo dois objetos virtuais, um tabuleiro de
xadrez e uma mulher. O Tabuleiro de xadrez fica oculto parcialmente por um gabinete de
computador real e a mulher oculta parte do ambiente real.
Figura 8: Problema de Oclusão
Fonte: (BALCISOY et al, 2000, p.3 apud MATOS,2010).
A aplicação deveria apresentar a imagem real e, sobre ela, a virtual, que deveria
aparecer sobre o gabinete, caso não existisse a oclusão em parte do tabuleiro.
2.11.3 O Problema da Oclusão nos Marcadores
Ao utilizar os marcadores de uma aplicação em realidade aumentada, o usuário deve
ter o cuidado de não colocar os dedos ou obstruir de forma alguma parte do marcador, pois
quando uma parte do marcador é escondida, a aplicação perde o padrão do marcador e como
resultado o objeto virtual não é mostrado.
SANTOS FILHO (2005) explica que a oclusão não apresenta somente desvantagens,
seu efeito pode ser explorado com o uso de diversos marcadores, como o usuário desejar que
os objetos virtuais de um determinado marcador não sejam mais exibidos.
26
(a) (b)
Figura 9: Exemplo de oclusão nos marcadores. (a) Padrão sendo reconhecido.
(b) Escondendo uma parte da região do padrão do marcador.
Fonte: SANTOS FILHO (2005).
2.11.4 O Problema de Iluminação
Em aplicações desenvolvidas para o uso de técnicas de realidade aumentada existe
uma grande preocupação com a iluminação do ambiente em que a aplicação será usada. Essa
preocupação vem do fato de que pouca iluminação pode interferir no processo de
reconhecimento dos padrões existentes nos marcadores, da mesma forma, marcadores muito
iluminados pode acarretar o surgimento de sombras que devem ser evitadas.
O uso adequado das aplicações quanto à iluminação, deve ser realizado em
iluminações naturais do ambiente.
Segundo SANTOS FILHO (2005), o problema de iluminação deve ser tratado com
muito cuidado, pois a não resolução dele acarreta no não funcionamento adequado da
aplicação. Deve-se utilizar uma luz próximo da luz ambiente. Ambientes com muita
iluminação fazem com que o padrão dos marcadores desapareça, não sendo possível para a
aplicação identificar qual marcador está sendo utilizado. (SANTOS FILHO, 2005).
27
(a) (b)
Figura 10: Problema de iluminação. (a) Marcador com luz ambiente. (b)
Marcador com excesso de luz.
Fonte: SANTOS FILHO (2005).
2.12 Áreas de Utilização de Realidade Aumentada
A realidade aumentada se apresenta em diversos campos como, por exemplo,
publicidade, jogos, educação, medicina, montagem e manutenção dentre outros.
A seguir é apresentada uma especificação e explicação da realidade aumentada
funcionando sobre os campos de atuação apresentados.
2.12.1 Publicidade
A cada dia as empresas buscam diferentes formas de atrair clientes para seus negócios,
a maneira que elas buscam para realizar essa tarefa é através do uso de publicidade e
propaganda e uma nova tecnologia que vem ganhando cada vez mais espaço nessas áreas é a
realidade aumentada, que é utilizada para a produção de anúncios com baixo custo.
Ações publicitárias que usam a tecnologia estão cada vez mais, ganhando espaço e
uma que pode ser citada é, a ação publicitária do carro MINI Cabrio.
28
Figura 11 – Aplicativo de realidade aumentada que demonstra uma ação publicitária
do carro MINI da Cabrio.
Fonte: Cadeia Criativa. 2010.
(http://cadeiacriativa.wordpress.com)
2.12.2 Jogos
Para SANTOS FILHO (2005), uma das áreas mais rentáveis da realidade aumentada é
o setor de entretenimento, onde podem ser criados jogos com técnicas de imersão, onde o
usuário pode utilizar a área de sua casa para se “transportar” ao ambiente de jogo.
Vários jogos que utilizam os recursos de realidade aumentada já foram criados e
existem jogos que vão dos mais complicados ao mais simples, que podem ou não fazer a
utilização de marcadores.
Tem-se como o meio mais interessante para jogos com realidade aumentada, o Kinect,
lançado em 2010 pela Microsoft® como periférico para o console XBOX 360. O Kinect
permite ao usuário jogar sem o controle, usando apenas o seu próprio corpo e movimentos.
O Kinect se trata de um grande exemplo de funcionamento da realidade aumentada.
Nele, tanto o mundo real quanto o virtual, se misturam e interagem com perfeição, com isso o
jogador tem a sensação de estar dentro do jogo.
29
Figura 12: Jogo de boliche utilizando o Kinect.
Fonte: Blog logganinformatica. 2010.
(http://logganinformatica.blogspot.com)
2.12.3 Educação
O uso da realidade aumentada na educação se encaixa muito bem e vai desde aos
sistemas de ensino para crianças deficientes até ao ensino superior.
A utilização da realidade aumentada auxilia no entendimento de gráficos, métodos e
vários outros objetos de estudo, tendo como exemplos adicionais, aplicações de matemática e
um jogo de memória onde as crianças devem associar animais a partir de imagens projetadas.
Com o uso da realidade aumentada o aprendizado é mais bem aproveitado devido à
interatividade que oferece.
Figura 13: Jogo da memória, com vários marcadores.
Fonte: SANTOS FILHO (2005).
30
2.12.4 Medicina
Hoje em dia já existem cirurgias que são realizadas com o uso da realidade aumentada.
Nessas cirurgias o médico tem uma melhor visualização do corpo do paciente, que são
representadas por modelos 3D onde ajudam o médico ao fazer cortes no corpo e reduz os
riscos de prejudicar o paciente.
(a) (b)
Figura 14: Realidade aumentada na medicina: (a) Visualização da movimentação de
um feto no útero; (b) Retirada de um tumor.
Fonte: SANTOS FILHO (2005).
2.12.5 Montagem e Manutenção
Com a utilização de técnicas de realidade aumentada o uso de manuais torna-se não
necessário, pois o usuário terá uma representação em 3D de seu equipamento que mostra os
passos a serem realizados para uma determinada tarefa de manutenção ou montagem. Esse
recurso também pode ser aproveitado em cursos técnicos, onde o aluno deve seguir os passos
apresentados pela iteração 3D e assim, desta forma aprender como realizar determinadas
tarefas de manutenção e montagem de equipamentos.
SANTOS FILHO (2005) descreve uma aplicação interessante que foi desenvolvida
por pesquisadores da Universidade de Columbia, onde ela ajuda usuários no processo de
manutenção de uma impressora a laser.
31
(a) (b)
Figura 15: Mostra uma visão do usuário usando a aplicação: (a) mostra o usuário
olhando para a impressora e utilizando uns óculos translúcidos, (b) mostra a visão da
aplicação, que mostra o modo correto de remover a bandeja de papéis.
Fonte: SANTOS FILHO (2005).
2.13 Modelagem 3D
Os métodos de modelagem em três dimensões oferecidos pela maior parte dos
softwares de modelagem tridimensional, de acordo com Lucena (2002, apud NETO, MELO,
Revista da Pesquisa, AGO/2004 – JUL/2005), podem ser divididos em cinco categorias:
• Formas primitivas;
• Modelagem de Forma Livre;
• Geometria Sólida Construtiva;
• Modelagem por procedimento;
• Modelagem por derivação.
(NETO, MELO, Revista da Pesquisa, AGO/2004 – JUL/2005)
2.13.1 Formas Primitivas
As formas primitivas constituem uma coleção de formas geométricas pré-construídas.
As geometrias mais comuns de acordo com NETO, MELO (AGO/2004 – JUL/2005) são: a
esfera, o cubo, o cilindro e o cone.
32
Figura 16: Formas Primitivas
Fonte: NETO, MELO (Revista da Pesquisa, AGO/2004 – JUL/2005)
2.13.2 Modelagem de Forma Livre
A modelagem de forma livre é caracterizada de acordo com as possibilidades de
manipulação das geometrias, através de suas curvas. Permite ao usuário trabalhar com pontos
isolados da malha ou em conjunto desses pontos. (NETO, MELO, Revista da Pesquisa
,AGO/2004 – JUL/2005).
Figura 17: Manipulação e edição dos pontos da malha das geometrias
Fonte: NETO, MELO (Revista da Pesquisa,AGO/2004 – JUL/2005).
2.13.3 Modelagem de Geometria Sólida Construtiva
NETO, MELO(Revista da Pesquisa, AGO/2004 – JUL/2005) dizem que a forma de
modelagem de Geometria Sólida Construtiva, faz uso de operações de união, intersecção e
diferença entre duas geometrias, para a geração de novas formas tridimensionais, chamadas
de operações booleanas.
Figura 18: Operações booleanas
Fonte: NETO, MELO (Revista da Pesquisa, AGO/2004 – JUL/2005)
33
2.13.4 Modelagem por Procedimento
De acordo com NETO, MELO (Revista da Pesquisa, AGO/2004 – JUL/2005) a
modelagem por procedimento, utiliza um algoritmo para atribuir um tipo de procedimento ou
ação, responsável pela definição de um objeto a ser gerado. Para isso, tem-se diversos tipos de
parâmetros a serem configurados que possibilitam a facilidade de modificação dos atributos
que formam o objeto.
2.13.5 Modelagem por Derivação
Ainda para NETO, MELO (Revista da Pesquisa, AGO/2004 – JUL/2005) o método de
modelagem por derivação, é dividido em três formas de geração de modelos tridimensionais,
mas todas têm relações entre duas ou mais formas bidimensionais para a criação de um objeto
de três dimensões:
• Extrusão: permite que uma cópia da forma bidimensional seja estendida ao
longo de um eixo selecionado.
• Secção transversal serial: permite a conexão de diversas secções
bidimensionais que podem possuir diversas formas e tamanhos.
• Revolução: Dentro da modelagem por derivação, a técnica de revolução
utiliza um giro completo em torno do próprio eixo de uma forma bidimensional.
2.13.6 Renderização
A renderização se trata de uma técnica necessária para que todos os parâmetros dos
objetos criados sejam calculados e transferidos para uma imagem final. É importante relatar
que, a tridimensionalidade de uma imagem é ilusória, uma vez que tanto o processo de
criação, quanto a imagem final, estão fixadas à um plano bidimensional. (NETO, MELO,
Revista da Pesquisa, AGO/2004 – JUL/2005).
Para que a imagem final seja criada, de acordo com Kerlon (2000 apud NETO, MELO
Revista da Pesquisa, AGO/2004 – JUL/2005), há três métodos de renderização:
• Z-Buffer: Os objetos são espalhados de acordo com seus parâmetros de
profundidade na cena, que devem ser guardados em um meio de armazenagem
34
temporário usado para compensar as diferenças nas taxas de dados e o fluxo de dados
entre dois dispositivos (por exemplo, um computador e uma impressora), para
verificar se determinado ponto de cada objeto criado está visível.
• Ray Tracing: Realiza cálculos dos caminhos, no ambiente 3D, dos raios
emitidos por uma fonte de luz, desta forma é possível visualizar o efeito de fontes de
luz, uma vez que o método de Z-Buffer não tem atenção ao trajeto dos raios luminosos
que estiveram sendo transmitidos do interior de um material transparente.
• Radiosity: É o método responsável por calcular a transferência da quantidade
de luz entre as superfícies de todos os objetos na renderização até que a energia da luz
seja absorvida pelas superfícies, ou dissipada no espaço. Esse método também é
responsável pelo cálculo da direção da luz para todo o ambiente relacionado com o
objeto criado.
2.13.7 Texturas
As texturas são as características de uma superfície, onde se torna possível a
identificação e diferenciação de objetos e formas, portanto, uma textura se trata de uma
sensação visual e/ou tátil.
Existem dois tipos de texturas, as naturais, que são aquelas que caracterizam os
aspectos do exterior de formas e coisas existentes na natureza, como por exemplo, as pedras,
folhas, peles, solo, madeira, etc.
Também existem as texturas artificiais, que são resultantes da intervenção do ser
humano, são criadas a partir da manipulação de materiais e de técnicas utilizadas nas
linguagens plásticas. As texturas artificiais podem ser criadas com características ornamentais
ou funcionais.
Em objetos virtuais, as texturas que os compõe, retratam exatamente as texturas
naturais e artificiais existentes, que são usadas para criar um melhor visual e representação do
modelo computacional criado.
Figura 19: Exemplo de textura artificial.
Fonte: ensinarEVT, 2011. (http://ensinarevt.com)
35
2.13.8 Google SketchUp
O Google SketchUp é um sistema simples, fácil de aprender e intuitivo de usar, usada
como ferramenta para criar, explorar, exportar e importar modelos em 3D.
É um sistema em que se podem criar modelos em três dimensões partindo do zero ou
usando dados existentes, importando desenhos, plantas, fotos, imagens aéreas e outras
informações que podem ser usadas como ferramentas para modelagem. Com o SketchUp é
possível ser exportados os objetos modelados para o formato COLLADA (.dae).
2.13.9 Blender
O Blender se trata de um conjunto de ferramentas para a criação de conteúdos em três
dimensões. Permite executar tarefas completas para modelagem como, renderização,
animação, pós-produção, criação e visualização de conteúdo 3D interativo, com os benefícios
de portabilidade. (Blender Org.).
É também utilizado para visualizar espaços tridimensionais, imagens estáticas, assim
como vídeos em alta definição, possui um motor 3D em tempo real, que permite a criação de
conteúdos 3D interativos. (Blender Org.). Foi desenvolvido pela empresa Not a Number, e
agora é desenvolvido como software livre pela Blender Foundation. (Blender Org.). Com o
Blender é possível ser exportados os objetos modelados para o formato COLLADA (.dae).
2.13.10 Collada (.dae)
Formato utilizado por ferramentas de modelagem 3D e utilizado em aplicações com
recursos de realidade aumentada que oferecem visualizações em três dimensões.
COLLADA são atividades colaborativas de design para definir um padrão de
esquemas de recursos digitais interativos para aplicações 3D. Tem por definição um esquema
de banco de dados que permite que aplicações de criação 3D troquem de forma livre, ativos
digitais sem perda de informação. O formato COLLADA é capaz de suportar todos os
recursos que aplicações interativas 3D necessitam, como efeitos de sombreamento.
(Collada.org).
36
Figura 20: Especificação do formato de objetos 3D COLLADA (.dae)
Fonte: Figura adaptada de KHRONOSTM, COLLADATM. (2008).
2.14 Flash
Flash é uma tecnologia usada na Web que possibilita a criação de animações vetoriais.
O uso de gráficos vetoriais permite realizar animações de pouco peso, ou seja, que demoram
pouco para ser carregadas. (ALVAREZ, 2004).
Segundo o site CriarWeb e ALVAREZ(2004) o flash utiliza a linguagem de
programação ActionScript, que permite executar diferentes partes de uma animação ou
aplicação em função de eventos produzidos pelo usuário.
2.15 RIA (Rich Internet Application)
Dando início à próxima inovação no lado dos clientes na internet, foi construída, pela
Adobe®, uma interface para internet que irá melhorar a qualidade dos aplicativos de usuário
final, tornando a internet mais relevante e útil para empresas e consumidores.
Trata-se de um avanço na prestação de experiências efetivas para usuários finais,
permitindo que aplicações de Internet, que mistura conteúdos de aplicações, de lógica e de
comunicações, seja um mecanismo mais agradável e útil para os clientes, essa é uma
alternativa bastante interessante que fornece uma arquitetura sólida e dinâmica.
Aplicações para uso da Realidade Aumentada são sistemas que possuem uma
interatividade com o usuário, por esse motivo são criadas dando maior importância ao
37
usuário, por isso são consideradas como aplicação RIA, essas são sistemas independentes que
garantem flexibilidade e são executados a partir de navegadores de internet.
38
3 METODOLOGIA
Para o desenvolvimento do projeto foram feitos estudos de materiais como aplicativos,
imagens e vídeos que utilizam e exemplificam o uso da realidade aumentada para diversos
fins. Depois disso, foram realizados ainda, estudos mais aprofundados para levantamento de
requisitos e o desenvolvimento da engenharia de software que trata o sistema do projeto.
Posteriormente foram feitos novos estudos e desenvolvimento dos ambientes e objetos em
3D, que serão utilizados para a execução do projeto e assim foi realizada a integração e o
funcionamento com os ambientes e objetos tridimensionais.
39
4 DESENVOLVIMENTO
O projeto foi desenvolvido através do uso de ferramentas de modelagem 3D como o
Google Sketchup e Blender. A implementação dos códigos (Marcadores) e interpretação da
realidade aumentada foi feita na linguagem de programação ActionScript usando o kit de
desenvolvimento FLARToolKit em sua versão 2.5.4 e também com o uso da biblioteca
gráfica PaperVision3D. Outras linguagens e kits de desenvolvimento mais conhecidos que
permitem a criação de aplicativos que utilizam a realidade aumentada são, JAVA e C++ que
usam os ToolKits, JARToolKit e ARToolKit respectivamente.
A figura 21 especifica as fases do projeto:
Figura 21: Fases de desenvolvimento do projeto. Desenvolvimento evolucionário
exploratório.
Fonte: Imagem adaptada de (SOMMERVILLE, 2007 apud MATOS, 2010).
Segue uma breve descrição das ferramentas citadas:
4.1 Ferramentas de Modelagem 3D
• Google Sketchup: Ferramenta utilizada para criar modelos de objetos e ambientes em
3D. Foi o software utilizado para modelagem dos objetos 3D no presente projeto.
• Blender: Software de código aberto, desenvolvido pela Blender Foundation, para
modelagem, animação, texturização, composição, renderização, edição de vídeo e criação de
aplicações interativas em 3D. Também foi utilizado para modelagem dos objetos 3D do
trabalho.
40
4.2 Linguagem de Programação: ActionScript
A linguagem de programação utilizada no projeto foi a ActionScript, que se trata de
uma linguagem de programação usada para criar aplicações em Flash. Possibilita a criação de
projetos interativos ou aplicações complexas que envolvam base de dados e serviços web.
4.3 Kits de Desenvolvimento
O ARToolKit se trata de uma biblioteca de software utilizada para desenvolvimento de
aplicações em realidade aumentada, baseada nas linguagens C e C++. Possui código aberto
que possibilita alteração e ajustes para aplicações especificas. Não foi utilizado no projeto
devido a existência de vários problemas na ferramenta.
O JARToolKit se trata de uma biblioteca criada na linguagem de programação JAVA,
feita dos princípios da biblioteca ARToolKit. Possibilita desenvolver aplicações sobre
realidade aumentada, utilizando comandos gerados pelo vídeo capturado, possibilitando o uso
em várias aplicações no assunto.
O Kit de desenvolvimento utilizado para a implementação do projeto, se trata do
FLARToolKit que é uma ferramenta de código aberto, portanto livre e gratuita, que junto à
biblioteca PaperVision3D, possibilita desenvolver aplicativos para web que utilizam a
realidade aumentada, usando a linguagem de programação ActionScript.
4.4 PaperVision3D
A Biblioteca PaperVision3D possui código aberto e é utilizada para criar e modelar
objetos virtuais em três dimensões. A PaperVision3D foi utilizada para o desenvolvimento do
trabalho, integrando-a junto ao kit de desenvolvimento FLARToolKit.
4.5 Descrição do Esboço
O projeto se trata do desenvolvimento de uma aplicação que utiliza recursos de
realidade aumentada para visualização de ambientes de casas e outros imóveis, podendo
41
também possibilitar visualizações de outros tipos de ambientes. Portanto refere-se a um
sistema de imobiliária virtual.
Com o uso dos recursos de realidade aumentada, a aplicação irá possibilitar também a
capacidade de reconhecimento angular do código de realidade aumentada para a
movimentação em um ambiente tridimensional do imóvel apresentado para a visualização do
usuário.
Para a utilização da aplicação, os códigos/marcadores de realidade aumentada foram
impressos em um cubo, onde cada face possui um código/marcador que representa um
cômodo ou uma parte do imóvel, onde é apresentado um ponto inicial com determinada
visualização do ambiente. Outro código/marcador é utilizado para a visualização de
praticamente todo o ambiente, para um movimento de zoom, a face do cubo com o
código/marcador referente ao ambiente que o usuário deseja visualizar deve ser aproximada
da câmera para efeito de zoom (aumentar) ou afastada da câmera para ver o ambiente como
todo (diminuir). Ao se inclinar a o código/marcador adicional são realizadas mais algumas
ações:
• Código/Marcador, quando inclinado para frente, é realizada a ação de “olhar
para baixo”, sendo mostrado assim o chão do ambiente.
• Código/Marcador sendo inclinado para trás, realiza a ação de “olhar para cima”,
assim possibilitando a visualização do teto do ambiente.
• Ao se tombar o código/marcador para qualquer um dos lados (esquerda ou
direita) irá ser realizada a ação de “olhar para” o lado que o código/marcador foi tombado,
mostrando assim as partes da esquerda e da direita do ambiente.
• Para uma mudança de cômodos ou ambientes, simplesmente muda-se a face do
cubo.
Para o uso da aplicação foram modeladas algumas formas geométricas em 3D, e uma
pequena sala com uma mesa no centro que foram utilizadas em testes.
42
(a) (b)
Figura 22: Cilindro com texturas. (a) Cilindro apresentado na ferramenta de
modelagem. (b) Teste do Cilindro na aplicação.
Fonte: do Autor
(a) (b)
Figura 23: Cubo com texturas. (a) Cubo apresentado na ferramenta de modelagem. (b) Teste
do cubo na aplicação.
Fonte: do Autor
43
(a) (b)
Figura 24: Quarto com texturas. (a) Quarto apresentado na ferramenta de modelagem. (b)
Teste do quarto criado na aplicação.
Fonte: do Autor
44
4.6 Diagrama de Atividades (Fluxo de Execução)
Figura 25: Diagrama de Atividades do sistema (Fluxo de execução).
Fonte: do Autor.
45
4.7 Códigos/Marcadores
Figura 26: Códigos/Marcadores do cubo de representação de ambientes.
Fonte: do Autor.
Figura 27: Exemplo de Código/Marcador para controle da movimentação dos
ambientes.
Fonte: do Autor.
46
4.8 Especificações (Engenharia de Software)
A Engenharia de Software se trata de um estudo e aplicação para o desenvolvimento,
operações e manutenção de softwares, usada para dar uma maior qualidade e produtividade ao
software, relacionada aos aspectos de produção, desde os estágios iniciais de especificação do
sistema até sua manutenção.
Devido ao projeto ser um tipo de software e possuir dificuldades para sua criação, será
necessária a implementação da Engenharia de Software, visando demonstrar as
funcionalidades e recursos do sistema, como pode ser visto a seguir.
4.8.1 Requisitos Funcionais
RF #1: Os marcadores deverão ser impressos no formato de um cubo, ou outra forma
geométrica que possibilite a impressão de um marcador em cada face e que seja uma peça que
ofereça a possibilidade de ser montada a partir de uma matriz de papel.
RF #2: Cada face do cubo deverá possuir um marcador diferente que represente um ambiente
diferente.
RF #3: O controle do ambiente virtual deverá ser realizado por um marcador específico para
controle.
RF #4: A impressão deverá ser feita em papel fosco, para evitar falhas no reconhecimento do
marcador.
RF #5: O computador do usuário deve possuir webcam instalada e em perfeito funcionamento
para o reconhecimento das imagens.
RF #6: As matrizes de montagem do cubo deverão ser disponibilizadas pela divulgadora por
meio de folders com a matriz para recortar e montar e as instruções de montagem, e por meio
do site, através do download de um arquivo PDF (Portable Document Format) contendo a
matriz e as instruções de montagem além do marcador de controle.
47
RF #7: Durante a simulação o usuário poderá definir o ângulo de visão, ampliar a visão
(aplicar ou retirar o zoom) e rotacionar a sua visão, por meio de movimentos com o marcador
de controle.
RF #8: O sistema deve apresentar a interface e as instruções de uso em português.
4.8.2 Requisitos não Funcionais
RNF #1: O sistema deve ser implementado na linguagem FLASH, visando a construção de
um sistema flexível quanto a plataforma a ser utilizada. O sistema pode rodar em diferentes
sistemas operacionais, por exemplo: Windows ou Linux, e ter versões para dispositivos
móveis.
RNF #2: O sistema deve fornecer ao usuário uma interface amigável e intuitiva, que obedeça
aos princípios básicos da Realidade Aumentada.
4.8.3 Limitações do Sistema
LS #1: O sistema requer o sistema Operacional Windows XP ou Linux equivalente, com
Adobe Flash Player 9 ou superior instalado e navegadores Microsoft Internet Explorer 8,
Mozilla Firefox 3 e Google Chrome 4 ou suas respectivas versões superiores.
LS #2: O sistema requer uma câmera com qualidade VGA (640X480 pixels) ou superior.
LS #3: O sistema requer uma conexão banda larga de no mínimo 256Kbps.
4.8.4 Requisitos de Desempenho
• RD #1 – O sistema deverá ser executado em tempo real.
48
4.8.5 Diagramas de Caso de Uso
Em práticas de UML, o desenvolvimento dos diagramas de Caso de Uso tem como
objetivo a modelagem do sistema.
No sistema em questão, foi identificado apenas um ator: o Usuário.
• UC #1 – Caso de uso 1.
Figura 28: Caso de uso #1.
Fonte: do Autor
O usuário deverá escolher o lado correspondente ao ambiente que deseja exibir através
do uso do cubo de marcadores de ambientes, então irá ser definido o modo de visão desejado,
aplicando movimentação e rotação ao ambiente.
É composto pelos casos de uso Escolhe_Lado e Define_modo_visao.
Descrição:
• Escolhe_Ambiente
→Ator: Usuário
→Pré-Condições: A aplicação deve ter sido iniciada
→Curso Normal: O usuário acessa o site da aplicação ou ambiente e exibe à
câmera a face do cubo que contém o ambiente desejado.
49
→Curso de Execução: Se não houver um marcador válido, o ambiente não
será exibido.
• UC #2 – Caso de Uso 2.
Figura 29: Caso de uso #2
Fonte: do Autor
• UC #3 – Caso de Uso 3.
Figura 30: Caso de uso #3
Fonte: do Autor
Descrição:
• Define_Modo_Visao
→Ator: Usuário
50
→Pré-Condições: A aplicação deve ter sido iniciada e o ambiente
escolhido.
→Curso Normal: Após a escolha do ambiente, o usuário define o modo de
visão de acordo com a rotação e a inclinação aplicada.
→Curso de Execução: Se não houver um marcador válido, o ambiente não
será exibido.
4.8.6 Diagrama de Estados
Figura 31: Diagrama de estados
Fonte: do Autor
4.9 Validação
Com a aplicação já funcionando, então o modelo do ambiente, modelado em três
dimensões que resultou em um arquivo de extensão COLLADA(.dae) é importado e
associado ao código/marcador que irá ser responsável por sua demonstração na aplicação.
Depois de ser realizada essa tarefa, é exportado o arquivo .fla, que executa o código
ActionScript feito anteriormente. Depois de realizadas essas tarefas, o projeto descrito se
encontra pronto para a realização de testes de suas funcionalidades.
51
4.10 Problemas Enfrentados
Assim como em todo trabalho e projeto, neste também foram enfrentadas algumas
dificuldades tais como, a escolha do kit de desenvolvimento e a criação do modelo 3D dos
ambientes.
4.10.1 Instalação de Kits de Desenvolvimento
Na primeira tentativa de instalação do kit de desenvolvimento para a linguagem de
programação JAVA, o JARToolKit, houveram dificuldades de instalação e integração com a
IDE de desenvolvimento gratuita ECLIPSE e, consequentemente, com a utilização da
ferramenta.
A outra dificuldade foi que, uma vez que não foi possível a instalação do JARToolKit
com sucesso, houve nova tentativa de instalação e integração com o software de
desenvolvimento Visual Studio em suas versões 2010 e 2008, o ARToolKit, nesse caso
também não foi obtido êxito.
Diante das tentativas fracassadas, finalmente obteve-se sucesso com a instalação e
integração de outro kit de desenvolvimento encontrado, o FLARToolKit, sendo utilizada sua
IDE de desenvolvimento FLASHDEVELOP na versão 3.3.1.
4.10.2 Criação do Modelo 3D dos Ambientes
Na criação do modelo 3D a dificuldade enfrentada foi a de integração das texturas que
compõem e colorem o modelo a ser apresentado pela aplicação.
Foi realizada tentativas com modelos feitos nos ambientes de modelagem Google
SketchUp e Blender, associando-se aos modelos criados suas texturas e, logo após de
concluído, o modelo gerado foi exportado pelas próprias ferramentas de modelagem 3D para
o formado .dae compatível com a aplicação. Após realização dessas tarefas, o modelo foi
integrado ao sistema, colocando-se o nome do modelo e associando-o ao código em
ActionScript 3 criado para a aplicação e, também, acrescentando-se o modelo a ser
apresentado pela aplicação no diretório bin do projeto.
52
Depois de inúmeros testes observou-se que, deveriam ser colocadas na pasta bin do
projeto, a pasta “images” gerada na conversão do modelo para .dae, que contém as texturas,
criando-se um arquivo de texto em bloco de notas com o nome de “textures”, para que assim
fosse sendo indicado o caminho de cada textura, como mostra o exemplo a seguir:
<../images/texture0.jpg> <../images/texture0.jpg><../images/texture0.png>
Com esses passos realizados, foi obtida satisfatoriamente a apresentação correta do
modelo 3D do ambiente a ser apresentado pela aplicação. Porém, surgiu nova dificuldade
quanto à implementação do tamanho de exibição do modelo, onde deveriam ser configurados
no código da aplicação, acessando-se a classe “ProjetoPapervision3D.as”, sendo possível
solucioná-la a partir da configuração do padrão, “modeloDAE.scale”, para um valor sempre
positivo que faz com que o modelo tenha um tamanho adequado para sua apresentação.
Também houve um problema de posição inicial do objeto 3D, que foi resolvido, setando-se
corretamente o parâmetro “modeloDAE.rotationX”, também presente na classe
“modeloDAE.scale”.
A seguir é mostrado o código da classe citada:
private function configurarPapervision3D():void
{
baseModelo = new FLARBaseNode();
cena3D = new Scene3D();
camera3D = new FLARCamera3D(parametrosCamera);
viewport3D = new Viewport3D(larguraTela, alturaTela);
renderizador = new LazyRenderEngine(cena3D, camera3D,
viewport3D);
modeloDAE = new DAE();
modeloDAE.load(arquivoModelo);
modeloDAE.rotationX = 90;
modeloDAE.scale += 2
baseModelo.addChild(modeloDAE, "modelo");
Cena3D.addChild(baseModelo);
}
53
4.11 Resultados
Após a resolução dos problemas, foram obtidos resultados satisfatórios para a
apresentação adequada do projeto.
Foi conseguida a integração das texturas ao modelo 3D do ambiente a ser apresentado
pelo projeto, onde o primeiro teste feito obteve um bom resultado com o uso de um modelo
do Estádio Governador Magalhães Pinto (Mineirão), antes de sua reforma para a Copa do
Mundo de 2014 e o Estádio Olímpico João Havelange (Engenhão) obtidos no site do
Armazém 3D do Google para SketchUp.
Figura 32: Cubo com um código/marcador por face para interação com a aplicação.
Fonte: do Autor.
Figura 33: Realidade Aumentada do Estádio Olímpico João Havelange (Engenhão).
Fonte: do Autor.
54
Figura 34: Realidade Aumentada do Estádio Governador Magalhães Pinto (Mineirão).
Fonte: do Autor.
Figura 35: Realidade Aumentada da vista de cima de um quarto.
Fonte: do Autor.
Figura 36: Realidade Aumentada da vista de cima de um quarto.
Fonte: do Autor.
55
Figura 37: Realidade Aumentada da vista de um dos lados de uma sala.
Fonte: do Autor.
Os resultados foram obtidos devido às soluções dos problemas apresentados e pelo uso
do sistema, onde é mostrado para a câmera do computador um dos marcadores utilizados pela
aplicação, onde é reconhecido o padrão do marcador utilizado, e assim mostrado no vídeo o
modelo 3D do ambiente associado àquele marcador.
56
5 CONCLUSÃO
O uso do projeto concluído implicará na praticidade que o mundo moderno exige, com
rapidez, qualidade do produto oferecido bem como do serviço prestado. No caso desse projeto
em si, observa-se o pouco investimento e os preços acessíveis dos equipamentos para a
utilização do software.
Quanto à proposta do projeto, viabiliza-se seu uso em diversas áreas como em
empresas de publicidade e propaganda, construtoras, imobiliárias, e também por vários
profissionais como arquitetos, paisagistas e engenheiros, que poderão apresentar seus projetos
de forma fácil, prática, rápida e inovadora.
Com relação às dificuldades encontradas durante a execução desse trabalho, destaca-se
que, uma vez tratando-se de um conteúdo novo e ainda em fase de expansão, não existem
ferramentas completas e estáveis que auxiliem a implementação dos aplicativos; observa-se a
necessidade de maiores esforços para a criação de ferramentas mais eficientes.
Sugere-se que, diante de uma proposta tão atual e dinâmica, mais estudos sejam
realizados para a construção de novas ideias e projetos no ramo da Realidade Aumentada, e
que esse trabalho sirva como referencial e que possa ser utilizado por outras pessoas
interessadas em criar novos projetos com aplicações de mesma capacidade.
57
6 TRABALHOS FUTUROS
Com a conclusão e funcionamento do projeto, ele poderá ser apresentado como um
produto a ser comercializado através de imobiliárias que estiverem interessadas em apresentar
seus imóveis de uma forma inovadora, prática e cômoda. Também serão abertas novas
possibilidades para uso em novos projetos, onde são indicados o desenvolvimento de novos
ambientes de apresentação em 3D usando os recursos da realidade aumentada, para tais
indicações, é apresentado a implementação e melhoria em ambientes web e móvel.
Deverá ser criado também um ambiente computacional onde o usuário poderá
importar modelos 3D dos interiores de residências, lojas, ambientes externos e outros espaços,
feitos em softwares como AutoCad, Google SketchUp, Blender e outros, onde o sistema
deverá gerar à partir desses modelos a realidade aumentada do ambiente correspondente. Essa
aplicação poderá ser usada em lojas de vendas de acabamentos e para projetistas de imóveis.
58
7 REFERÊNCIAS BIBILIOGRÁFICAS
•ActionScript. Disponível em: <http://www.unaerp.br/comunicacao/professor/andrea/
arquivos/action_script_pd.pdf>. Acesso em 05 de Maio. 2011.
• Afinal o que é Engenharia de Software? Disponível em: <http://www.portalarquiteto.com.
br/afinal-o-que-e-engenharia-de-software>. Acesso em 23 de Mar. 2011.
• AZUMA, R.T. A Survery of Augmented Reality. UNC Chapel Hill, In Presence:
Teleoperators and Visual Environments, 1997.
• Blender Org. Manual-Introduction. Disponível em: <http://wiki.blender.org/index.php/Do
c:PT/Manual/Introduction>. Acesso em 05 de Maio. 2011.
• Blender. Disponível em: < http://www.blender.org/>. Acesso em 05 de Maio de 2011.
• Blog Logganinformatica. Game Kinect. Disponível em:<http://logganinformatica.blogspot
.com/2011/02/games-kinect.html>.Acesso em 05 de Maio de 2011.
• Cadeia Criativa. O que é Realidade Aumentada. Disponível em: <http://cadeiacriativa.w
ordpress.com/2010/11/08/como-funciona-realidade-aumentada>. Acesso em 05 de Maio de
2011.
• Collada.org. COLLADA. Disponível em: <https://collada.org/mediawiki/index.php/COLL
ADA>. Acesso em 19 de Maio. 2011.
• ensinarEVT. A Textura. Disponível em:< http://ensinarevt.com/conteudos/textura/index.ht
ml>. Acesso em 17 de Nov. 2011.
• Google Armazém 3D. Disponível em: <http://sketchup.google.com/3dwarehouse/?hl=pt-
BR>. Acesso em 18 de Out. 2011.
59
• Google Sketchup. Disponível em: <http://sketchup.google.com/ >.Acesso em 4 de Dez. de
2010.
• KHRONOStm, COLLADAtm. COLLADA OVERVIEW. 2008. 29 f.
• KIRNER, C. ; TORI, R. (2004) - Introdução à Realidade Virtual, Realidade Misturada e
Hiper-realidade. In: Kirner, C.; Tori, R. (Org.). Realidade Virtual: Conceitos, Tecnologia e
Tendências. 1 ed. São Paulo: Editora SENAC, 2004, v. 1, p. 3-20. Disponível
em: <http://www.realidadevirtual.com.br/cmsimple-rv>. Acesso em 9 de Maio. 2011.
• MATOS, Raul César do Carmo. Projeto de um Protótipo de Aplicação Web com
Realidade aumentada. 2010. 78 f. (Graduação em Informática para Gestão de Negócios) –
Faculdade de Tecnologia da Zona Leste, Centro Paula Souza. Disponível em: <
http://fateczl.edu.br/TCC/2010-2/TCC-010.pdf>. Acesso em 9 de Maio. 2011.
• NETO, Walter Dutra da Silveira., MELLO, Andrei Krepsky. Técnicas de animação em 3D.
Revista da Pesquisa, Florianópolis,1,2, Ago/2004 – Jul/2005. Disponível em:
<http://www.ceart.udesc.br/revista_dapesquisa/volume1/numero2/design/animacao_ambiente
s_3D.pdf> Acesso em 13 de Maio. 2011.
• NyARToolKit. Disponível em: <http://nyatla.jp/nyartoolkit/wiki/index.php>.Acesso em
11 de Maio. 2011.
• O que é FLARToolKit. Disponível em: < http://www.libspark.org/wiki/saqoosha/FLARTo
olKit/en >. Acesso em 11 de Maio. 2011.
• O que é Flash. Disponível em: < http://www.criarweb.com/artigos/282.php>. Acesso em 19
de Maio. De 2011.
• Realidade Aumentada. Disponível em: <http://www.realidadeaumentada.com.br>. Acesso
em 13 de Set. 2010.
60
• Realidade Virtual e Aumentada: Definições. Disponível em: <http://www.ckirner.com/rea
lidadevirtual/?DEFINI%C7%D5ES>. Acesso em 20 de Mar. 2011.
• RIA. Rich Internet applications. Disponível em: <http://www.adobe.com/resources/busine
ss/rich_internet_apps/>. Acesso em 19 de Out. 2011.
• SANTOS FILHO, Clovis de Oliveira. Estudo e aplicações da Realidade Aumentada.
2000. 70 f. (Bacharelado de Engenharia da Computação) – Departamento de Sistemas
Computacionais, Escola Politécnica de Pernambuco. Disponível em:
<http://dsc.upe.br/~tcc/20052/ClovisSantos.pdf>. Acesso em 20 de Mar. 2011.
• SILVA, Réryka Rubia P.C.L. Ambiente Colaborativo com Realidade Aumentada. 2006.
93 f. (Mestrado em Ciência da Computação) – Faculdade de Ciências Exatas e da Natureza,
Universidade Metodista de Piracicaba. Disponível em: <
http://www.unimep.br/phpg/bibdig/pdfs/2006/CDSMFSPRWSTN.pdf >. Acesso em 11 de
Maio. 2011.
• TORI R., Kirner C., SISCOUTO., R. Livro do Pré-Simpósio: Fundamentos Tecnologia de
Realidade Virtual e Aumentada. Belém: Editora SBC, VIII Symposium on Virtual Reality.
2006. Disponível em: <http://143.54.31.10/ce-rv/documentos/introd-conceitos-rv-
ra%5B1%5D.pdf>. Acesso em 9 de Maio. 2011.