MJ3A-PA - UM MOTOR DE JOGOS 3D PARA ANDROID COM PERSONAGENS ARTICULADOS Acadêmico: André William Prade Hildinger Orientador: Dalton Solano dos Reis Roteiro • • • • • • • Introdução Fundamentação teórica Desenvolvimento Resultados e discussão Conclusão Extensões Demonstração Introdução • Objetivos do trabalho – Virtual Articulations for Virtual Reality – Biblioteca de personagens articulados para a plataforma Android – Aplicação que utiliza a biblioteca • Personagem simples sobre um chão – Aplicação de teste de desempenho Fundamentação teórica • Articulações – Degrees Of Freedom (DOFs) • Uniaxial • Biaxial • Poliaxial Fundamentação teórica • Plataforma Android – Kernel Linux – Bibliotecas (OpenGL ES) – Framework de aplicação – Aplicações Fundamentação teórica • OpenGL for Embedded Systems – Biblioteca gráfica para dispositivos móveis – Multiplataforma • • • • • Android iOS Symbian BlackBerry Nintendo 3DS – Suporte nativo no Android Fundametanção teórica • V-ART – C++ – Inteiramente orientado a objetos – Suporte a animações – Representação de articulações biologicamente corretas – Independente da biblioteca gráfica Fundametanção teórica • Trabalhos correlatos – Visualizador de Animação 3D com Suporte ao Formato de Arquivos FBX em Objective-C++ Fundametanção teórica • Trabalhos correlatos – Catcake • Iluminação • Gestão de periféricos (mouse e teclado) • Reprodução de sons • Detecção de colisão Desenvolvimento • Requisitos – exibir um personagem articulado num mundo virtual simples, somente o personagem sobre um chão (RF) – disponibilizar uma aplicação usando o MJ3A-PA com funções básicas de visualização que permita inspecionar o personagem mudando a posição da câmera (RF) – o sistema deve ser desenvolvido na linguagem Java (RFN) – o sistema deve ser compatível com o sistema operacional Android 2.3.3 ou superior (RNF) – o código fonte deve ser documentado utilizando JavaDoc (RNF); – a aplicação disponibilizada deve ser testada no simulador e também no dispositivo físico (RNF) Desenvolvimento • Especificação Desenvolvimento • Principais classes da biblioteca Desenvolvimento • Técnicas e ferramentas utilizadas – Eclipse – Android Development Tools (ADT) – Simulador – Samsung Galaxy S Desenvolvimento • Operacionalidade da aplicação Desenvolvimento • Operacionalidade da aplicação Desenvolvimento • Aplicação teste Desenvolvimento • Aplicação teste Desenvolvimento • Aplicação teste Resultados e discussão • • • • • • Importação de XML Funcionalidades complexas do V-ART C++ x Java OpenGL x OpenGL ES Renderização de números Baixo desempenho do simulador Resultados e discussão • Testes de desempenho • Média em milissegundos de 100 quadros Resultados e discussão • Variação da quantidade de nodos Resultados e discussão • Variação da quantidade de nodos Resultados e discussão • Variação da quantidade de DOFs com 64 nodos Resultados e discussão • Cálculo teórico de uso de memória – Soma dos bytes dos atributos das classes dos objetos envolvidos Resultados e discussão • Variação da quantidade de nodos Resultados e discussão – Variação da quantidade de DOFs Conclusões • Bom desempenho • Baixo consumo de memória • Desenvolvimento para Android – Fácil – Intuitivo • Baixo desempenho do simulador Extensões • Transcrever classes pertinentes do V-ART para utilizar um personagem humanoide • Transcrever classes para o desenho de formas geométricas além de formas retangulares, como esferas, cilindros e triângulos • Utilizar a biblioteca OpenGL ES 2.0 para renderização da cena • Adicionar a importação de um arquivo XML que contenha personagens e suas animações • Implementar o correto uso de luzes, cores e texturas Demonstração Obrigado