Panda3D/Manual/Models e Actors
Os tipos de geometria
[editar | editar código-fonte]Existem duas classes no Panda para a geometria 3D: a 'Model', que é para geometrias não-animadas, e a 'Actor', que é para as geometrias animadas.
Note que uma geometria só é considerada animada se ela muda de forma. Então por exemplo, uma bola de futebol não pode ser considerada animada: ela pode girar por todos os lugares, mas ainda assim vai permanecer sendo uma esfera. Uma bola de futebol deve ser Model, e não Actor.
O Panda não distingue entre grande e pequeno objeto. Por exemplo, se um mundo virtual contém uma xícara de café em uma mesa, e a mesa está no meio de uma pequena ilha, então a xícara de café, a mesa, e a ilha são todos Models: cada um é um pedaço de uma geometria estática.
Muitas engines fornecem ferramentas para a criação de terrain, e armazenam esse terrain em imagens heightmap. O Panda3D pode gerar geometrias para tipos de terrenos heightmap. Na maioria dos terrenos simples, contudo, as pessoas preferem usar modelos estáticos do que uma imagem heightmap.
As próximas seções do manual assumem que você tem um arquivo .egg válido o qual contém um modelo animado, e outros arquivos .egg adicionais contendo animações. Para aprender como converter um modelo em um arquivo .egg veja a seção de Exportar Modelo.
O formato de arquivo do Panda
[editar | editar código-fonte]No Panda3D, a geometria é geralmente armazenada num arquivo EGG. Um arquivo EGG pode conter:
- Model (geometria estática)
- Actor (geometria dinâmica)
- Uma animação (para ser aplicado ao Actor)
- Ambos Actor e animação
Os arquivos EGG são criados ao exportar modelos de programas de modelagem 3D como Maya, Max ou Blender. Atualmente, o suporte ao Maya é muito forte, já que muitos desenvolvedores do Panda3D usam o Maya. O plugin do Max não é de muita confiança no momento. E existem bons plugins para o Blender.
Não é recomendado empacotar o actor e uma animação no mesmo arquivo EGG: isso tende em confundir o desenvolvedor.
Os outros formatos do Panda3d
[editar | editar código-fonte]O arquivo EGG é otimizado para debug, e não velocidade. A primeira vez que você carregar um arquivo EGG, ele carrega devagar. Contudo, na segunda vez que você usar o mesmo arquivo EGG, ele carrega rápido.
Isto é possível pois o Panda3D traduz calmamente o arquivo EGG num forma desempenho-otimizado: o arquivo BAM. O Panda armazena este arquivo num diretório chamado model cache. No desenvolvimento de um jogo, isto funciona muito bem: o único momento que você vai perceber um delay é quando você criar o arquivo EGG pela primeira vez. Depois, ele roda rapidamente.
Contudo, há uma situação em que isto não funciona bem: quando você for distribuir os seus jogos. Você não vai querer que os jogadores experimentem delays causados pelo carregamento de arquivos .egg na primeira vez que jogarem. Neste caso, faz sentido distribuir arquivos BAM em vez de arquivos EGG. Pra isso, você pode usar uma ferramenta como o egg2bam ou packpanda para converter os seus arquivos EGG em arquivos BAM manualmente.
CUIDADO: um arquivo BAM só funciona com a versão que o Panda o criou! Do contrário, os arquivos EGG funcionam com qualquer versão do Panda3D. Por causa disto, NÃO é recomendado que você use arquivos BAM no desenvolvimento. Eles devem ser usados somente na distribuição do jogo.