13.04.2013 Views

Visualizador de animações 3D com suporte ao formato arquivos ...

Visualizador de animações 3D com suporte ao formato arquivos ...

Visualizador de animações 3D com suporte ao formato arquivos ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Visualizador</strong> <strong>de</strong> <strong>animações</strong> <strong>3D</strong> <strong>com</strong><br />

<strong>suporte</strong> <strong>ao</strong> <strong>formato</strong> <strong>arquivos</strong> FBX em<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Objective-C++<br />

Felipe Silvino Pereira<br />

Prof. Paulo César Rodacki Gomes, Dr. - Orientador


Roteiro da Apresentação<br />

Introdução<br />

Objetivos do trabalho<br />

Linguagem Objective-C++<br />

Dispositivo móvel iPhone<br />

Formato <strong>de</strong> <strong>arquivos</strong> FBX<br />

OpenGL ES<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010


Protótipo iSceneViewer<br />

FBX SDK<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Roteiro da Apresentação<br />

Resultados e discussões<br />

Conclusões e extensões


quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Introdução<br />

Tecnologias móveis estão se consolidando<br />

Necessida<strong>de</strong> <strong>de</strong> ferramentas para auxiliar no <strong>de</strong>senvolvimento<br />

<strong>de</strong>ste tipo <strong>de</strong> aplicativo<br />

Integrações dos mo<strong>de</strong>los e <strong>animações</strong> <strong>3D</strong> - FBX SDK<br />

Portar tecnologia FBX para um dispositivo móvel - iPhone OS


quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Objetivos do Trabalho<br />

Desenvolver um protótipo para visualização <strong>de</strong> mo<strong>de</strong>los <strong>3D</strong><br />

animados provenientes <strong>de</strong> um arquivo FBX no iPhone<br />

Fazer a interpretação do arquivo utilizando o FBX SDK<br />

Utilizar a linguagem Objective-C++ e o iPhone SDK<br />

Fazer a ren<strong>de</strong>rização da cena utilizando a OpenGL ES


Dispositivo móvel iPhone<br />

Smartphone<br />

Multi-touch<br />

CPU e GPU<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Excelente plataforma para<br />

processamento <strong>3D</strong>


Linguagem Objective-C++<br />

Derivada do C<br />

Suporte a reflexão e orientação a objetos<br />

Sintaxe muito similar <strong>ao</strong> Smalltalk<br />

Desempenho<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Linguagem usada pelo iPhone SDK


OpenGL ES<br />

Projetada para sistemas embarcados<br />

Conceito profile<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Principais diferenças <strong>com</strong> o OpenGL Padrão<br />

Cuidados na implementação


quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Formato FBX<br />

Permitir portabilida<strong>de</strong> entre as ferramentas<br />

Gran<strong>de</strong> leque <strong>de</strong> informações sobre os projetos <strong>3D</strong><br />

Existência <strong>de</strong> um SDK para sua manipulação<br />

Formato binário ou texto (ASCII)


quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

FBX SDK - Grafo <strong>de</strong> Cena


quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Principais Requisitos<br />

Importar a cena presente em um arquivo FBX<br />

Apresentar os quadros da animação<br />

Permitir aproximação e rotação do mo<strong>de</strong>lo importado<br />

Permitir iniciar, parar e reiniciar as <strong>animações</strong> importadas<br />

Exibir a posição da câmera e direcionar ponto <strong>de</strong> visão<br />

Ser implementado na plataforma iPhone OS


quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Especificação do Protótipo


quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Especificação do Protótipo<br />

Diagramas <strong>de</strong> Casos <strong>de</strong> Uso


quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Especificação do Protótipo


Implementação do Protótipo<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Técnicas e ferramentas utilizadas<br />

Xco<strong>de</strong> versão 3.2.3<br />

iPhone Simulator versão 4.0 (211.1)<br />

OpenGL ES versão 1.0<br />

FBX SDK versão 2011.2


quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

FBX SDK


FBX SDK<br />

Projetado e <strong>de</strong>senvolvido pela Auto<strong>de</strong>sk<br />

Linguagem C++<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Compatibilida<strong>de</strong> <strong>com</strong> iPhone SDK<br />

Grafo <strong>de</strong> cena simples


Implementação do Protótipo<br />

Configuração do Xco<strong>de</strong><br />

Instalação FBX SDK<br />

Configuração dos apontamentos do<br />

projeto<br />

Verificação das extensões dos <strong>arquivos</strong><br />

fonte<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010


Implementação do Protótipo<br />

Controle <strong>de</strong> taxa <strong>de</strong> quadros por segundo e animação<br />

Classe EAGLView<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Framework CoreAnimation<br />

Classe CADisplayLink


Implementação do Protótipo<br />

...<br />

- (id) initWithCo<strong>de</strong>r:(NSCo<strong>de</strong>r*)co<strong>de</strong>r<br />

{<br />

...!!<br />

displayLink = [NSClassFromString(@"CADisplayLink")<br />

displayLinkWithTarget:self<br />

selector:@selector(drawView:)];<br />

! !<br />

[displayLink setFrameInterval:displayInterval];<br />

[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMo<strong>de</strong>:NSDefaultRunLoopMo<strong>de</strong>];<br />

...!<br />

}<br />

...<br />

- (void) startAnimation<br />

{<br />

! if (!animating)<br />

! {<br />

animateLink = [NSClassFromString(@"CADisplayLink")<br />

displayLinkWithTarget:self<br />

selector:@selector(nextAnimationKeyFrame:)];<br />

! !<br />

! [animateLink setFrameInterval:animationFrameInterval];<br />

! [animateLink addToRunLoop:[NSRunLoop currentRunLoop] forMo<strong>de</strong>:NSDefaultRunLoopMo<strong>de</strong>];<br />

! animating = TRUE;<br />

! }<br />

}<br />

...<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010


Operacionalida<strong>de</strong> do Protótipo<br />

Tela inicial<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Opções <strong>de</strong> visualização da cena


Operacionalida<strong>de</strong> do Protótipo<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Visualização da animação


Operacionalida<strong>de</strong> do Protótipo<br />

Opções <strong>de</strong> Zoom<br />

quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010


quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Resultados e Discussões<br />

Apresentou bons resultada na ren<strong>de</strong>rização dos<br />

<strong>com</strong>ponentes da cena importada<br />

Não permite edição da cena<br />

Nem todos os <strong>com</strong>ponentes são suportados


quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Conclusões<br />

Todos os requisitos propostos foram alcançados<br />

Compatibilida<strong>de</strong> do FBX SDK <strong>com</strong> o iPhone SDK<br />

As ferramentas xCo<strong>de</strong> e iPhone Simulator mostraram-se<br />

suficientes para concepção do protótipo<br />

Não suporta texturas e iluminação<br />

Protótipo pioneiro <strong>com</strong> resultado apresentado


quarta-feira, 30 <strong>de</strong> junho <strong>de</strong> 2010<br />

Extensões<br />

Incluir o <strong>suporte</strong> a texturas e iluminação da cena<br />

Adição <strong>de</strong> funcionalida<strong>de</strong>s para edição<br />

Versão para o dispositivo iPad<br />

Incorporação em um motor <strong>de</strong> jogos <strong>3D</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!