02 - ferramentas para desenvolvimento de aplicações de ra ... - ferramentas para... · realidade...

29
Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos Sementille 2 . Ferramentas para Desenvolvimento de Aplicações de Realidade Aumentada (Parte 2) Sumário da Apresentação Introdução Visão geral da hierarquia das principais ferramentas de desenvolvimento Sistemas Operacionais Bibliotecas Gráficas Bibliotecas de Comunicação Pacotes Gráficos ( de RV e RA) Pacotes de Desenvolvimento (de RV e RA) BIBLIOTECAS DE COMUNICAÇÃO - MPI – Message-Passing Interface - PVM – Parallel Virtual Machine Bibliotecas de Comunicação 5 Sistemas distribuídos “Coleção de computadores autônomos interligados através de uma rede de computadores e equipados com software que permita o compartilhamento dos recursos do sistema: hardware, software e dados" George Coulouris “Coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente” Andrew Tanenbaum BIBLIOTECAS DE COMUNICAÇÃO Sistema Distribuído de Realidade Virtual 1. Uma sensação de espaço compartilhado Uma sensação de estar localizado em um mesmo lugar. A mesma cena, sons, etc. 2. Uma sensação de presença pessoal compartilhada Avatar 3. Uma sensação de tempo compartilhado 4. Um modo dos participantes se comunicarem 5. Uma forma de compartilhamento

Upload: phungtu

Post on 09-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 1

Realidade Aumentada

Prof. Dr. Antonio Carlos Sementille

2 . Ferramentas para Desenvolvimento de Aplicações de Realidade Aumentada(Parte 2)

Sumário da Apresentação

� Introdução

� Visão geral da hierarquia das principais ferramentas de desenvolvimento◦ Sistemas Operacionais

◦ Bibliotecas Gráficas

◦ Bibliotecas de Comunicação

◦ Pacotes Gráficos ( de RV e RA)

◦ Pacotes de Desenvolvimento (de RV e RA)

BIBLIOTECAS DE COMUNICAÇÃO- MPI – Message-Passing Interface- PVM – Parallel Virtual Machine

Bibliotecas de Comunicação

5

Sistemas distribuídos� “Coleção de computadores

autônomos interligados através de uma rede de computadores e equipados com software que permitao compartilhamento dos recursos do sistema: hardware, software e dados" George Coulouris

� “Coleção de computadoresindependentes que se apresenta aousuário como um sistema único e consistente” Andrew Tanenbaum

BIBLIOTECAS DE COMUNICAÇÃO

Sistema Distribuído de Realidade Virtual1. Uma sensação de espaço compartilhado

◦ Uma sensação de estar localizado em um mesmolugar.

◦ A mesma cena, sons, etc.

2. Uma sensação de presença pessoal compartilhada◦ Avatar

3. Uma sensação de tempo compartilhado

4. Um modo dos participantes se comunicarem

5. Uma forma de compartilhamento

Page 2: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 2

Cenários das Aplicações

1. Treinamento/Simulação◦ Campanha militar - tanques, aviões,

infantaria

2. Projetos de Engenharia◦ Aviões - asas, motor, etc.

3. e-commerce◦ Comprando produtos

4. Jogos on-line Sistemas Distribuídos de

Realidade Virtual

� Fraunhofer CVE, http://www.crcg.edu

10

Motivação para Arquiteturas paralelas

� Performance� Custo

� Disponibilidade e confiabilidade

BIBLIOTECAS DE COMUNICAÇÃO

11

Middleware

� Camada que fornece um link entre aplicações distintas.

� Conjunto reusável e expansível de serviços e funções comumente necessários por parte de várias aplicações para funcionarem bem em um ambiente de rede. (NGI workshop, ’97)

BIBLIOTECAS DE COMUNICAÇÃO

12

Middleware (cont.)� Facilita o desenvolvimento de

aplicações distribuídas.

Cliente Servidor

Middleware Middleware

BIBLIOTECAS DE COMUNICAÇÃO

Page 3: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 3

13

MPI - Message-Passing Interface

� Um processo é (tradicionalmente) um PC + espaço de endereçamento

� Programas podem ter múltiplas threads compartilhando um único espaço de endereçamento.

� MPI é para a comunicação entre processos com espaços de endereçamento separados

� Comunicação inter-processos consistem de:◦ Sincronização

◦ Movimentação de dados

BIBLIOTECAS DE COMUNICAÇÃO

14

O que é MPI ?

� Message-Passing Interface� Especificação de uma biblioteca para

a passagem de mensagens◦ Não é uma linguagem◦ Não é um produto ou uma implementação

específica

� Desenhada para computadores paralelos

MPI - Message-Passing Interface

15

Por que usar MPI?

� MPI provê uma maneira poderosa, eficiente e portável de expressar programas paralelos.

� Possibilidade de desenvolvedores escreverem bibliotecas paralelas.

� MPI foi explicitamente desenhada para esse propósito

MPI - Message-Passing Interface

16

PVM - Parallel Virtual Machine

� Máquina Paralela Virtual� Biblioteca para criar uma MPV sobre um Sistema

Distribuído heterogêneo� Pode ser usado gratuitamente

◦ Linux, Windows, BSD, Alpha, SG, Sparc...� Programas PVM � SPMD ou MPMD

◦ SPMD� Mesmo programa rodando em vários nós, cada um

trabalhando em uma parte do problema

◦ MPMD� Programas diferentes trabalhando sobre dados diferentes

� Composto por◦ Deamon (pvmd) e biblioteca (libpvm)

17

� Comunicação unicast, broadcast ou multicast

� Send/receive bloqueante ou não

� Sem tolerância a falhas◦ Se coordenador sair do ar, MPV cai

PVM - Parallel Virtual Machine PACOTES GRÁFICOS� PARA REALIDADE VIRTUAL

Pacotes Gráficos

Page 4: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 4

Open Scene Graph

PACOTES GRÁFICOSPARA REALIDADE VIRTUAL � Biblioteca para grafos de cena

� Construída no topo do OpenGL� C++ API� Orientada aos objetos� Código aberto� Popularidade crescente na comunidade

gráfica � Usado comercialmente (Boeing, NASA, R)� Web site:

◦ http://www.openscenegraph.org

Open Scene Graph

Open Scene Graph

� Suporta:◦ Recorte baseado no volume de

visualização (View frustum culling)

◦ Recorte baseado em oclusão

◦ Recorte de pequenas características

◦ Nós de Nível de Detalhe (LOD)

◦ Classificação de Estado

◦ Muitas outras características

Open Scene Graph

� Core OSG – Fornece a funcionalidadeessencial para o grafo de cena e renderização

� NodeKits – implementam mais tipos de nós do que os disponíveis no core

� Plugins – Entrada e Saída para diferentes tiposde arquivos

� Bibliotecas de interoperabilidade – para uso do OSG com vários pacotes e linguagens (ex. LUA e Phyton)

� Grande coleção de Exemplos

A Distribuição OSG contém: A Ditribuição OSG

Page 5: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 5

Core OSG

osg::Node - Base class for all nodes in the scene graph.

osg::Group – nó de grupo geral que mantém uma lista de filhos.

Nós de transformação

osg::Transform - Um Transform é um nó de grupo para o qualtodos seus filhos são transformados por uma matriz 4x4. É frequentemente usado para posicionar objetos em cena, baseados em entradas do usuário (por ex., via mouse) ou paraanimação

Nós de Geometria

osg::Geode - um Geode é um “nó de geometria", isto é, um nó folha do grafo de cena que possui objetos “renderizáveis” associados a eles.

Objetos renderizáveis são representados por objetos da classe Drawable, então, um Geode é um Node cujo propósito é agrupar Drawables.

DrawablesClasse virtual pura para a geometria.

Tudo que pode ser renderizado é implementado como uma classederivada de Drawable.

Um Drawable não é um Node, e portanto não pode ser adicionado aografo de cena.

Em vez disso, Drawablesacompanham os Geodes, que são nós do grafo de cena

Drawables também podem ser compartilhados entre Geodesdiferentes, de modo que a mesma geometria (carregada na memória apenas uma vez) pode ser usada em diferentes partes do grafo de cena.

� Existem plugins para suportar a leitura/escrita de muitos arquivos de formatosgráficos e modelos 3D:

◦ A base de dados de carregadores inclui� OpenFlight (.flt)� TerraPage (.txp)� LightWave (.lwo)� Alias Wavefront (.obj)� Carbon Graphics GEO (.geo)� 3D Studio MAX (.3ds)� Peformer (.pfb)� Quake Character Models (.md2)� Direct X (.x)� Inventor Ascii 2.0 (.iv)/ VRML 1.0 (.wrl)� Designer Workshop (.dw) � AC3D (.ac) � O formato nativo .osg ASCII.

◦ Os carregadores de imagens incluem� .rgb� .gif� .jpg� .png� .tiff� .pic� .bmp� .dds� .tga

Plugins E/S de arquivos

Page 6: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 6

OSGEdit

� Auxilia a composição de cena para o OSG

� Open source� Importa

modeloscriados poroutrosprogramas, arranjando suaestrutura de árvore e transformações http://osgedit.sourceforge.net/

� www.openscenegraph.org

� http://www.nps.navy.mil/cs/sullivan/osgTutorials/SceneGraphOverview.htm

� http://www.realityprime.com/scenegraph.php

References

Exemplo

OpenSceneGraph-3.0.1 Soft shadow mapping(360p_H.264-AAC).mp4 - Atalho.lnk

Exemplo

osgviewerd.exe.lnk

Panda 3D

PACOTES GRÁFICOSPARA REALIDADE VIRTUAL

PANDA 3D� Panda3D é uma 3D Engine:

- Rápido desenvolvimento- Baixa curva de aprendizado

� Desenvolvida pela Disney para odesenvolvimento do seu MMORPGToonTown.

� Mantida pela Disney e pelo CarnegieMellon University's EntertainmentTechnology Center.

Page 7: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 7

DESENVOLVIMENTO COM PANDA3D� Formado por uma biblioteca, escrita

em C++, para renderização 3D edesenvolvimento de jogos

� Desenvolvimento com C++(diretamente) ou Python(indiretamente)

� Forte incentivo ao uso de Pythoncomo linguagem de script

� Lançado com a Panda 3D Public License Version 2.0.

� www.panda3d.org- Forte comunidade- Manual- APIs

� Principais própositos de uso:- Games: Performance e Qualidade- Educação: Facilidade e Confiabilidade

PANDA 3D

PANDA3D

� Abstração para o uso de OpenGL eDirectX

� Facil instalação:- Linux- Windows

� Fácil configuração

Características - Cenas

� Estrutura de dados scene graph:- Árvore com objetos a seremrenderizados.

- Existência no topo de um objeto chamadorender, criado automaticamente,

necessário para renderização.

PANDA 3D

Características - Cenas� Suporte aos formatos egg, bam, para objetos

estáticos e/ou dinâmicos

� Extensões exportadas com:- 3D max- Maya- Blender- SoftImage- MilkShape 3D- Gmax

� Utilitário Panda Viewer para visualizar os modelos

PANDA 3D Características - CenasPANDA 3D

Page 8: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 8

Características - Cenas

� Scene Editor:- Criar layout 3D- Iluminação- Animação- Loading- Motion Path- Colisões

PANDA 3DCaracterísticas - CenasPANDA 3D

Características - Câmera� Movimentação default com o mouse

� Pode ser controlada por:- Mouse- Teclado- Diretivas dentro do código

1) Posição2) Ângulo3) Distância ao ponto mais próximo exibido4) Distância ao ponto mais distante exibido5) Distância Focal

PANDA 3D

Características - Câmera

� Lentes- Perspectiva

PANDA 3D

Características - Câmera

- Ortogonal

PANDA 3DCaracterísticas - Som

� Biblioteca FMOD (uso não comercial):- MP3- WAV- AIFF- MIDI- MOD- WMA- OGG

� Suporte a audio 3D

PANDA 3D

Page 9: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 9

Exemplo (vídeo – simulação de água) PANDA 3D

Panda3D 3D water surface simulation(Medium).wmv - Atalho.lnk

Exemplo (vídeo – Panda3D e Artoolkit) PANDA 3D

Augmented Reality with Panda3D - shadow test(Medium).wmv - Atalho.lnk

OGRE

PACOTES GRÁFICOSPARA REALIDADE VIRTUAL

O que é OGRE?

•OGRE (Object-oriented Graphics Rendering Engine)

•Engine Gráfica 3D Open-Source orientada à cena

•Não é um Game Engine, mas sim um Rendering Engine

•Versões teste em Python, Java e .NET

Licença

� OGRE foi concebida sob uma licença open source

� O OGRE tem como licença default a GNU Lesser Public License (LGPL)

� Pode ser utilizado sob a OGRE Unrestricted License (OUL)

Características Básicas• Orientada a objetos• Provê Ferramentas, Plug-ins e Add-ons• É compatível com inúmeras configurações

de Hardware 3D• Interface de programação oferecida

nativamente é escrita em C++• Multiplataforma• Encapsula o uso de bibliotecas como

OpenGL e Direct3D• Comunidade muito ativa

Page 10: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 10

Produtividade

� Interface simples e fácil de usar

� Framework de exemplo extensiva

� Requisitos comuns

� Design limpo e organizado

Suporte a plataformas e APIs 3D

� Suporte a Direct3D e OpenGL.

� Suporte a Windows (todas as principais versões), Linux e Mac OSX.

� Compila no Visual C++ e Code::Blocks no Windows.

� Compila no GCC 3+ no Linux / Mac OSX (usando XCode).

Características de Cena

� Administração flexível de cenas � Vários plugins-exemplo (ex: BSP,

Octree).

� Gráfico de cena hierárquico

� Várias técnicas de renderização de sombras

� Efeitos especiais

Exemplos de Uso

� Ankh – Jogo de aventura no Egito◦ 1° produto comercial usando OGRE –

nov/2005

OGRE

� Exemplo (vídeo – Demo Engine Gráfica)

Ogre 3D Graphics Engine Demo(Medium).wmv - Atalho.lnk

OGRE� Exemplo (Vídeo – Ogre e Artoolkit)

ArToolKitPlus integration with Ogre3D(720p).wmv - Atalho.lnk

Page 11: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 11

Crystal Space

PACOTES GRÁFICOSPARA REALIDADE VIRTUAL

Crystal Space

� É uma engine para o desenvolvimento de aplicações 3D escrita em C++

� Software Open Source

� Sistemas Operacionais suportados:◦ Windows, Linux, Unix e Mac OSX

� Disponível: http://www.crystalspace3d.org

Crystal Space– Exemplo (vídeo 1)

Fur & Hair Rendering in Crystal Space(720p_H.264-AAC).wmv - Atalho.lnk

Crystal Space- Exemplo (vídeo 2)

Crystal Space Progressive LODs - 1(360p_H.264-AAC).wmv - Atalho.lnk

Irrlicht

PACOTES GRÁFICOSPARA REALIDADE VIRTUAL

Irrlicht

� É uma engine 3D escrita em C++

� Alto desempenho

� Licença zlib

� Boa documentação

� Suporta tanto OpenGL quanto DirectX

� Sistemas Operacionais suportados:◦ Windows, Linux, Unix e Mac OSX

� Disponível: http://irrlicht.sourceforge.net

Page 12: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 12

Irrlicht

� Características importantes:◦ Sombras Dinâmicas

◦ Sistemas de Partículas

◦ Animação de personagens

◦ Suporte a cenas internas e externas

◦ Detecção de colisão

Irrlicht

� Características importantes (cont.):◦ Larga e extensível biblioteca de materiais◦ vertex e pixel shaders◦ Binding para linguagens .NET◦ Renderização por software para

plataformas sem aceleração gráfica◦ API nativa para GUI 2D (botões, listas etc.)◦ Funções de desenho 2D◦ Ampla gama de formatos e modelos de

imagens

Irrlicht – Exemplo (vídeo 1)

Irrlicht in Motion, 3DModelerMan_ Movement Demo(360p_H.264-AAC).wmv - Atalho.lnk

Irrlicht – Exemplo (vídeo 2 - RA)

Augmented Reality with Frontier Vision and Irrlicht Engine - hand_object interaction(360p_H.264-AAC).wmv - Atalho.lnk

Unity

� Unity é um ambiente multiplataforma de desenvolvimento de jogos

� Suporte a: Windows / MacOS / Web / Wii / iPhone/ Android

71 24/09/2013

Características do UnityEditor de Níveis

� Fortemente integrado com a execução do jogo;

72 24/09/2013

Page 13: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 13

Características do UnityEditor de Níveis

� Suporte a Drag & Drop e customização;

73 24/09/2013

Características do UnityEditor de Níveis� Editor de terrenos e lightmaps;

74 24/09/2013

Características do UnityGráficos� Suporte a Direct3D e OpenGL;

75 24/09/2013

Características do UnityImportação

� Importação de modelos, texturas, bonese animações de Maya, 3DS, Cheetah3D, Blender, Wavefront obj...

� Fontes, áudio.

76 24/09/2013

77 24/09/2013

Características do UnityShaders

� Efeitos de Glow, Blur, Noise, etc

78 24/09/2013

Page 14: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 14

Características do UnityFísica / PhysX� Suporte a corpos rígidos;� Junções;

� Ragdolls;

� Wheel Collider para jogos de carro;

79 24/09/2013

Características do UnityScripting

� Linguagens de Scripting:◦ JavaScript;

◦ C# (Mono);

◦ Boo (similar a Python).

80 24/09/2013

PACOTES GRÁFICOS� PARA REALIDADE

AUMENTADA

ARTOOLKIT

PACOTES GRÁFICOSPARA REALIDADE AUMENTADA

ARToolKitUma Visão Geral

ARToolKit - Introdução� ARToolKit – biblioteca escrita em linguagem

C/C++ para construção de aplicações de Realidade Aumentada

� Originalmente criada pelo Dr. Hirokazu Kato

� Continua em desenvolvimento:◦ Human Interface Technology Laboratory (HIT Lab) da

Universidade de Washington

◦ HIT Lab NZ da Universidade de Cantebury – Nova Zelândia

◦ ARToolworks - Seattle

Page 15: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 15

ARToolKit - Introdução

IDÉIA BÁSICA

ARToolKit - Introdução� Características principais

◦ Framework para criação de aplicações de RA◦ Uma biblioteca Multiplataforma (Windows, Linux, MacOS X,

SGI)◦ Sobrepõe objetos virtuais 3D sobre marcadores reais

(baseado em visão computacional)◦ Uma biblioteca de vídeo multiplataforma com:

- Múltiplas fontes de entrada (USB, Firewire, cartões de captura)

- Múltiplos formatos (RGB/YUV420P, YUV)- Rastreamento com múltiplas câmeras- Interface gráfica para inicialização

ARToolKit - Instalação

• No site http://www.hitl.washington.edu/artoolkit/ na seção de documentação há toda a informação necessária para download, instalação e configuração do ambiente de compilação

Alguns itens necessários�Ambiente de desenvolvimento�DSVideoLib�GLUT�DirectX Runtime�Dispositivo de entrada de video

ARToolKit - Arquitetura� OpenGL para renderização

� GLUT para eventos e dependência de hardware da biblioteca de vídeo

� API padrão de cada plataforma (por exemplowin32 para Windows)

ARToolKit - Estrutura� O usuário pode facilmente substituir um

módulo por outro

� Fluxo de Dados

ARToolKit - Estrutura

Page 16: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 16

ARToolkit - Princípios de Funcionamento

O ARToolKit é baseado em umaabordagem básica de detecção de borda com um rápido algoritmo de estimativa de posicionamento

ARToolkit - Princípios de Funcionamento

Matriz de transformação

.

ARToolkit - Princípios de Funcionamento

Imagem original Imagem binarizada Componentes conectados

Contornos Extração das bordas do e dos cantos do marcador

Associação aoquadrado

ARToolkit - Princípios de Funcionamento

Matriz de transformação

ARToolKit – Calibração da Câmera

� camera_para.dat : arquivo de parâmetros da câmera contendo propriedades da câmera padrão

� Lido toda vez que uma aplicação ARToolKit é iniciada

� Os parâmetros são suficientes para uma ampla gama de câmeras diferentes

� É possível gerar um arquivo de parâmetros para uma câmera específica

ARToolKit – Calibração da Câmera� Dois tipos de calibração ( um passo e dois passos)

◦ Dois Passos

� Impressão de calib_dist.pdf e calib_cpara.pdf

• Execução do utilitário calib_dist• Mensura ponto central da imagem e distorção da lente

Padrão calib_dist: matriz de pontos Padrão calib_cpara: grid

Page 17: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 17

ARToolKit – Calibração da Câmera� Execução do calib_dist

• Clicar nos pontos da esquerda para a direita

• Repetir o processo para 5 a 10 imagens de vários ângulos e posições diferentes

ARToolKit – Calibração da Câmera� Execução do calib_cparam

• Usado para descobrir o comprimento focal da câmera e outros parâmetros

• Posicionar a linha guia sobre a imagem (vertical e horizontal)

• Afastar o padrão da câmera 100mm e repetir o processo

• Realizar o processo 5 vezes

ARToolKit – Treinamento de padrões� Utilitário mk_patt

• Execute o utilitário mk_patt

• Aponte a câmera para o marcadoraté que as bordas superior e lateral esquerda fiquem vermelhas

• Dê um nome ao arquivo de padrão gerado

ARToolKit – Princípios de Desenvolvimento� Existem duas partes no

desenvolvimento de aplicações que usam o ARToolKIT:◦ Escrever a aplicação de RA; e

◦ Treinar as rotinas de processamento de imagem com os marcadores no mundoreal que serão usados na aplicação.

ARToolKit – Princípios de Desenvolvimento� Escrita da aplicação

◦ Estrutura Básica

INICIALIZAÇÃO 1. Iniciar a captura de vídeo e ler os arquivos de padrões de marcadores e parâmetros da câmera

MAIN LOOP2. Obter um quadro do vídeo de entrada

3. Detectar os marcadores e os padrões reconhecidos no quadro de vídeo de entrada

4. Calcular a transformação de câmera, relativa aos padrões detectados

5. Desenhar os objetos virtuais sobre os padrões detectados

FINALIZAÇÃO 6. Terminar a captura de vídeo

ARToolKit – Exemplo de Aplicação

Aplicação simpleTest

Page 18: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 18

ARToolKit – Exemplo de Aplicação� O programa consiste de uma rotina principal e diversas

rotinas gráficasPASSOS FUNÇÕES

INICIALIZAÇÃO 1. Iniciar a captura de vídeo e ler os arquivos de padrões de marcadores e parâmetros da câmera

init

MAIN LOOP2. Obter um quadro do vídeo de entrada

arVideoGetImage

3. Detectar os marcadores e os padrões reconhecidos no quadro de vídeo de entrada

arDetectMarker

4. Calcular a transformação de câmera, relativa aos padrões detectados

arGetTransMat

5. Desenhar os objetos virtuais sobre os padrões detectados

draw

FINALIZAÇÃO 6. Terminar a captura de vídeo cleanup

ARToolKit – Exemplo de Aplicação

� main

main(int argc, char *argv[]) {

init(); arVideoCapStart(); argMainLoop( NULL, keyEvent, mainLoop );

}

ARToolKit – Exemplo de Aplicação� init

/* Inicia o dispositivo de video*/ if( arVideoOpen( vconf ) < 0 ) exit(0);

/* Encontra o tamanho da janela */ if( arVideoInqSize(&xsize, &ysize) < 0 ) exit(0); printf("Image size (x,y) = (%d,%d)\n", xsize, ysize);

/* Configura os parametros iniciais da camera */ if( arParamLoad(cparaname, 1, &wparam) < 0 ) { printf("Camera parameter load error !!\n"); exit(0); }

ARToolKit – Exemplo de Aplicação� init/* Os parâmetros são transformados para o tamanho da imagemcorrente */ arParamChangeSize( &wparam, xsize, ysize, &cparam );

/* Os parâmetros da camera são configurados para os que foramlidos e são mostrados na tela */ arInitCparam( &cparam ); printf("*** Camera Parameter ***\n"); arParamDisp( &cparam );

/* Leitura da definição dos padrões do arquivo Data/patt.hiro */ if( (patt_id=arLoadPatt(patt_name)) < 0 ) { printf("pattern load error!!\n"); exit(0); }

/* Abre a janela gráfica*/ argInit( &cparam, 1.0, 0, 0, 0, 0 );

ARToolKit – Exemplo de Aplicação� mainLoop

/* Obtém um quadro (frame) de video*/ if( (dataPtr = (ARUint8 *)arVideoGetImage()) == NULL ) {

arUtilSleep(2); return;

}

/* A imagem de video é mostrada na tela*/ argDrawMode2D(); argDispImage( dataPtr, 0,0 );

/* Detecta o marcador e o padrão em seu interior*/ if( arDetectMarker(dataPtr, thresh, &marker_info, &marker_num) < 0 ) {

cleanup(); exit(0); });

/* Ativa a captura do próximo frame – já que o atual pode ser analisado */ arVideoCapNext();

ARToolKit – Exemplo de Aplicação� mainLoop

/* Verifica a visibilidade do objeto*/

k = -1; for( j = 0; j < marker_num; j++ ) {

if( patt_id == marker_info[j].id ) { if( k == -1 ) k = j; else if( marker_info[k].cf < marker_info[j].cf ) k = j;

} }

/* Se nenhum padrão é encontrado, troca o buffer sem desenhar o objeto */if( k == -1 ) {

argSwapBuffers(); return;

}

Page 19: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 19

ARToolKit – Exemplo de Aplicação� mainLoop

/* Obtém a transformação entre o marcador e a camera real */ arGetTransMat(&marker_info[k], patt_center, patt_width, patt_trans);

/* O objeto virtual pode ser desenhado sobre o cartão */

draw();

/* Troca o buffer */argSwapBuffers();

ARToolKit – Exemplo de Aplicação� draw

/* Inicializa a renderização*/ argDrawMode3D(); // pede ao ARToolkit para renderizar o objeto 3D

argDraw3dCamera( 0, 0 );

/* Configura o estado mínimo do OpenGL */glClearDepth( 1.0 ); glClear(GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL);

/* Carrega a matriz de transformação da camera*/ argConvGlpara(patt_trans, gl_para); glMatrixMode(GL_MODELVIEW); glLoadMatrixd( gl_para );

ARToolKit – Exemplo de Aplicação� draw

/* Renderização do objeto 3D – um cubo azul sob luz branca*/ glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glLightfv(GL_LIGHT0, GL_POSITION, light_position); glLightfv(GL_LIGHT0, GL_AMBIENT, ambi); glLightfv(GL_LIGHT0, GL_DIFFUSE, lightZeroColor); glMaterialfv(GL_FRONT, GL_SPECULAR, mat_flash); glMaterialfv(GL_FRONT, GL_SHININESS, mat_flash_shiny); glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); glMatrixMode(GL_MODELVIEW); glTranslatef( 0.0, 0.0, 25.0 ); glutSolidCube(50.0);

/* Coloca os valores padrão à algumas variáveis do OpenGL */glDisable( GL_LIGHTING ); glDisable( GL_DEPTH_TEST );

ARToolKit – Exemplo de Aplicação� cleanup

/* Renderização do objeto 3D – um cubo azul sob luz branca*/arVideoCapStop(); //pára a capturaarVideoClose(); // libera o dispositivo de vídeoargCleanup();

ARToolKit – Aperfeiçoamentos

� Site do ARToolkit Plus :

◦ Melhoramento nas condições de iluminação

http://studierstube.icg.tu-graz.ac.at/handheld_ar/artoolkitplus.php

� Real-time Augmented Reality:

◦ Sistema de rastreamento robusto

http://www.cv.iit.nrc.ca/research/ar

� Site do ARToolkit Professional:

◦ Aumento no desempenho

http://www.artoolworks.com/Home.html

ARToolKit

exemplos

simpleTest.exe - Atalho.lnkexview.exe - Atalho.lnk multiTest.exe - Atalho.lnk

Page 20: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 20

PACOTES GRÁFICOS� PARA REALIDADE

AUMENTADAARTag� Criado por Mark Fiala – IIT - Canadá

◦ Usa técnicas digitais para corrigir pontosfalhos do ArtoolKit: falso positivo, falsonegativo, confusão entre marcadores

◦ http://www.artag.net/

ARTag� Exemplo: Magic Lens

magic_lens_anatomy.wmv - Atalho.lnk

ALVAR� ALVAR é uma biblioteca de software

para criação de aplicações de Realidade Aumentada

� Desenvolvido pelo VTT (Technical Research Centre of Finland)

ALVAR

� Windows XP 32-bit, Microsoft Visual Studio 2003, 2005 e 2008 (versões 7, 8 e 9).

� Alvar core library requer:◦ OpenCV 1.0 (não funciona ainda com o

OpenCV 2.0)

� Exemplos de aplicações Alvarrequerem:◦ GLUT 3.7◦ CMake 2.6

ALVAR� Características PrincipaisRastreamento baseado em marcadores� Estimação precisa da posição do marcador� Fácil adição de novos marcadores� Recuperação de oclusões

Uso de múltiplos marcadores para detecção de posição� As coordenadas do marcador podem ser configuradas

manualmente� Ou podem ser automaticamente deduzidas pela autocalibração

Outras Características� Esconder o marcador do ponto de visão� Ferramentas para calibração de câmeras

Page 21: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 21

ALVAR

� Exemplo

ALVAR 2(360p_H.264-AAC).mp4 - Atalho.lnk

OSGART

PACOTES GRÁFICOSPARA REALIDADE AUMENTADA

� HIT Lab NZ (Julian Looser, HartmutSeichter, Raphaël Grasset)

� ToolKit (C++, Interface para Phyton)� Cada nó mantém ponteiros para os filhos� Características principais:

� Modularidade, extensibilidade, Integrabilidade, Desempenho, Acessibilidade, Usabilidade

� Escalabilidade� Portabilidade

OSGART

� Finalidade� osgART adiciona a funcionalidade de

Realidade Aumentada aoOpenSceneGraph

� Atualmente na versão 2.0, Open Source, Licença GPL� http://www.orgart.org

OSGART

Abordagem básica do osgART: Grafo de cena básico

� Para adicionar RA Video see-through� Integra video ao vivo� Aplica matriz de projeção

corretiva� Atualiza as transformações de

rastreamento em tempo real

Abordagem do osgART: RA Grafo de cena

Page 22: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 22

Abordagem do osgART: RA Grafo de cena

Projeção ortográfica

Quadrofull-screencom textura aovivo da fonte de vídeo

Matriz de projeçãoa partir do rastreador

Matriz de transformaçãoatualizada a partir do marcador em tempo-real

Arquitetura do osgART

Como qualquer biblioteca de RA videosee-through, o osgART requer capacidade de entrada de vídeo e de rastreamento

Rastreamento do ARToolkit(Kato)

Arquitetura do osgARTOsgART usa uma arquitetura de plugin para que as tecnologias de fontes de vídeo e rastreamento possam ser anexadas quando necessárias

Alguns projetos usando o osgART

MagicBook usandosistemas de partículas e sombra

Interação MagicLens com diferentes técnicas de renderização

osgART – Exemplo

FERmula Techdemo OSGart(360p_H.264-AAC).mp4 - Atalho.lnk

Page 23: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 23

Referências

• OSGARThttp://www.osgart.org

• Outras referências

http://www.hitlabnz.org/wiki/OSGART

http://www.openscenegraph.org/projects/osg

XNA

PACOTES GRÁFICOSPARA REALIDADE VIRTUAL

XNA Game Studio Express Architecture - Microsoft

� Você escreve seu programa em C#

◦ Usando os recursos do XNA Framework

◦ Jogos podem executar em PCs com Windows e no XBOX360

Windows APIs, DirectX

.NET Framework para jogos

XNA Framework

Game code (C#) & content

GOBLIN XNA

PACOTES GRÁFICOSPARA REALIDADE AUMENTADA

137

Goblin XNA� Criado na Universidade de Columbia -

EUA◦ Plataforma para desenvolvimento de

aplicações RA e RV, com ênfase em Jogos

◦ Escrita em C#

◦ Baseada no Microsoft XNA Game Studio 3.1.

Goblin XNA� Herdou alguns dos objetivos de um projeto anterior

chamado Goblin, mas com foco maior na interface de usuário do core 3D , aproveitando a funcionalidade das engines de jogos do DirectX 3D e ambientes de desenvolvimento.

� A plataforma suporta atualmente :◦ 6DOF (seis graus de liberdade) ◦ posição e orientação de rastreamento usando câmera de

monitoramento baseado em marcador através ARTag com OpenCV ou DirectShow, e InterSense trackers híbrido.

◦ Física é suportada através BulletX e Newton Game Dynamics.

◦ Rede é suportada através de biblioteca Lidgren. ◦ Goblin XNA também inclui um sistema de interface gráfica

2D para permitir a criação de componentes clássicos de interação 2D.

Page 24: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 24

Goblin XNA - Exemplos

Augmented Reality Racing Game(360p_H.264-AAC).mp4 - Atalho.lnk

PACOTES DE DESENVOLVIMENTO

PACOTES DE DESENVOLVIMENTO

VRJuggler

PACOTES DE DESENVOLVIMENTO

VRJuggler� Framework que esconde a complexidade da infraestrutura e das

especificações dos nós (dispositivos, monitores e computadores)� VR Juggler é escalável:

◦ De simples sistemas desktops como os PCs a complexos sistemas executando em clusters ou high-end workstations e supercomputadores.

� A flexibilidade do VRJuggler permite as aplicações executarem em muitas configurações de sistemas de RV incluindo:◦ desktop VR, HMD, CAVE™-like devices, e Powerwall™-like devices.

� A portabilidade do código VR Juggler garante seu uso em qualquer Sistema Operacional

� VR Juggler 2.0 suporta IRIX, Linux, Windows, FreeBSD, Solaris, e Mac OS XWindows, Linux, Unix e Mac OSX

� Disponível: http://www.vrjuggler.org

VRJuggler� Os desenvolvedores podem acessar

diretamente as APIs gráficas

(OpenGL ou OpenGL Performer)

� Utilizar diversos dispositivos como

luvas, mouses, monitores e

capacetes de visualização

VRJuggler� Conjunto de ferramentas

Page 25: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 25

VRJuggler - Exemplo (vídeo)

VRJuggler-Interacting with a High Resolution Wall Sized Display(360p_H.264-AAC).wmv - Atalho.lnk

Blender

PACOTES DE DESENVOLVIMENTO

Blender

� Programa open source desenvolvido pela Blender Foundation

� Licença GNU-GPL

� Software usado para: ◦ Modelagem 3D;◦ Renderização de gráficos e animações;◦ Efeitos visuais;◦ Aplicações interativas em 3D.

Blender

� Software disponível em diversos SOs tais como Windows, Mac OS X, GNU/Linux, Solaris, FreeBSD, IRIX

� Grande conjunto de recursos e funcionalidades para criação de objetos 3D, renderização de cenas, animação com um editor de vídeo integrado e pós-produção, em um único ambiente de trabalho

Blender

� Fornece funcionalidades semelhantes as encontradas em softwares comerciais, tais como:◦ XSI

◦ Cinema 4d

◦ 3D Studio Max

◦ Maya

Blender

� Características incluem:◦ Avançadas ferramentas de simulação:� Dinâmica de corpos rígidos

� Dinâmica dos fluidos

� Dinâmica de corpos flexíveis

◦ Avançadas ferramentas de modelagem

◦ Avançadas ferramentas de animação de personagens

◦ Sistemas de materiais baseados em Node

◦ Wrapper para linguagem Python

Page 26: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 26

Blender

� Arquivo nativo: .BLEND� Recursos para leitura e escrita de

várias extensões:◦ .3DS, .DXF, .WRL (VRML 2.0, VRML 95),

.X (DirectX), muitas outras

� Últimos avanços permitem sua comparação com softwares high-end, como 3D Studio Max e Maya

� Documentação é farta� Disponível: http://www.blender.org

Blender – Exemplo

Blender 3D _Enterprise-E Tests_ CG FULL-HD 1080p(720p).wmv - Atalho.lnk

Blender - Exemplo (vídeo)

Blender 3D_realistically animated grass _HD_(720p).wmv - Atalho.lnk

FluxStudio

PACOTES DE DESENVOLVIMENTO

FluxStudio

� Conhecido por VizX3D� Ferramenta gráfica (editor) de

modelagem e animação � Desenvolvimento de aplicações para

Web (3D) e conteúdo de mundos virtuais

� Licença pertence a Media Machines

FluxStudio

� Editor gráfico de fácil utilização� Orientado à visualização� Manipula conteúdos em:

◦ X3D◦ VRML97◦ Outros

Page 27: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 27

FluxStudio

� Interface Gráfica permite:◦ Definir animações◦ Interatividade que pode disparar luzes,

sons e animações

� Fornece recursos para:◦ Depurar aplicações◦ Wizards

� Disponível em: http://www.mediamachines.com

FluxStudio

FluxStudio – Exemplo

DART

PACOTES DE DESENVOLVIMENTO

DART

� Designers Augmented Reality Toolkit (DART)

� Desenvolvido no Augmented Environments Laboratory do Georgia Institute of Technology - Gatech

� É um editor gráfico� Um conjunto de extensões do ambiente de

programação multimídia Macromedia Director

� Composto por:◦ behaviors (extensões do Director escritas na

linguagem LINGO)◦ Xtras (plugins para o Director escritos na

linguagem C++)

DART

� Ferramenta utiliza o ARToolKit para captura de vídeo, tracking e para o processo de reconhecimento de marcadores

� Voltado para aplicações onde a mídia gerada por computador é diretamente integrada à percepção dos participantes

� Suporta Windows e Mac OSX� Apesar de disponível para uso livre, exige o

Macromedia Director (software comercial)� Disponível em:

http://www.gvu.gatech.edu/dart/

Page 28: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 28

DART DART

DART - Exemplo (vídeo)

DART.wmv - Atalho.lnk

PAPERVISIONFLARTOOLKIT

OUTROS PACOTES GRÁFICOS E DE DESENVOLVIMENTO

Realidade Aumentada na Web

-PaperVision- FlarToolkit

Um exemplo:http://plugintothesmartgrid.com/

RA da GE.url

RA na Web – sem marcadores

RA Autobots.url

Page 29: 02 - Ferramentas para Desenvolvimento de Aplicações de RA ... - Ferramentas para... · Realidade Aumentada 24/09/2013 Prof. Sementille 1 Realidade Aumentada Prof. Dr. Antonio Carlos

Realidade Aumentada 24/09/2013

Prof. Sementille 29

Comparação de Ferramentas de Realidade Aumentada

Augmented Reality SDK Comparison | Comparison tables -SocialCompare

http://socialcompare.com/en/comparison/augmented-reality-sdks

Comparação de SDKs - Realidade Aumentada.url