Panda3D
From GDWiki
| Panda3D | |
|---|---|
| |
| Developer: | Walt Disney VR Studio, |
| Latest Release: | Version 1.5.3 |
| Platform: | Windows, Linux, MacOSX, SGI |
| Graphics: | DirectX, OpenGL, TinyGL |
| Physics: | Built-In, ODE, PhysX |
| Network: | Yes |
| Scripting: | Yes (Python) |
| Sound: | Yes |
| License: | BSD |
| Website: | Panda3D |
Contents |
Description
Panda3D is a free 3D engine designed to reduce the time and cost of game development. It has a short learning curve, a straightforward API, and high resilience to user error. Panda3D is written in C++ and is tightly integrated with the python scripting language. It was originally developed by Disney Imagineering and was released as free software in 2002. Panda3D is actively being developed by Disney Imagineering and Carnegie-Mellon's Entertainment Technology Center.
History
The Disney VR studio is a branch of Disney that was created to build 3D attractions for Disney theme parks. They built an attraction called "Aladdin's Magic Carpet," and the engine they created for that was eventually to become Panda3D. The engine in its current form bears little resemblance to those early years. Over time, Panda3D was used for additional VR rides at Disney theme parks, and was eventually used in the creation of Toontown, an online game set in a cartoon world. [1]
In 2002, the engine was released as open source. According to the authors, this was so that they "could more easily work with universities on Virtual Reality research projects." [2] However, it took some time for Panda3D to take off as an open-source project. From the article:
The system, although quite usable by the team that developed it, was not quite "open source ready." There were several interested users, but building and installing the system was incredibly complex, and there was little in the way of documentation or sample code, so there was no significant open source community right away.
However, the open-sourcing of the engine allowed Carnegie Mellon's Entertainment Technology Center to join in the development of the engine. While Disney engineers continued to do the bulk of the development, the Carnegie-Mellon team built a role for itself polishing the engine for public consumption, writing documentation, and adding certain high-end features such as shaders.
Panda3D's name was once an acronym: "Platform Agnostic Networked Display Architecture."[3] However, since that phrase has largely lost its meaning, the word "Panda3D" is rarely thought of as an acronym any more.
Panda3D is open source and, as of May 28, 2008, free software under the revised BSD license. Releases prior to May 28, 2008, unfortunately, are not truly Free Software due to certain errors in the design of the old Panda3D license. Even so, older releases of Panda3D can also be used for both free and commercial game development at no financial cost.
Features
Shader Generation
Many advanced rendering techniques now fully automatic:
- Special Maps: Normal Map, Gloss Map, Glow Map
- HDR Rendering: Tone Mapping, Bloom Filter
- Cel Shading: Threshold Lighting, Inking
- More to come
Performance Monitoring
Powerful performance monitoring and optimization tools:
- Identifies bottlenecks, both CPU and GPU
- CPU time use decomposed into more than 250 categories
- Counts meshes, polygons, textures, transforms, state changes, etc
- Allows user-defined CPU-usage categories
- Tools for batching and state-change minimization
- Toos to merge textures and minimize texture switches
Full Python Integration
Automatically-generated wrappers expose full functionality of engine.
- Highly optimized: all core functionality in C++
- Thoroughly-tested: two commercial MMOs in python
- Panda3D structures garbage collected when using Python
- Manual and sample programs use python
Just Works, Right out of the Box
No-hassle install:
- Convenient installer packages for Windows, Linux and Mac OSX
- Only one external dependency: working graphics driver
- Sample programs run right out of Start Menu
- No compilation step needed
Exposes Full Power of Graphics API
Modern OpenGL features exposed directly to Panda3D user:
- High-level shader language: Cg
- Powerful interface between shaders and engine
- Render-to-texture, with ARB_draw_buffers
- Use of depth/shadow textures
Debugging Tools
Heavy emphasis on error tolerance and debuggable code:
- Extreme resistance to crashing, even when errors are made
- More than 5000 assertion-checks to catch errors early
- Reference-counted data structures minimize memory leaks
- Many tools to examine internal state (one shown here)
Mature, Complete System
Mature system used to deliver several commercial games. Contains everything you need, not just the "sexy" stuff:
- Converters for older file formats
- Font file importers
- Tool to package games into redistributables
- Means to pack art assets into encrypted bundles
- Lots of other boring but essential stuff
Tutorials and Source Code
Community Help
Having problems? Try asking our community on the forums! Don't forget to check the engines' forums! Panda3D Forums


