Collaborate with other projects to create a new 3D interchange format #16632
emperorofmars
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I would like to propose for the Bevy project to come together with other FOSS projects (and also non FOSS companies) to create a new extensible 3D interchange format.
Why
Currently, Bevy loads glTF 2.0 files at runtime. A 3D asset has to be stripped and optimized in another tool like Blender into glTF for Bevy.
Once Bevy gains an Editor, it will have to deal with 3D asset import. That is, the conversion from an interchange format like FBX into its own runtime format, be it glTF 2.0 or something else. (See #3972)
One of the most common and widely used interchange format is FBX. It is undocumented and not extensible.
Blender is one of the most common tools to create 3D assets for Bevy. With version 4.4, Blender will have an animation system perfectly suitable for video games development. Unfortunately, Blenders FBX exporter is faulty. It won't export keyframe tangents among many other issues.
I don't want to put any blame on the Blender developers as they are forced to reverse engineer that format.
Apart from FBX, what is there?
What should be done
Collaborate to create a file format that is highly modular and extensible.
It should:
This has also been proposed to:
An ecosystem is always bigger than the sum of its parts.
This would enable a frictionless asset-pipeline between Blender and Bevy, or really any other authoring tool.
Supporting non FOSS tools would also be critically important in order for Bevy to partake in the larger game development ecosystem.
What has already been done
Proof of Concept
It consists of a container format with no specific features of its own.
All functionality is implemented as hot-loadable plugins, including core resource types like meshes.
A lot of effort was put into making plugins as self-contained as possible and easy to develop.
Repository: https://github.com/emperorofmars/stf-unity
Explanation: https://github.com/emperorofmars/stf-unity/blob/master/STF/Docs/stf_format.md
Arbitrary Material Definitions Proof of Concept
Current 3d formats support only some specific materials.
I've tried to create a material-definition format that supports arbitrary properties and is fully independent of any tool, game-engine or shader.
Explanation & Repository: https://github.com/emperorofmars/stf-unity/blob/master/MTF/readme.md
Extension System for FBX
This makes FBX (and other formats) extensible by serializing data into a 3d models object hierarchy. It's implemented for Blender and Unity.
It shows how easily an extension system can work on current existing formats.
This is at best a very heretical band-aid.
Explanation & Repository: https://github.com/emperorofmars/nna
Beta Was this translation helpful? Give feedback.
All reactions