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
Download

PANDA3D