• Nenhum resultado encontrado

PCS PROJETO DE FORMATURA I

N/A
N/A
Protected

Academic year: 2021

Share "PCS PROJETO DE FORMATURA I"

Copied!
24
0
0

Texto

(1)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

PCS 2040 - PROJETO DE FORMATURA I

4º Módulo Acadêmico, 2007.

PROJEÇÕES ESTEREOSCÓPICAS PARA REALIDADE AUMENTADA ESPACIAL

Equipe 7: Adriana Haseyama: drihaseyama@gmail.com; cel.:9960-8588 Paulo Muggler Moreira: pmugglerm@gmail.com; cel.: 9160-0973

Orientador: Prof. Dr. Romero Tori

Especificação e Proposta de Implementação do Projeto de Formatura

CAMPOS A SEREM PREENCHIDOS PELO ORIENTADOR, SECRETARIA E COMITÊ GESTOR:

Orientador: Data de entrega: __/__/__ De acordo:

Secretaria: Data e hora de entrega: __/__/___ - ___:___

Comitê Gestor: Notas:

Atraso: Nota Final:

(2)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

Sumário

1. Introdução... 3

1.1. Realidade Aumentada ... 3

1.2. Realidade Aumentada Espacial ... 4

1.3. Estereoscopia com Anaglifos... 5

2. Objetivo do Projeto de Formatura ... 7

2.1. Objetivo Principal: Projeções estereoscópicas em ambiente com Realidade Aumentada... 7

2.2. Objetivo Específico: Desenvolvimento de um módulo de estereoscopia no enJine... 7

2.3. Prova de Conceito: Desenvolvimento de aplicação Interativa simples ... 8

3. Justificativa e Motivação ... 9

4. Especificação Funcional ... 10

4.1. Produção de um anaglifo ... 10

4.2. Obtenção de uma imagem estéreo – par estereoscópico... 11

4.3. Algoritmo de obtenção do anaglifo ... 11

4.4. Projeção do anaglifo ... 11

4.5. Interação com o objeto 3D... 12

5. Metodologia de Projeto ... 13

5.1. O Processo Unificado ... 13

5.2. Fases do Processo Unificado ... 14

5.3. Etapas das Iterações ... 15

6. Ferramentas ... 16

6.1. A API Java3D ... 16

6.2. Grafos de Cena... 16

6.3. Classes Principais do Java3D ... 18

6.4. Estereoscopia no Java3D ... 19

7. Cronograma ... 20

8. Recursos e Infra-estrutura Requeridos ... 21

9. Estrutura do Relatório Final ... 22

(3)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

1. Introdução

1.1. Realidade Aumentada

O campo da Realidade Aumentada estuda as possibilidades de enriquecimento de uma cena real com elementos virtuais, abrangendo as técnicas de sobreposição e mistura de ambientes reais e virtuais. [Bimber, Raskar, 2004]

A Realidade Aumentada possui três características fundamentais: 1. Combinação do ambiente real com elementos virtuais

2. Interação em tempo real

3. Os elementos virtuais e o ambiente virtual devem estar alinhados espacialmente e sincronizados temporalmente num ambiente tridimensional[Azuma, 2007]

A Figura 1 ilustra a combinação do ambiente real com elementos virtuais.

(4)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

1.2. Realidade Aumentada Espacial

Dentro da Realidade Aumentada (RA), a Realidade Aumentada Espacial (RAE) diz respeito às técnicas de RA que realizam a mistura das cenas real e virtual no próprio espaço físico do usuário eliminando a necessidade de utilização dos Head Mounted Displays. Os elementos virtuais podem ser renderizados por projetores numa superfície real. [Raskar et al, 1998]

As imagens podem ser de duas dimensões e estarem alinhadas a uma superfície plana ou podem ser de três dimensões e estarem ou não alinhadas a uma superfície plana ou irregular. [Raskar et al, 1998]

Para as imagens 2D não há necessidade de se detectar o ponto de vista do usuário, ou seja, elas podem ser projetadas e não precisam ser atualizadas para acompanhar o movimento do observador. Já para as imagens 3D, a detecção do ponto de vista permite que as mesmas possam ser atualizadas dinamicamente criando a ilusão de que os elementos virtuais estão alinhados ao mundo real mesmo estando o observador em movimento. [Raskar et al, 1998]

Um dos principais problemas encontrados na implementação da RAE é a sua grande dependência com as características da superfície de projeção. Uma superfície que possui baixa reflexão, por exemplo, dificulta a renderização das imagens. Existe ainda o problema com as sombras do próprio observador que também podem atrapalhar a projeção e a complexidade de permitir que haja mais de um usuário no mesmo ambiente. [Raskar et al, 1998]

(5)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

1.3. Estereoscopia com Anaglifos

A estereoscopia está relacionada à capacidade de se enxergar em três dimensões, isto é, de perceber a profundidade [Tori et al, 2006]. A visão tridimensional que se tem do mundo é resultado da interpretação, pelo cérebro, das duas imagens bidimensionais que cada olho capta a partir de seu ponto de vista e das informações sobre o grau de convergência e divergência. Este tipo de visão é denominada estereoscópica ou binocular. [Tori et al, 2006]

Um par estereoscópico é o conjunto de duas imagens bidimensionais tomadas da mesma cena com uma pequena separação entre elas, simulando o espaçamento entre os olhos humanos. [Doneus, Hanke, 1997]

Um anaglifo é composto pela sobreposição das duas imagens que compõem um par estereoscópico, sendo que cada uma das imagens do par é composta de cores complementares, normalmente vermelho e verde ou vermelho e azul esverdeado, conforme a Figura 1.1 (a). Nesse caso, cada um dos olhos utilizará um filtro diferente para visualizar as imagens do par estereoscópico. O filtro vermelho deixa atingir o olho apenas as partes do anaglifo que estejam na cor vermelha, e o olho que estiver com o filtro verde/azul receberá a parte em verde/azul da imagem. A Figura 1.1 (b) apresenta o modelo de óculos para visualização estereoscópica de anaglifos. Utilizando este tipo de filtro, as duas imagens são separadas na observação e fundidas pelo cérebro em uma única imagem tridimensional. [Tori et al, 2006]. Um exemplo de um anaglifo e um óculos para filtrar as imagens de cada olho são mostrados na figura 1.1.

(6)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

Figura 1.1 – Imagem Estereoscópica formada pelo processo de cores complementares: a) Exemplo de Anaglifo e b) Óculos utilizados para

(7)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

2. Objetivo do Projeto de Formatura

2.1. Objetivo Principal: Projeções estereoscópicas em ambiente com Realidade Aumentada O objetivo principal deste projeto de formatura é pesquisar e desenvolver técnicas de hardware e software capaz de renderizar projeções estereoscópicas em um ambiente interativo com Realidade Aumentada Espacial O sistema irá realizar a projeção estereoscópica da imagem para que um observador possa ter a sensação de profundidade ao olhar para os objetos da imagem. O método de projeção utilizado será a projeção estereoscópica baseada em anaglifos, dado o seu baixo custo e relativa facilidade de implementação. As vantagens desse tipo de estereoscopia são:

• Necessita apenas de um projetor ou monitor;

• Baixo custo – óculos são facilmente confeccionados.

A principal desvantagem reside na possibilidade limitada de visualização de cores, e uma perda de luminosidade considerável. [Doneus, Hanke, 1997]

2.2. Objetivo Específico: Desenvolvimento de um módulo de estereoscopia no enJine.

Durante o período de pesquisas para especificação das técnicas de software e hardware a serem utilizadas no projeto, iremos analisar a viabilidade de utilizar o Java3D na renderização da imagem com anaglifos, bem como a viabilidade de produzir um módulo de estereoscopia para o enJine.

O EnJine é um projeto do Laboratório de Tecnologias Interativas (INTERLAB) da Escola Politécnica da USP visando o desenvolvimento de um engine didático para jogos eletrônicos. O EnJine também pode ser utilizado na criação de jogos envolvendo interfaces de Realidade Aumentada.

No contexto deste projeto de formatura, o enJine poderá ser ampliado através do desenvolvimento do módulo de projeção estereoscópica de imagens.

A viabilidade do desenvolvimento deste módulo será estudada e, caso seja possível, também será desenvolvido neste projeto. A implementação deste módulo dará ao enJine uma característica exclusiva frente aos demais ambientes de criação de jogos interativos existentes.

(8)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

2.3. Prova de Conceito: Desenvolvimento de aplicação Interativa simples

Como prova de conceito para aplicação do projeto de formatura será desenvolvida uma aplicação interativa simples utilizando os resultados obtidos anteriormente. Nesta aplicação, o usuário utilizará um dispositivo de controle para interagir no mundo real com um objeto virtual visualizado em profundidade através da projeção estereoscópica. Esta aplicação deverá ser simples e servirá apenas para demonstrar a possibilidade de interação entre objetos reais e virtuais, que é uma das principais propostas da Realidade Aumentada.

Para a criação do ambiente com Realidade Aumentada Espacial será utilizada uma infraestrutura similar à do projeto Robot Arena do Interlab, composta principalmente de uma webcam e um projetor.

Há ainda uma pesquisa sendo desenvolvida no Interlab, cujo produto será um dispositivo para rastreamento do ponto de vista dos usuários de ambientes com Realidade Aumentada Espacial, permitindo assim a atualização dinâmica da cena conforme o usuário se move através da mesma. Caso a pesquisa venha a produzir o dispositivo de rastreamento em tempo hábil, buscaremos incorporar o mesmo na aplicação que servirá como prova de conceito, elevando o grau de interatividade e realismo da mesma.

(9)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

3. Justificativa e Motivação

Desde o surgimento da computação gráfica, inúmeros setores da ciência, da medicina, da engenharia, da indústria e do comércio e também do entretenimento evoluiram consideravelmente através dos novos recursos que esta tecnologia é capaz de proporcionar. E, nos últimos anos, a sua forma de utilização também se desenvolveu significativamente a fim de atender as novas demandas.

Neste contexto encontra-se a Realidade Aumentada que, como já citado anteriormente, basicamente proporciona ao usuário a visualização de elementos virtuais sobrepostos ao mundo físico permitindo também sua interação em tempo real. [Raskar et al, 1998]

A Realidade Aumentada poderá revolucionar novamente as atividades humanas, mas para que isso ocorra, ainda é necessário que haja intensa pesquisa e que sejam desenvolvidas ferramentas para a construção de aplicações.

Essa carência é um grande motivador para este projeto que visa a construção de um módulo de esterescopia voltado para a Realidade Aumentada Espacial.

A grande maioria das aplicações de Realidade Aumentada existentes hoje em dia que utilizam visão estereoscópica necessitam de dispositivos especiais de visualização, como óculos com obturadores, lentes polarizadoras, ou HMDs. Estes métodos possuem as desvantagens de serem caros e pouco ergonômicos.

Sendo assim, o presente projeto de formatura se insere como uma alternativa de baixo custo e facilidade de implementação, frente às aplicações de Realidade Aumentada Espacial existentes hoje em dia.

As vantagens obtidas ao se utilizar a projeção estereoscópica com anaglifos vêm da simplicidade do processo, que necessita de uma infraestrutura mínima: um projetor ou monitor, e um par de óculos anaglíficos, que são óculos simples com filtros coloridos em cada uma das lentes.

(10)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

4. Especificação Funcional

4.1. Produção de um anaglifo

Para produzir um anaglifo no computador, é necessária a sobreposição das duas imagens que compõe um par estéreo para formar a imagem final, e a transformação dos pixels desta imagem para que suas cores correspondam às cores do anaglifo em cada olho.

Desta forma, os seguintes passos são necessários na produção do anaglifo: 1. Obter/gerar um par estereoscópico da imagem desejada;

2. Aplicar um algoritmo de produção de anaglifos ao par estereoscópico; 3. Sobrepor as duas imagens geradas;

O processo está ilustrado no diagrama de blocos abaixo:

Computacionalmente, isso se traduz em duas funcionalidades distintas que devem ser implementadas no módulo de software que irá gerar os anaglifos. Num primeiro momento, o software deve calcular duas projeções de uma mesma cena 3D sob pontos de vista ligeiramente diferentes, deslocados horizontalmente um do outro de forma a simular o espaçamento médio entre os olhos de um ser humano. Após realizar este cálculo, um algoritmo de produção de anaglifos deve ser aplicado às imagens do par. A sobreposição das imagens resultantes destes algoritmos irá dar o resultado final, um anaglifo que pode ser observado através de filtros coloridos, gerando a ilusão de profundidade.(ref)

Modelagem da cena 3D Obtenção do par estéreo Aplicação do Algoritmo de produção do Anaglifo Renderização e projeção na cena real

(11)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

4.2. Obtenção de uma imagem estéreo – par estereoscópico

A imagem estéreo será obtida no computador através de um modelo de uma cena 3D observada por dois pontos de vista, ou câmeras, distintos, com uma separação horizontal entre eles de aproximadamente 5cm, distância média entre os olhos de um ser humano. Após calcular separadamente os pontos de vista referentes a cada olho, o programa deve sobrepor estas duas imagens, fundindo-as em uma só imagem que será então submetida ao algoritmo de obtenção do anaglifo.

4.3. Algoritmo de obtenção do anaglifo

O conjunto de cores representáveis, ou sólido de cores em um dispositivo utilizando o sistema de cores RGB é o cubo RGB (3-cubo). Este cubo reside no espaço tridimensional vetorial R3. Os eixos primários ou bases correspondem às cores verde, vermelho e azul. [Sanders, McAllister, 2003].

Um anaglifo pode ser obtido através da sobreposição das duas imagens que

compõem um par estéreo, com a substituição do canal vermelho da imagem final pelo canal vermelho da imagem direita (D) , e do canal azul ou verde da imagem final pelo canal azul da imagem esquerda (E). Este método é denominado Photoshop Algorithm em [Sanders, McAllister, 2003].

Este algoritmo é equivalente à projeção do ponto RGB do olho esquerdo para o eixo R do cubo RGB, e do ponto RGB do olho direito para o plano GB do cubo RGB. [Sanders, McAllister, 2003]

4.4. Projeção do anaglifo

Os anaglifos gerados serão projetados no ambiente real do usuário que, através dos óculos com os filtros de cores, poderá visualizar a imagem 3D correspondente.

Caso haja a possibilidade de integração com um dispositivo de rastreamento do ponto de vista, os anaglifos deverão ser atualizados e projetados continuamente de forma a aumentar a interatividade e mobilidade do usuário fazendo com que sua experiência seja mais realista.

(12)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

4.5. Interação com o objeto 3D

Para que o usuário consiga interagir com o objeto 3D, os seguintes passos serão necessários:

1. Obtenção da posição do dispositivo de controle manuseado pelo usuário 2. Verificação de existência de interação entre o usuário e o objeto 3D.

3. Caso haja interação, o anaglifo deverá ser atualizado e projetado com a nova posição/forma.

O software deverá obter o novo anaglifo logo após o cálculo da posição do dispositivo de controle em relação ao objeto projetado e detecção da interação entre os mesmos. Caso haja interação, o novo anaglifo deve ser projetado em um tempo suficientemente curto para que a experiência do usuário seja a mais realista possível.

(13)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

5. Metodologia de Projeto

Para que a execução do projeto ocorra de forma de forma planejada e estruturada, optou-se pela utilização de uma metodologia de projeto formal. O uso de uma metodologia formal de projeto traz diversas vantagens, como a imposição de um planejamento, a criação da estrutura necessária para suportar este planejamento, com uma documentação detalhada descrevendo o modelo do sistema. [Bernardes, J. L., 2004]

Além disso, a descrição da metodologia utilizada, dos passos seguidos, e a documentação do sistema possibilitam que este trabalho seja facilmente reproduzido ou aproveitado posteriormente por outros pesquisadores. [Bernardes, J. L., 2004]

Considerando os fatos expostos acima, optou-se pelo uso da metodologia de projeto de software denominada Processo Unificado, ou UP – Unified Process. A seguir, o Processo Unificado é descrito em maiores detalhes.

5.1. O Processo Unificado

O processo unificado é uma metodologia que combina contribuições de diversas fontes, tanto de desenvolvedores quanto de usuários dos processos envolvidos [Jacobson et al. (1998)]

Jacobson et al. definem o Unified Process não como um único processo, mas como uma Framework que pode ser adaptada para diversos tipos de projetos diferentes. Contudo, o UP é definido pelos seus criadores com três termos:

• guiado por casos de uso; • centrado na arquitetura; • iterativo e incremental

Um caso de uso é uma maneira formal de descrever um requisito funcional de um sistema. De acordo com Jacobson et al.:

"Casos de uso são descrições de conjuntos de seqüências de ações, incluindo variantes, que um sistema realiza e que resultam num resultado observável e com valor para um dado ator." [Jacobson et al., 1998, p. 432]

(14)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

De acordo com esta definição, um ator é um usuário do caso de uso (não necessariamente uma pessoa, podendo ser, por exemplo, um subsistema ou componente do sistema). Ou seja, um caso de uso é uma descrição de uma ação ou sequência de ações que implementam uma funcionalidade de valor observável para o ator. [Bernardes, J. L., 2004]

A arquitetura à qual o segundo termo se refere diz respeito à organização de um sistema, ou seja, os seus componentes e as interfaces entre eles, a organização dos componentes em subsistemas e demais aspectos da forma do software. [Bernardes, J. L., 2004]

Por fim, 'iterativo e incremental' significa que o desenvolvimento de software através do UP ocorre em iterações definidas, começando com as funcionalidades básicas, e acrescentando mais funcionalidades ao sistema a cada nova iteração. [Bernardes, J. L., 2004]

5.2. Fases do Processo Unificado

Um projeto no UP é dividido em 4 fases com objetivos diferentes, cada fase é composta de iterações. No UP, o conceito de iteração é fundamental, indicando a forma incremental como se desenvolve o processo. Cada nova iteração acrescenta um incremento de funcionalidade ao passo anterior. Uma iteração é dividida em etapas, e cada etapa deve gerar um artefato específico. [Bernardes, J. L., 2004]

As fases em que um projeto no UP se divide são: Concepção, Elaboração, Construção e Transição. Ao fim de cada uma das deve ser produzido um milestone, ou seja, um artefato ou conjunto de artefatos que demonstram que os objetivos daquela fase foram cumpridos. [Bernardes, J. L., 2004]

O objeivo da fase de Concepção é estudar a viabilidade do projeto, produzindo alguns esboços dos casos de uso e arquitetura básica do sistema. Como produto desta fase temos a definição do escopo do projeto, e um estudo de viabilidade técnica e econômica, determinando prazos e recursos necessários. [Bernardes, J. L., 2004]

A fase de Elaboração tem o objetivo de detalhar o modelo iniciado durante a concepção, determinando a infra-estrutura necessária para o projeto. O produto desta fase é o planejamento detalhado do projeto, com estimativas de custos, prazos e recursos necessários, análise de riscos, cronogramas, etc. [Bernardes, J. L., 2004]

(15)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

Na fase de Construção ocorre a modelagam detalhada do projeto, partindo dos esboços realizados nas duas fases anteriores. Nesta fase os requisitos e arquitetura do sistema são definidos em detalhes e implementados em código.[Bernardes, J. L., 2004]

A fase de Transição procura detectar e corrigir defeitos não identificados na fase de construção, bem como realizar ajustes necessários no software. O ponto principal da fase de Transição é a realização de testes que sejam muito dispendiosos para erem executados em quaisquer das fases anteriores, seja pela necessidade de grande número de usuários concorrentes, grande volume de dados, grandes períodos de utilização, entre outras. [Bernardes, J. L., 2004]

5.3. Etapas das Iterações

As iterações de cada fase são dividas nas seguintes etapas: Captura de Requerimentos, Análise, Projeto, Implementação e Testes.

A etapa de Captura de Requerimentos especifica formalmente as funcionalidades implementadas pelo software, através de definição de casos de uso e outras ferramentas de modelagem adequadas ao projeto específico em questão. [Bernardes, J. L., 2004]

A etapa de Análise toma um subconjunto dos casos de uso definidos, bem como as principais classes utilizadas na implementação destes, e realiza um detalhamento de sua definição. Trata-se de um refinamento dos requisitos definidos na etapa anterior. O projeto é dividido em subsistemas ou pacotes e generalizações entre classes são identificadas. [Bernardes, J. L., 2004]

Durante a etapa de Projeto a arquitetura do software é detalhada de forma a ser capaz de atender com eficiência aos requisitos definidos anteriormente. Outras condições necessárias para o projeto, como ferramentas, bibliotecas e APIs necessárias, são definidas nesta etapa. O modelo obtido durante esta etapa é uma abstração da implementação do sistema. [Bernardes, J. L., 2004]

A etapa de implementação consiste na tradução dos modelos desenvolvidos em código propriamente dito.

A etapa de Testes serve para a verificação do que foi implementado na tentativa de detectar erros de projeto ou implementação.

(16)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

6. Ferramentas

6.1. A API Java3D

De acordo com Manssour, I.H., (2003), “A API Java 3D consiste em uma hierarquia de classes Java que serve como interface para o desenvolvimento de sistemas gráficos tridimensionais. O programador, apenas, necessita trabalhar apenas com construtores de alto nível para criar,

manipular e visualizar objetos geométricos, tendo os detalhes de visualização gerenciados

automaticamente. Um programa Java 3D cria instâncias de objetos gráficos que são colocados em um grafo de cena, que também pode conter luz, som e outros elementos que possibilitam a criação de universos virtuais. O grafo de cena consiste em uma combinação de objetos 3D numa estrutura de árvore que especifica o conteúdo do universo virtual e como este deve ser visualizado.“

O Java3D encapsula as bibliotecas OpenGL e Direct3D, implementando uma camada de abstração no topo destas bibliotecas que implementa entidades de alto nível para que o

desenvolvedor não precise se preocupar com os detalhes de visualização de uma cena, sendo estes gerenciados automaticamente pelas classes implementadas no Java3D. [Manssour, I.H., 2003]

Figura 6.1: Organização em camadas de um sistema utilizando Java3D. [Manssour, I.H., 2003]

6.2. Grafos de Cena

O Java3D cria um universo virtual a partir de uma estrutura de dados em forma de árvore denominada grafo de cena. Este grafo é criado a partir de instâncias das classes do Java3D que contém informações a respeito da orientação, iluminação, geometria, localização e aparência dos objetos em uma cena. As informações dos objetos da cena contidas no grafo de cena incluem informações a respeito da geometria e aparência destes objetos. A estrutura típica de um grafo de cena é mostrada na figura 6.2, que indica como a parte de visualização é separada da parte estrutural

(17)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

da cena. Os objetos correspondem aos nós, ou vértices, do grafo de cena, e os relacionamentos entre estes objetos são representados pelas arestas do grafo. Os relacionemtnos podem ser do tipo

referência, associando um objeto ao grafo, ou herança, onde um nó do tipo ‘Grupo’ pode ter um ou mais filhos e apenas um pai, e um nó do tipo ‘Folha’ não pode ter filhos. Num grafo de cena padrão, os nós do tipo grupo são representados por círculos, enquanto nós do tipo folha são representados por triângulos. Os demais objetos da cena são representados por retângulos.[Pegg, W,. 2003] [Manssour, I.H., 2003]

Um grafo de cena típico deve conter apenas um nó VirtualUniverse, que define um universo e possui pelo menos um objeto Locale, que é responsável pela especificação do ponto de referência no universo virtual e serve como raiz dos sub-grafos de um grafo de cena. Os nós do tipo

BranchGroup servem para agrupar os nós de uma cena relacionados através de alguma associação

comum ou de um conjunto de características. Podemos observar na figura 6.2 que os sub-grafos abaixo do nó Locale são de dois tipos distintos: content branch graphs, ou sub-grafos de conteúdo, que descrevem o conteúdo do universo virtual, como geometrias, aparências, comportamentos, localizações, sons e luzes. O segundo tipo de sub-grafo (view branch graphs ou sub-grafo de visualização) especifica os parâmetros de controle da visualização da cena tal como direção de observação. [Manssour, I.H., 2003]

Os nós do tipo TransformGroup são usados para especificar a posição, orientação e escala dos objetos no universo virtual, relativamente a um nó Locale. Os nós do tipo Behavior, não representado na figura, contém o código necessário para manipular a matriz de transformação associada à geometria do objeto. O nó Shape3D refere-se aos objetos Geometry, que define a forma geométrica do objeto, e Appearance, que descreve a aparência desta geometria, com parâmetros como cor, textura, propriedades de reflexão da superfície, entre outras. O nó ViewPlatform descreve o ponto de vista do observador dentro do universo virtual. [Manssour, I.H., 2003]

(18)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

Figura 6.2: grafo de cena do Java3D [Pegg, W,. 2003]

Manssour, I.H., (2003) descreve de forma simplificada os passos para a criação de um programa Java 3D:

1. Criar um objeto GraphicsConfiguration; 2. Criar um objeto Canvas3D;

3. Construir e compilar pelo menos um sub-grafo de conteúdo;

4. Criar um objeto SimpleUniverse, que referencia o objeto Canvas3D criado e automaticamente cria os objetos VirtualUniverse e Locale, e constrói o subgrafo de visualização;

5. Inserir o sub-grafo de conteúdo no universo virtual.

6.3. Classes Principais do Java3D

A API Java 3D fornece um grande número de classes para especificação, posicionamento e visualização de objetos gráficos. Uma das classes mais importantes é a SimpleUniverse, pois é responsável pela configuração de um ambiente mínimo para executar um programa Java 3D,

(19)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

fornecendo as funcionalidades necessárias para a maioria das aplicações. Quando uma instância de

SimpleUniverse é criada, automaticamente são criados todos os objetos necessários para o sub-grafo

de visualização, tais como Locale, ViewingPlatform e Viewer. [Manssour, I.H., 2003]

GraphicsConfiguration é uma classe que faz parte do pacote awt responsável pela descrição

das características do dispositivo gráfico (impressora ou monitor). Sua estrutura varia de plataforma para plataforma, fornecendo, por exemplo, a resolução do dispositivo. A classe Canvas3D fornece o

canvas, ou seja, uma área de desenho, onde é realizada a visualização 3D. [Manssour, I.H., 2003]

A classe BranchGroup serve como ponteiro para a raiz de um sub-grafo de cena. Instâncias desta classe são os únicos objetos que podem ser inseridos em Locale. Um sub-grafo de cena que tem um BranchGroup como raiz pode ser considerado como uma compile unit, podendo ser compilado, inserido em um universo virtual (associando-o com Locale) e desassociado deste universo em tempo de execução. [Manssour, I.H., 2003]

As transformações geométricas de escala, rotação e translação, são especificadas através de uma instância de Transform3D, que representa uma matriz 4x4 de números reais (float). Objetos da classe TransformGroup, por sua vez, especificam uma transformação, através de um objeto

Transform3D, que será aplicada a todos os seus filhos. Ao serem aplicadas as transformações,

deve-se considerar que os efeitos num grafo de cena são cumulativos. A clasdeve-se BoundingSphere define uma região (ou volume) limitada por uma esfera que é especificada a partir de um ponto central e um raio. [Manssour, I.H., 2003]

6.4. Estereoscopia no Java3D

A versão atual do Java 3D possui suporte nativo para estereoscopia através de um quad

buffer. O quad buffer consiste na duplicação do buffer utilizado na renderização de imagens 2D, de

forma que cada imagem do par estereoscópico é renderizada em um buffer separado. Partindo do

quad bufer, diversas implementações de estereoscopia podem ser utilizadas. Por exemplo, cada uma

das imagens do par estereoscópico contidas no quad buffer podem ser projetadas separadamente nas lentes direita e esquerda de um óculos estereoscópico de obturador, serem projetadas em

sobreposição para gerar um anaglifo, entre outras abordagens. No caso deste projeto, cada uma das imagens do par receberá um tratamento de cores para que a sobreposição das duas imagens forme um anaglifo.

a utilização do quad buffer no Java 3D utiliza a interface gráfica OpenGL, portanto é

(20)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

7. Cronograma

Abaixo, o cronograma inicial do projeto:

Figura 7.1 – Cronograma

As tarefas listadas acima serão executadas sempre em conjunto uma vez que a equipe possui somente dois integrantes.

As tarefas poderão ser desmembradas e cada nova partição será atribuída a um dos integrantes da equipe.

(21)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

8. Recursos e Infra-estrutura Requeridos

Para o desenvolvimento do projeto serão necessários basicamente:

• computadores desktop: serão utilizados os de propriedade da equipe e os existentes nos laboratórios disponibilizados pela escola

• webcams: serão utilizadas as existentes nos laboratórios da escola ou serão obtidas pela própria equipe

(22)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

9. Estrutura do Relatório Final

O relatório final conterá os seguintes itens:

1 INTRODUÇÃO 1.1 Objetivos

Conterá a descrição completa e detalhada das metas a serem atingidas pelo projeto.

1.2 Justificativa

Descreverá o contexto no qual este projeto está inserido e quais benefícios serão obtidos através do sucesso do mesmo.

1.3 Metodologia

Conterá a descrição completa e detalhada da metodologia adotada durante o desenvolvimento de todo o projeto.

1.4 Estrutura do Trabalho 2 CONCEITOS BÁSICOS

2.1 Realidade Aumentada e Realidade Aumentada Espacial

Conterá a definição de Realidade Aumentada e de Realidade Aumentada Espacial adotada.

2.2 Estereoscopia 2.2.1.1 Anaglifos

Descreverá a definição de anaglifos.

2.2.1.2 Realidade Aumentada com Estereoscopia

Descreverá o uso da estereoscopia na Realidade Aumentada

3 DESENVOLVIMENTO

Descreverá todo o processo de desenvolvimento do projeto, a arquitetura e as tecnologias adotadas.

4 PROVA DE CONCEITO

Descreverá a aplicação que será desenvolvida para efeito de demonstração.

5 RESULTADOS

Descreverá os resultados obtidos ao final do projeto, todas as funcionalidades oferecidas pelo sistema, os problemas encontrados e as limitações.

(23)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

6 CONCLUSÃO

Conterá as conclusões baseadas da análise dos resultados.

7 REFERÊNCIAS

Conterá a lista de todos os livros, artigos e outros meios de informação utilizados.

Além dos itens citados acima, o documento final conterá outros componentes básicos, tais como, Dedicatória, Sumário, Lista de Figuras, Lista de Tabelas e etc.

(24)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais

10. Bibliografia

Tori, R. et al. Enjine: engine para jogos 3D multiusuários em Java. 2005

Tori, R., Kirner, C., Siscoutto, R. Fundamentos e Tecnologia de Realidade Virtual e Aumentada. 2006.

Binber, O., Raskar, R. Spatial augmented Reality: Merging Real and Virtual Worlds. 2004

Raskar, R., Welch, G., Fuchs, H. Spatially Augmented Reality. 1998

Azuma, R. A Survey of Augmented Reality, 1997. Disponível em:

<http://www.cs.unc.edu/~azuma/ARpresence.pdf>. Acesso em: 07 Fev 2007.

Doneus, M.; Hanke, K. Anaglyph Imagens – Still a good way to look at 3d Objects? .1997 Disponível em: <cipa.icomos.org/fileadmin/papers/olinda/99c411.pdf>. Acesso em: 28 fev. 2007

Sanders, W.; McAllsiter, D. Producing Anaglyphs from Synthetic Images. 2003 Department of Computer Science, North Carolina State University, Raleigh, NC USA 27695-8206

Calife, D.; Tomoyose, A.; Spinola, D.; Tori, R. CONTROLE E RASTREAMENTO DE UM ROBÔ REAL PARA UM AMBIENTE DE REALIDADE MISTURADA. 2006

Manssour, I. H. Introdução a Java3D, 2003

Referências

Documentos relacionados

Varr edura TCP Window ( cont inuação) ACK- win manipulado Não Responde ACK- win manipulado ICMP Tipo 3 Firewall Negando Firewall Rejeitando Scanner de Porta... Var r edur a FI N/

15.6 - Os pedidos de esclarecimentos referentes a este processo licitatório deverão ser enviados ao pregoeiro, até três dias úteis anteriores à data fixada para abertura da

Está sempre ligada a um verbo da oração principal, sem auxílio de preposição, indicando o alvo sobre o qual recai a ação desse verbo. .. Ex: Quero

Assim, com o aprofundamento e a apreciação das perspectivas educacionais, esta estratégia não apenas vai contribuir para uma estruturação inter-pessoal

A comunicação desenvolve o tema de aplicação do conceito gestão do risco precisamente ao risco de gestão dos recursos hídricos, focando os processos de decisão e de

Em primeiro lugar, apercebemo-nos de que «um alguém» admite mais espaço para a abundância interna a cada consciência individual.. É-nos impossível ser exactamente como outrem;

Diferentemente do prazo fixado para pagamento dos precató- rios, as RPVs são depositadas pelos Tribunais Regionais Federais nos bancos ofi- ciais, mensalmente, obedecido o prazo de

Todos os delinqüentes juvenis são indivíduos desajustados e alguns delín - qüentes juvenis são produtos de lares desfeitos; logo, alguns indivíduos desa - justados são produtos