iOS 3D
Desenvolvimento de Aplicações 3D para
iOS
Nilson Souto - xissburg
Slide 2
Slide 2 text
Conteúdo
• Pra que 3D?
• Como renderizar gráficos 3D
• Criação de conteúdo 3D
• Engines 3D para iOS
Slide 3
Slide 3 text
Pra que 3D?
• Flexibilidade
• Liberdade
• Imersão
• Realismo
• Visualização de dados
Slide 4
Slide 4 text
Como renderizar em 3D
• Utilizamos o OpenGL ES para desenhar objetos 3D
• Desenhamos malhas de triângulos em 3
dimensões
• Podemos projetar uma imagem sobre a malha,
conhecida como textura
• Vertex Shaders podem deformar a malha na GPU
• Fragment Shaders nos permite obter efeitos de
materiais e iluminação
Slide 5
Slide 5 text
Criação de conteúdo 3D
• Podemos criar objetos 3D utilizando
editores como 3dsMax, Maya,
Blender, ZBrush, Softimage, etc
• Em geral, o objeto é composto de uma
malha de triângulos e uma ou mais
texturas
Slide 6
Slide 6 text
Criação de conteúdo 3D
• Malhas deformáveis como personagens
devem usar um esqueleto para fazer a
deformação em um Vertex Shader
• Um Fragment Shader pode ser usado
para obter um efeito realista das
propriedades ópticas do material do
qual o objeto é composto
• Em seguida um exemplo dos passos...
Slide 7
Slide 7 text
Criação de conteúdo 3D
Arte conceitual
Slide 8
Slide 8 text
Criação de conteúdo 3D
Arte conceitual
Slide 9
Slide 9 text
Criação de conteúdo 3D
Modelo base para esculpir
Slide 10
Slide 10 text
Criação de conteúdo 3D
Escultura pronta, feita no ZBrush
Slide 11
Slide 11 text
Criação de conteúdo 3D
Detalhes da escultura
Slide 12
Slide 12 text
Criação de conteúdo 3D
Malha low-poly
Slide 13
Slide 13 text
Criação de conteúdo 3D
Texturas: occlusion, diffuse, gloss, normal, specular, oppacity
Slide 14
Slide 14 text
Criação de conteúdo 3D
Modelo final
Slide 15
Slide 15 text
Criação de conteúdo 3D
Modelo final
Slide 16
Slide 16 text
Engines 3D
• Unity3D
• cocos3d
• iSGL
• NinevehGL
Slide 17
Slide 17 text
Unity3D
• Possui um editor de cenas
• Faz o desenvolvedor se focar na lógica
de sua aplicação
• Programação de comportamento de
entidades em javascript e C#
• Difícil integração com UIKit
Slide 18
Slide 18 text
Unity3D
Slide 19
Slide 19 text
cocos3d
• Extensão 3D do cocos2d
• Fácil de aprender para quem já
conhece o cocos2d
• Suporta Collada e PowerVR POD
• Feito sobre OpenGL ES 1.1, portanto
não suporta shaders, por enquanto
Slide 20
Slide 20 text
iSGL3D
• Suporte a shaders
• Suporte nativo ao Bullet Physics
Engine
• Suporta apenas PowerVR POD
• Arquitetura interessante, projeto
bastante promissor
• Licença MIT
Slide 21
Slide 21 text
NinevehGL
• Tem como princípio a simplicidade
• Ainda em versão beta
• Versão 1.0.0 free e open-source deve
estar disponível no fim deste ano
Conclusão
• Para se ter os benefícios do 3D em
tempo-real é necessário um esforço
maior
• Atualmente existem diversos bons
engines 3D para iOS
• Porém, dependendo do caso, pode ser
melhor utilizar OpenGL ES puro