The fact that there are two different native model file formats in Panda (.bam and .egg) has always felt a bit awkward to me and may be quite confusing for new users. Lately some opinions were voiced concerning the usefulness of the .egg file format, so I decided to create this topic to discuss its future. Should it remain as it is? Is it worth it to keep enhancing/patching it (as well as its converters –
bam2egg)? Or should it simply disappear?
While I do see the reasons for the existence of the .egg file, I’m not sure it’s a good idea to keep it around – at least not as a model file.
Let’s think about its strengths for a moment:
- easily editable using a simple text-editor.
But what exactly would we want to edit in it or learn from reading it? Among other things, that could be:
- texture file paths;
- the material properties applied to the model;
- whether the model has tangent and binormal vectors;
- the names of any additional texture-coordinate sets.
But this kind of info is interspersed with loads of vertex data, so it’s not very comfortable to navigate to the data you’re interested in (a good editor makes this easier, but that’s not really the point).
And who would ever want to edit that vertex data itself? This seems better done by using the low-level geometry-manipulation methods in Panda and writing the results back to .bam, I think.
So my idea would not be to get rid of the .egg file, but to repurpose it as an optional “companion file” to the .bam file.
It would no longer contain any vertex data (which makes up about 99% of it currently), but rather those things truly worth editing, e.g. texture file paths – which would then serve as an override to the data in the .bam file – as well as useful info like UV-set names, whether the model is double-sided and so on.
What do you guys think? Feel free to share your thoughts!