Reconstrutor de modelos 3D
utilizando técnica de nível de
detalhamento no iOS
FELIPE AUGUSTO IMIANOWSKY
ORIENTADOR: DALTON SOLANO DOS REIS
FURB – Universidade Regional de Blumenau DSC – Departamento de Sistemas e Computação Grupo de Pesquisa em Computação Gráfica, Processamento de Imagens e Entretenimento Digital www.inf.furb.br/gcg
Roteiro
Introdução Objetivos Fundamentação teórica Desenvolvimento Resultados e discussão Conclusão ExtensõesIntrodução
Dispositivos móveis
Presente no dia-a-dia das pessoas iOS
Nível de detalhamento ou LOD (Level Of Detail) Técnica de culling
Objetivos
Visualizar modelos 3D Wavefront OBJ
Aplicar LOD em modelos 3D em tempo real Apresentar performance
Fundamentação teórica
Modelo Wavefront OBJ OpenGL ES
Nível de detalhamento
Redução poligonal
Modelo Wavefront OBJ
Modelo 3D Simples e legível Arquivos .OBJ e .MTL Importação e exportação Palavras chaves v, vn, f, etc.Presente na maioria das ferramentas 3D
OpenGL ES
Conjunto de APIs para gráficos 3D Dispositivos móveis e embarcados OpenGL ES Shading Language
Nível de detalhamento
Técnicas de culling
Nível de detalhamento
Modelo menos detalhado
Algoritmos executam em 3 partes Geração, seleção e escolha 3 tipos de LOD
Redução poligonal
Stan Melax (1998)
Colapso de aresta (Hoppe 1996)
Colapso de aresta
Heurística
Tamanho da aresta Termo de curvatura
Prioriza áreas planares com bastante vértices
Trabalhos correlatos
Reconstrutor de modelos 3D utilizando técnicas de nível de detalhamento (Piske, 2008)
AI Aardvark (simulador de aviões) Unity 3D
Reconstrutor de LOD de Piske
Modelos MD2 (Quake 2)
Mobile 3D Game Engine (M3GE) Algoritmo de Redução Poligonal LOD pré-processado
AI Aardvark
Unity 3D
Motor de jogos e editor de cenas LOD discreto
Desenvolvimento
Casos de uso Diagramas
Diagrama classe: Model
a)
Diagrama sequência: LOD
a)
b)
c)
Implementação
Orientação a objetos Linguagem Objective-C OpenGL ES 2.0
Implementação: LOD
a)
b)
c)
{
{
{
Resultados e discussão
TrabalhosCaracterísticas
iOBJ Reconstrutor de LOD de Piske
Simulador de
aviões Unity 3D
Importação
modelos 3D Sim Sim Sim Sim
LOD Discreto Não Não Sim Sim
LOD Contínuo Sim Sim ? Não
Confgurar qtde
de vértices LOD Sim Sim Não Não
Suporte
dispositivo móvel Sim Sim Não Sim
LOD calculado
Resultados e discussão
Aparelhos testados
iPhone 3GS
256MB de memória eDRAM
processador ARM Cortex-A8 de 600 MHz processador gráfico PowerVR
iPad 4
1 GB de memória DDR2 RAM
processador dual core Apple Swift de 1.4 GHz processador gráfico Quad-core PowerVR
Resultados e discussão
Númerovértices Memória antes Memória após LOD 50% Memória após LOD 100%
- Normal Cache Normal Cache Normal Cache
98 1.43MB 1.43MB 1.62MB 1.88MB 1.72MB 2.02MB
1232 3.41MB 3.42MB 4.30MB 8.94MB 5.60MB 10.06MB
Resultados e discussão
Númerovértices Memória antes Memória após LOD 50% Memória após LOD 100%
- Normal Cache Normal Cache Normal Cache
98 1.43MB 1.43MB 1.62MB 1.88MB 1.72MB 2.02MB
1232 3.41MB 3.42MB 4.30MB 8.94MB 5.60MB 10.06MB
Resultados e discussão
TiposVert.
Normal Cache
1º LOD 2º LOD 1º LOD 2º LOD
98 432 148 718 69
1232 3.463 1.306 6.928 901
4210 16.546 4.515 33.441 3.285
Resultados e discussão
TiposVert.
Normal Cache
1º LOD 2º LOD 1º LOD 2º LOD
98 432 148 718 69
1232 3.463 1.306 6.928 901
4210 16.546 4.515 33.441 3.285
Resultados e discussão
TiposVert.
Normal Cache
1º LOD 2º LOD 1º LOD 2º LOD
98 432 148 718 69
1232 3.463 1.306 6.928 901
4210 16.546 4.515 33.441 3.285
Resultados e discussão
SEM LOD COM LOD
Resultados e discussão
Conclusão
Biblioteca atende os requisitos propostos Boas reconstruções
Bom uso dos recursos do dispositivo
Destaca-se por aplicar LOD em tempo real
Cassaniga (2013) e Oliveira (2013) utilizaram o leitor OBJ
Problemas:
Dispositivos com recurso limitado Modelos desconexos
Extensões
Fórmula do custo de colapso de aresta
Aprimoramento e estudo do algoritmo de cache Carregamento de modelos em outros formatos Aplicação de outros algoritmos de LOD
Comparação
Modelos desconexos
Aplicação em outras plataformas (Android, Windows Phone) LOD dependente de visão