290 likes | 421 Views
Arthur Gon çalves Christian Diego Eudes Raphael Icamaan Botelho. PANDA 3D. Introdução Características Desenvolvimento com Panda Exemplos Exercício. Introdução. Panda3D é uma 3D Engine : - Rápido desenvolvimento - Baixa curva de aprendizado
E N D
Arthur Gonçalves Christian Diego Eudes Raphael Icamaan Botelho
PANDA 3D • Introdução • Características • Desenvolvimento com Panda • Exemplos • Exercício
Introdução • Panda3D é uma 3D Engine: - Rápido desenvolvimento - Baixa curva de aprendizado • Desenvolvida pela Disney para o desenvolvimento do seu MMORPG ToonTown. • Mantida pela Disney e pelo Carnegie Mellon University's Entertainment Technology Center.
Introdução • Lançado com a Panda 3D Public License Version 2.0. • www.panda3d.org - Forte comunidade - Manual - APIs • Principais própositos de uso: - Games: Performance e Qualidade - Educação: Facilidade e Confiabilidade
Introdução • Abstração para o uso de OpenGL e DirectX • Facil instalação: - Linux - Windows • Fácil configuração
Características - Cenas • Estrutura de dados scene graph: - Árvore com objetos a serem renderizados. - Existência no topo de um objeto chamado render, criado automaticamente, necessário para renderização.
Características - Cenas • Suporte aos formatos egg, bam, para objetos estáticos e/ou dinâmicos • Extensões exportadas com: - 3D max - Maya - Blender - SoftImage - MilkShape 3D - Gmax • Utilitário Panda Viewer para visualizar os modelos
Características - Cenas • Scene Editor: - Criar layout 3D - Iluminação - Animação - Loading - Motion Path - Colisões
Características - Câmera • Movimentação default com o mouse • Pode ser controlada por: - Mouse - Teclado - Diretivas dentro do código 1) Posição 2) Ângulo 3) Distância ao ponto mais próximo exibido 4) Distância ao ponto mais distante exibido 5) Distância Focal
Características - Câmera • Lentes - Perspectiva
Características - Câmera - Ortogonal
Características - Som • Biblioteca FMOD (uso não comercial): - MP3 - WAV - AIFF - MIDI - MOD - WMA - OGG • Suporte a audio 3D Exemplo: Music_Box
Características –Tratamento de eventos • Suporte nativo para tratar eventos: - Mouse - Teclado - Definidos pelo Usuário Exemplo: Chess
Características - Fog • Abstração em alto nível para o uso de Fog • Fog é a mistura de um objeto com uma cor fixa quando este se afasta do ponto de vista. Exemplo: Fog
Características - Iluminação • Suporte a 4 tipos distintos de iluminação: - Ponto - Direcional - Ambiente - SpotLight Exemplo: Lighting
Características - Renderização de textos • Suporte para renderização dinâmica de textos • Suporte ao Unicode, facilitando renderização de caracteres internacionais • Possibilita carregar novas fontes e criar efeitos como: - Shadow - Alignment - Frames - Cartões
Características - Shaders • Shaders são conjuntos de instruções, usados por recursos gráficos, para renderização. • Podem ser de 4 tipos (OpenGL e DirectX): - Pixel Shader - Vertex Shader - Geometry Shader - Unified Shader • Panda 3D fornece suporte à linguagem Cg Shaders com o uso de Pixel e Vertex Shaders.
Características – Colisões • Suporte à colisões com sólidos: - Esferas - Polígonos - Tubos - Planos - Polígonos - Linhas
Características – Colisões • Tratamente de eventos de colisões: - Lista - Colisão Física - Colisão ‘Floor’
Características – Networking • Abstração de alto nível: - TCP - UDP • Não possibilita o uso de Raw Sockets
DESENVOLVIMENTO COM PANDA • Formado por uma biblioteca, escrita em C++, para renderização 3D e desenvolvimento de jogos • Desenvolvimento com C++ (diretamente) ou Pyton (indiretamente) • Forte incentivo ao uso de Pyton como linguagem de script
DESENVOLVIMENTO COM PANDA # Carrega os módulos do panda 3D import direct.directbase.DirectStart # Loop principal, chamado única vez ao # Final do script run()
DESENVOLVIMENTO COM PANDA import direct.directbase.DirectStart #Carrega cenario.egg environ = loader.loadModel(“cenario") #coloca environ como filho do root da árvore environ.reparentTo(render) environ.setScale(0.25,0.25,0.25) environ.setPos(-8,42,0)
DESENVOLVIMENTO COM PANDA #Carrega um ator (animacao) pandaActor = Actor.Actor("models/ralph-model",{"walk":"models/ralph-walk4"}) pandaActor.setScale(0.005,0.005,0.005) pandaActor.reparentTo(render) pandaActor.loop("walk") run()
EXEMPLOS Air Blade
EXEMPLOS Kill Bill
EXERCÍCIO • a) Descreva o que é o Panda 3D b) Descreva 3 característica do Panda3D 2) Carregue os arquivos environ.egg e person.egg na tela utilizando bibliotecas básicas do Panda 3D e a linguagem Pyton