• Nenhum resultado encontrado

Sistema de partículas para dispositivos móveis na plataforma Android. Acadêmico: Angel Vitor Lopes Orientador: Mauro Marcelo Mattos

N/A
N/A
Protected

Academic year: 2021

Share "Sistema de partículas para dispositivos móveis na plataforma Android. Acadêmico: Angel Vitor Lopes Orientador: Mauro Marcelo Mattos"

Copied!
35
0
0

Texto

(1)

Sistema de partículas para

dispositivos móveis na

plataforma Android

Acadêmico: Angel Vitor Lopes

Orientador: Mauro Marcelo Mattos

(2)

Roteiro

• Introdução – Identificação do problema – Objetivos • Fundamentação teórica – Sistema de Partículas • Desenvolvimento – Principais Requisitos – Especificação – Implementação – Operacionalidade da aplicação – Resultados e discussão • Conclusão • Extensões • Demonstração

(3)

Introdução

• Dispositivos Móveis

– Previsões para computação ubíqua (onipresente) 1991

– Crescimento telefonia móvel

– Popularização dos dispositivos móveis

• Avanços de Hardware em disp. móveis

– Graphics Processing Unit (GPU)

• Avanços de Software

• Android

(4)

• Identificação do problema

– Problema de modelagem de objetos cujas formas não são bem definidas

• chuva, nuvens, fogo, fluxos de fluídos, fumaça, poeira,

efeitos de explosão, fogos de artifício, fenômenos naturais …

– Sistema de partículas (simulação física dos

elementos conforme seu comportamento no mundo real)

(5)

Introdução

• Objetivos

– Framework de suporte a utilização de sistema

de partículas para plataforma Android

– Específicos:

• Disponibilizar uma aplicação demonstração

(6)

Fundamentação teórica

• Sistema de partículas

– Dificuldade de modelar objetos cujas formas

não são bem definidas.

– Representação de um objeto através de um

conjunto composto por inúmeras partículas

que definem seu volume.

– Como exemplo, nuvem:

• Composta de inúmeras gotículas suspensas no ar, sendo que a medida que se movimentam ao longo do tempo, sua forma é alterada

(7)

Atributos de partículas:

1. Posição

2. Velocidade (direção e módulo)

3. Tamanho

4. Cor

5. Transparência

6. Forma

7. Tempo de Vida

** outros podem ser adicionados dependendo da aplicação e dos fenômenos simulados

Etapas para modelagem:

1. A cada passo de tempo

percorrido, novas partículas

são geradas

2. Cada partícula tem seus

próprios atributos

3. A partícula que atingir alguma condição de extinsão é

eliminada

4. Atributos das partículas restantes são modificados

5. As partículas ativas são

exibidas no quadro de animação.

(8)

• Física, estudo na mecânica

• Conceitos fundamentais:

– 3 leis de Newton, leis do movimento:

• um corpo permanece em repouso ou em movimento uniforme, exceto sob a atuação de uma força; • um corpo sob a atuação de uma força se move de tal forma que a taxa temporal de variação da

quantidade de movimento se iguala a força;

• se dois corpos exercem forças entre si, essas forças são iguais em magnitude e opostas em termos de direção.

– Forças de retardo:

• Gravitacional • resistiva do ar

• ascensional (força de subida)

(9)

• Plataforma Android

• OHA, 84 (2012)

• Kernel 2.6 Linux

• Plataforma Aberta

• Moderno, flexível

• Maquina virtual Dalvik

(10)

• Trabalhos correlatos

– Um estudo sobre realidade aumentada para a plataforma Android (VASSELAI, Gabriela T.)

– Trabalho de conclusão de curso (TCC)

– Simulação física de corpos rígidos em 3D. (MUELLER, Victor A.) – TCC

– Integração de sistemas de partículas com detecção de colisões em ambientes de Ray Tracing (STEIGLEDER, Mauro) – Dissertação Mestrado Ciência da Computação

(11)

Desenvolvimento

• Principais Requisitos:

• Funcionais:

– disponibilizar uma aplicação exemplo para demonstrar sua utilização e visualizar a simulação

– exibir a simulação de partículas na tela do dispositivo – permitir alterar os parâmetros de cálculo

– permitir pausar e continuar a execução durante a simulação de partículas

– permitir a troca em tempo de execução de dois parâmetros com toque na tela

– considerar um sentido e força para gravidade na simulação das partículas

– informar a quantidade de Frames Por Segundo (FPS) na simulação

(12)

Desenvolvimento

• Principais Requisitos:

• Não-Funcionais

– ser implementado para a plataforma Android – ser desenvolvido na linguagem Java com o IDE

Eclipse

– ser desenvolvido com base no Android SDK 2.2 API Level 8

– ser executado pelo hardware de um dispositivo móvel sem comprometer o desempenho do sistema

(13)

Desenvolvimento

• Especificação

– Diagrama de Pacotes • Geral – Diagrama de Classes • Motor

(14)
(15)

class br.furb.sp.motor MotorParticulas + particulasARRAY: Particula ([]) + pVertexBuffer: FloatBuffer + pIndiceBuffer: ShortBuffer # gerador: Random # ultimoTempo: long + QTDparticulas: int + QTDsubParticulas: int # velocTempo: int # gravidade: float # velocidade: float # resistenciaAR: float # tamanhoPart: float # limiteChao: float # estadoSistema: boolean # preferencias: Preferencias # contFrame: int = 0 + MotorParticulas(Preferencias) + iniciaParticulas() : void - ConstroiFloatBuffer(float[]) : FloatBuffer - ConstroiShortBuffer(short[]) : ShortBuffer + update() : void + updateEfeito() : void + destroiParticulas() : void + destroiParticulas(int) : void + criaParticula(int) : void + criaParticulas() : void + carregarPref() : void + gravarPref() : void + isAtivo() : boolean + continuarSimulacao() : void + pausarSimulacao() : void GLSurfaceView.Renderer RendererView # mSistemaParticula: MotorParticulas # drawSTR: DrawSTR # fps: CalcFPS

+ RendererView(Preferencias, int, int) + onSurfaceCreated(GL10, EGLConfig) : void + onSurfaceChanged(GL10, int, int) : void + pararSimulacao() : void + pausarSimulacao() : void + continuarSimulacao() : void + onDrawFrame(GL10) : void + drawMotorParticulas(GL10) : void GLSurfaceView SurfaceView # mRenderer: RendererView ~ cont1: int = 0 ~ cont2: int = 0 ~ x: float ~ y: float # preferencias: Preferencias

+ SurfaceView(Context, Preferencias, int, int) + onPause() : void + onResume() : void + onStop() : void + onTouchEvent(MotionEvent) : boolean Particula + x: float + y: float + z: float + vx: float + vy: float + vz: float + tempoVida: float + vermelho: float + verde: float + azul: float + ativa: boolean + efeitoAtivo: boolean + tamanhoPart: float + subParticulas: Particula ([]) + Particula()

+ Particula(float, float, float)

+ Particula(float, float, float, (...), float, float) + subParAtiva() : boolean

(16)

Desenvolvimento

• Diagramas de Estados

Activity Motor de Partículas

stm Diagrama de Estados Activ ity

Estados de uma Activity

«running» Executando Inicio «paused» Pausada «stopped» Parada Final [Resume] /onResume() [Stop] /onStop() [newActivity] /onCreate() onStart() onResume() [Pause] /onPause() [Destroy] /onDestroy() [Restart] /onRestart() onStart()

stm Diagrama de Estados Motor de Partículas

Inicial «running» Executando «paused» Pausado «stopped» Parado Final Estados Motor de Partículas

[DestróiParticulas] /destroiParticulas() [Parar] /onStop() [Continuar] /onResume() [Reiniciar] /onRestart() iniciaParticulas() [Inicio] /iniciaParticulas() [Pausar] /onPause()

(17)

Desenvolvimento

• Diagrama de Sequência

(18)

sd Diagrama de Sequencia Usuário «Activity» MenuInicial «Activity» SimulaçãoActivity «GLSurfaceView» SurfaceView «Renderer» RendererView «MotorParticulas» MotoParticula «SharedPreferences» Preferencias «Activity» Configuracoes SelecionaOpcao IniciaActivity InstanciaNovasPreferencias CriaSurfaceView CriaRenderer IniciaMotorParticulas CarregaPreferencias AtualizaSimulacao DesenhaParticulas onDrawFrame MostraSimulacao AcaoToqueMovimenta AtualizaPreferencias AcaoEntrarConfiguracoes IniciaActivity CarregaPreferencias AlteraParametrosPreferencias AtualizaPreferencias

(19)

Desenvolvimento

• Implementação

– Técnicas e Ferramentas utilizadas:

• IDE Eclipse versão 3.6.2 (Helios Service Release 2) • Android SDK da versão 2.2

• Android Development Tools (ADT) da revisão 17 • OpenGL ES 1.0

(20)

Desenvolvimento

• Implementação

– Arquivo AndroidManifest.xml – Recursos auxiliares:

1. Diretório /res/layout

• XML, layout para interface gráfica

2. Diretório /res/values/

(21)

• Implementação

– Classe Particula pacote br.furb.sp.motor

• Atributos

(22)

• Implementação

– Classe FAMotorParticulas

pacote br.furb.sp.motor.fogosartificio

(23)
(24)

– Classe FAMotorParticulas

pacote br.furb.sp.motor.fogosartificio

(25)

Desenvolvimento

(26)

Desenvolvimento

(27)

Desenvolvimento

• Resultados e discussão

– Biblioteca x Framework

– Funcionalidades Abstratas

– Problemas encontrados

• Valores, calculos de física • OpenGL ES e texto

• Escassez de material, Sistema de Partículas • Simulador Android

(28)

Desenvolvimento

• Resultados e discussão

– Testes de Desempenho

Simulação Fogos >

(29)

Desenvolvimento

• Resultados e discussão

– Testes de Desempenho

< Simulação de Gotas de Água

Simulação de Fogos de Artifício >

0 10 20 30 40 50 60 70 F P S F rames P o r S egu n d o Quantidade de partículas média de FPS 0 10 20 30 40 50 60 70 F P S F rames P o r S egu n d o Quantidade de partículas média de FPS

(30)

Conclusão

• Plataforma Android – Ponto Forte • Simulador Android – Ponto Fraco • Desafio, escassez de material

• Framework básico de suporte ao desenvolvimento de sistema de partículas

• Simulação seguindo leis físicas • Dois estudos de caso

• Todos os requisitos atendidos

• Dispositivos com Android apto a modelagem

• Fundamentação para ligar Android e modelagem por sistema de partículas

(31)

Extensões

• Acrescentar sistema de colisões ao framework

• Acrescentar modelagem de fluídos

• Adicionar efeitos na modelagem de fogos

• Portar o framework para outras plataformas

• Adicionar funcionalidade para visualização e

movimentação em 3 dimensões

• Efeito de redemoinho de partículas

(32)

Demonstração

• Demonstração no dispositivo móvel ou

Video

(33)

FIM

OBRIGADO

Acadêmico: Angel Vitor Lopes Orientador: Mauro Marcelo Mattos

(34)

Desenvolvimento

• Especificação

– Diagramas de Classes

• Pacote br.furb.sp.main

– Classe inicial básica, activity, tela de informações

• Pacote br.furb.sp.string

– Auxiliares para desenhar texto no OpenGL ES

• Pacote br.furb.sp.util

– Utilitários para o Motor de Partículas

• Pacote br.furb.sp.motor

– Define o framework

• Pacote br.furb.sp.motor.fogosartificio

(35)

• Implementação

– Classe MotorParticulas pacote br.furb.sp.motor

Referências

Documentos relacionados

A presente licitação tem por objeto Contratação de empresa especializada para locação dos seguintes equipamentos de precisão para topografia: Estação Total,

Considering that the historical knowledge is of great importance for the education of this professional, this text has been organized in three segments: the first

Na primeira, pesquisa teórica, apresentamos de modo sistematizado a teoria e normas sobre os meios não adversarias de solução de conflitos enfocados pela pesquisa, as características

O pagamento das taxas relativas à emissão de lavarás ou comunicação prévia previstas nos artigos 3.º, 9.º a 10.º e 23.º a 24.º da (TU) pode, por deliberação da

et al., (2012), nos estudos realizados sobre o PCK, são propostas algumas estratégias para reconhecê-lo, como entrevistas, observações de aulas, análise de planejamentos de ensino

Os tratamentos foram constituídos de: A - Retirada do primeiro cacho e poda apical acima do sétimo cacho; B - Retirada do primeiro cacho sem poda apical acima do sétimo cacho,

firmada entre o Sinduscon-AL e Sindticmal e que não tiver nenhuma ausência em cada período de aferição, bem como contar com 3 (três) meses ou mais de vigência de contrato de

O cenário modelado de mudança no uso da terra até 2030, não somente demonstra a viabilidade da expansão agrícola sem novos desmatamentos, mas também o potencial para