Exactly!Virion wrote:I think what we need to do is to list down all features we need and then only the format can be structured properly to fit with the requirements before start coding it.
I was doing a bit of research and what I have concluded is this:
1. Our core team should only "define" file formats and develop and maintain "loaders" in the core. Once the formats are defined we publish them publicly and let the community create, sell and maintain exporters for DCC tools like Maya, Max, Blender etc. This would reduce burden on the core team and promote healthy competition among community members ańd teams, also providing them a steady source of income. Of course, the core-developers could themselves be part of any such team, if they so wish.
2. The most obvious features, in my opinion, which the file formats need to support are:
- 2.1 Skeletal and morph animation.
- 2.2 Materials, with or without shaders.
3. Based on the above, my initial suggestion would be to start with the following:
- 3.1 A binary mesh file format: This should contain obviously the mesh data, as well as morph data. I'm not sure if it needs to contain something more, perhaps others can advise about it. This would require complimentary loader in the engine core.
- 3.2 A text or xml-based skeleton file format which encodes all the data about the skeleton. We would need to write the parser for it, perhaps even as part of the core mesh-loader above.
- 3.3 An text or xml-based material file format: this could contain data about environment, materials for each mesh, textures etc. We would need to write the parser for this.
These are my initial thoughts and meant to serve as a starting point for more concrete discussion.
Questions that need to be answered:
1. In regards to 3.1, how the mesh-data should be encoded, and exactly what kind of morph data the file should contian? This probably needs to support how morphing is currently implemented. I have never looked deeply into why we cannot have skeletal and morph animation at same time in Irrlicht, can someone enlighten me please? Nevertheless, we need to solve this issue also.
2. In regards to 3.2, same as 3.1. What is needed to be encoded which is required for skeletal system to work? Also, how to ensure skeletal animation would work together with moprh animation?
3. In regards to 3.3, how exactly the materials would be referenced? By filename or by material name? How much and what detail about each material will we encode? How could the materials utilize shaders?
4. How would all this interact? Which file will access which file and how?
Please comment and share your thoughts/opinion/knowledge.