FBX Anyone ?

How do people feel about FBX with Python bindings as a module, plugin or other integration type ?

Would this be feasible ? I know very little about Panda3D eventhough I’ve been a pro developer for over 25 years.

What are some of the fundemental Panda3D issues that would rear there ugly head against adding this feature ?

I’m not concerned with FBX itself, just the areas/features or fundemental roadblocks that would hinder
implementing FBX in Panda.

Heck, it might not be a good idea for Panda3D. Why not ?

etc. etc.

The Panda code is pretty well organized. There is already some work in progress for supporting for the Collada format, and supporting FBX would be a similar venture. The main problems you would run into would be special types of objects or properties that are supported by Panda’s EGG/BAM format and not the FBX format, for example the LOD node. This would require some sort of special tagging in the FBX file for the FBX loader to properly interpret the objects. Of course as a pro developer with 25 years experience under your belt I bet you would have no problem adding basic support in less than 1 day. I look forward to seeing your contributions to Panda.

This is the kind of stuff I’m looking for…

basic FBX itself is ready, It just need to get into the Panda codebase clean.

keep it comming.

If an FBX importer is developed, it would be nice if it could be implemented as a something2egg converter like the others in “pandatool”, or otherwise (though this is not preferred) as a native loader plugin like egg2pg.

What do you mean

" (though this is not preferred) as a native loader plugin like egg2pg"

What techinical reasons drive this preference ?

Also, what does egg2pg do ? I looked for the documentation on it.

Where is it ? Did I overlook something ?


There are two ways to implement converters:

(1) As a native loader plugin. This loads the model straight into Panda3D’s memory structures, after which it can be written to a .bam file if necessary.
However, this makes it hard to use additional processing steps after the importing process, which is why models are usually converted to .egg first which are easily modifiable. It also means that the importer plugin always needs to be available in order to be able to load the models.
A notable example of such a native loader plugin is our .egg loader, which is in panda/src/egg2pg in the source tree.

(2) As a SomethingToEggConverter. This is the preferred method, and this is how most converters are implemented, because of the advantages of being able to use .egg as an intermediate format. There are plenty of examples in pandatool/src in the source tree for converters that are implemented in this manner.

Thank you.

I understand now.