Panda3D

From GDWiki

Jump to: navigation, search


Panda3D
Image:Panda.jpg
Developer: Walt Disney VR Studio,

Carnegie Mellon University

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

Edit this Section

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

Edit this Section

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

Edit this Section

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

View Panda3D Tutorials

Community Help

Image:GUITutorial_info.gifHaving problems? Try asking our community on the forums! Don't forget to check the engines' forums! Panda3D Forums


Panda3D Users

Related Weblinks

Categories