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 ...
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>