Panda SE Project

During the past few months, several students at Carnegie Mellon University’s Entertainment Technology Center (ETC) have been working on improving the egging process as well as incrementally improving the shader system.  Just take a look at their smiling faces!

Panda SE Team Photo
From Left: Wei-Feng Huang, Federico Perazzi, Shuying Feng (Panda), Deepak Chandrasekaran, Andrew Gartner

For those of you that have been with Panda 3D a long time you’ll know that there have been ETC Panda 3D projects in the past.  Some of them have had limited success due to an oversized project scope.  This project will instead focus on making complete feature sets rather than half implemented pieces like those past unsuccessful projects.  It will also focus on documentation both within the code and the manual to make sure that you, the Panda community will be able to take their work and build on top of it.
With that said, this project will primarily focus on two things:

  1. The shader inputs
  2. The egging/model exporting process

Shader Inputs

If you’ve taken a look at the source code of Panda 3D’s shader system and have had any experience in professional game engine development, you’ll notice that it’s a system that isn’t implemented fully.  Actually, the first shader system was an ETC student project and it has since then been improved through other ETC projects and the Panda 3D community.  Shader inputs is continuing this work in a structured manor.
Shaders have supported the input of arrays and arrays of vectors for quite some time.  However, Panda 3D has never supported this.  There have been some hacks in the past where arrays are passed as textures, but this is not ideal for performance and it ruins texture caching schemes.  After this project completes, users will be able to input arrays and arrays of vectors/matrices directly into the shader.

Screenshot of multiple lights demo
Screenshot of multiple lights demo

This may not seem that exciting at first but this lays the groundwork for many more things.  If your new to computer graphics having a complete shader inputs system allows for some of the following just to name a few.

  • Hardware accelerated actors/characters
  • Shader based instancing with dynamic texture and animation support (crowds)
  • Shader based vegetation system (fast trees and grass)
  • A real deferred shading system
  • A real light manager system for shader based lights

A Real Egging Pipeline

Up until now, there have been several attempts at user interfaces to the maya2egg, dae2egg, etc.  Most of them are just simple user interfaces to the command line equivalents of them.  This new user interface is much more than that.  It is an artist friendly build system.  Just check out some of the features.

  • Simple mode for when you don’t want a build system
  • Support for multiple maya versions
  • Support for egg tools such as egg-opt-char and egg-palettize
  • A batching system that automatically detects whether a file has been changed to allow for minimal rebuilds
  • Support for all tools to be built into batch system
  • Save/Load batch scripts

Like shader inputs this lays the groundwork for much future work.  For any game engine to be professional quality, it needs a set of robust artist tools such as node-based shader generators and artist friendly level editors.

Screenshot of WIP Egging GUI
Screenshot of WIP Egging GUI

10 thoughts on “Panda SE Project

  1. While some info was already on the forum, this is very good news for us, the non-ETC Panda3D users. I am also quite happy that new stuff gets posted to the blog, I’d love to see stuff posted here more often.

  2. Glad you guys like it. This is hopefully a more structured approach to getting some of the more modern graphical features and tool requirements in. Stay tuned.

  3. Great stuff!
    I’m a bit worried about the complicated interface of that GUI. If the same thing is being developed for Blender egger convert – can we have some user-testing input before it’s released? I’ll volunteer to give my feedback on the design!

  4. @ dr, The GUI currently has two modes. One is the simple mode for the novice user who does not want to go through all of the optimizations and features that the advanced mode offers. And the snapshot shown is only of the advanced mode.
    We are definitely looking forward to hear from the community and will work on changing the layout based on Disney’s input and the community’s input.

  5. Hey these are both great ideas!! I can wait to see these in action myself. Maybe thwy will help get us closer to my goal!
    (This comment brought to you by: Plants for the Including of Soft Shadows ‘n Panda)

  6. Good to hear. Please make sure it runs on Macs too, recently I was a bit disappointed that the WIP editor had GUI problems on Macs.

Comments are closed.