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 Características - Cenas • Scene Editor: - Criar layout 3D - Iluminação - Animação - Loading - Motion Path - Colisões Características - Cenas 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 caracteres internacionais renderização • Possibilita carregar novas fontes e criar efeitos como: - Shadow - Alignment - Frames - Cartões de 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/ralphmodel",{"walk":"models/ralph-walk4"}) pandaActor.setScale(0.005,0.005,0.005) pandaActor.reparentTo(render) pandaActor.loop("walk") run() EXEMPLOS EXEMPLOS EXERCÍCIO 1) 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