Você está na página 1de 39

Panda3D

Introdução
• Panda3D é um motor de jogo 3D: uma biblioteca de sub-rotinas para
renderização 3D e desenvolvimento de jogos.

O que é o • A biblioteca foi escrita com C++ com conjunto de ligações Python

Panda3D? • O desenvolvimento de jogos com o Panda3D geralmente consiste em


escrever um programa Python ou C ++ que controla a biblioteca
Panda3D.
• Desenvolvido pela Disney

• Lançado em 2002

História • Para o seu jogo online, Toontown

• Actualmente desenvolvido pela Disney e Carnegie Mellon


University’s Entertainment Technology Cener
• Programa de computador e/ou conjunto de bibliotecas, para
simplificar e abstrair o desenvolvimento de Jogos eletrônicos e
aplicações com gráficos em tempo real

Motor de jogo
(game engine)
• Utilizado desevolvimento de jogos para videogames e/ou
computadores rodando sistemas operacionais
Modelador 3D
vs Motor de
jogo 3D
• Panda3D License (versões anteriores a 1.5.2)

Licença
• BSD modificada
• Motor de física idependente e integração total do ODE

• Texturas animadas

Recursos • Suporte a shaders

• Som 2D e 3D usando FMOD

• Suporte a teclado e mouse


• Windows

• macOS

Plataformas • Linux

• FreeBSD

• Android
• Espaço livre no disco rígido: 100 MB

Requisitos
• RAM: 256 MB
minímos de
máquina • Processador: Pentium @ 1 GHz
• O núcleo do Panda3D é escrito em C ++ portátil. Quando
combinado com o código de suporte de plataforma apropriado,
o Panda3D será executado em qualquer lugar.

Portabilidade
• Baixar o instalador a partir do link:

https://www.panda3d.org/download/

Instalação
Instalação no
Windows
• A forma mais fácil para instalar o panda é utilizando os pacotes RPM
ou DEB

Instalação no
• Se existir um instalador , baixar e instalar o RPM ou DEB apropriado
Linux
para a sua versão do Linux
• pip install panda3d
Já é um
utilizador de
Python? • pip install panda3d == 1.10.8
• Windows:
ppython filename.py
Executando o
programa • GNU/Linux ou Mac OS:
python filename.py
• Reponsável por abrir janelas, configurar os dispositivos de entrada e
criar o Scene Graph

Classe
ShowBase
• The Scene Graph é uma árvore de nós contendo todos os objectos
que precisam ser renderizados

• A raiz da árvore é um objecto chamado render


The Scene
Graph • Nada é renderizado sem antes ser adicionado no Scene Graph

• Para adicionar um modelo no Scene Graph, usamos o método


reparentTo() ou o wrtReparentTo()

o meuModelo.reparentTo(render)
• Para remover um modelo no Scene Graph, usamos o método
detachNode()

o meuModelo.detachNode()

The Scene • Para remover completamente um nó de uma scene graph e da

Graph memória usamos o removeNode()

o meuModelo.removeNode()

• Para adicionar um nó vazio no scene graph utilizamos o método


• Para adicionar um nó vazio no scene graph utilizamos o método
attachNewNode()

The Scene
Graph
• meuNo.setPos(x, y, z)

• meuNo.setScale(valor)

Mudanças de
• meuNo.setHpr(yaw, pitch, roll)
estado
• meuObjecto.setPos(outroObjecto, X, Y, Z)

• meuObjecto.getPos(outroObjecto)
• meuObjecto.lookAt(outroObjeto)

• meuObjecto.getPos(outroObjecto)
Mudanças de
estado • meuObjecto.setColor(R, G, B, A)

• meuObjecto.clearColor()
• Controla as várias das opções de configuração do Panda3D

• ConfigVariableManager.getGlobalPtr().listVariables()

Configuração
• Exemplo:

Configuração
• Existem duas classes no Panda para os modelos 3D:

o Model (modelos não-animados)


Tipos de o Actor (modelos animados)
modelos
• O Panda3D não distingue um objecto grande de um pequeno
• No panda3D, a geometrica é geralmente armazenada num arquivo
egg.
• Um arquivo egg pode conter:

Formato de o Model

arquivo do o Actor
o Uma animação (para ser aplicado ao Actor)
Panda
o Actor e animação

• Os arquivos egg são criados ao exportar modelos de programas de


modelagem 3D
• A primeira vez que um arquivo egg é carregado, ele carrega devagar
Formato de
arquivo do • O Panda3D traduz o arquivo egg numa forma de desempenho-

Panda otimizado: arquivo bam


• Como carregar?

objecto = loader.loadModel(“models/meuModelo.egg”)
Models
• Inserir o Model na Scene Graph

objecto.reparentTo(render)
• A classe Actor é designada para suportar um modelo animado e um
conjunto de animações

• A classe Actor deve ser importada antes de qualquer carregamento


Actors
ou manipulação

from direct.actor.Actor import Actor


• Adicionar Actor:

actor = Actor(‘caminho para o modelo’,{


‘nome da animação 1’ : ‘caminho para a animação 1’

Usando Actors ‘nome da animação 2’ : ‘caminho para a animação 2’


})
• Executar uma animação

Usando Actors

• Remover animação

actor.unloadAnims({‘nome da animação’: ’caminho para a animação ’})


• Classe AnimControl

Usando Actors
• O caminho usado no loadModel deve seguir as convenções utilizadas
pelo Panda3D.

Sintaxe do
Panda3D
• Por padrão, o Panda3D executa uma tarefa que permite mover a
camera usando o mouse

• As chaves para navegar são:


Controlando a
camera
Godot Engine
Código aberto;
C, C++, C#
50,1MB
Motores de jogo
Unity
Alternativos Multiplataforma
UnityScript, C#
1,27GB

Unreal Engine
Multiplataforma
C++, C#, GLSL, Cg, HLSL
Inglês, Japonês, Coreano, Chinês e Português
Caso prático
Conclusão
• Panda3D não é ferramenta para inciantes ou um brinquedo

• Para ter êxito ao usar a Panda3D, você deve ser um programador


experiente
Conclusão
• Panda3D é um dos mais fáceis e mais poderosos motores de jogo que
você vai usar

Você também pode gostar