Kruithne / wow.export

📦 Export Toolkit for World of Warcraft
MIT License
269 stars 54 forks source link

FBX model exporting support #87

Closed Kruithne closed 4 years ago

Kruithne commented 4 years ago

As we move toward supporting bone and animation exporting, being able to export to FBX is required.

thunderysteak commented 4 years ago

In my opinion, I feel like we should go with COLLADA instead.

FBX is a proprietary Autodesk format and the use of FBX SDK would be required for binary format export. Its also only available in C++ or Python. I discussed with Marlamin previously about implementing FBX support with the old export tools based on C#, and he deemed the implementation of it through the FBX SDK too hacky.

Yes, it is possible to export FBX files in ASCII format, but that will break compatibility with Blender, as it cannot import ASCII FBX files and is the FBX SDK equivalent of version 7.4.0 (Current FBX SDK version is 2020),

COLLADA on the other hand is XML based, is widely supported due of the ISO/PAS 17506:2012 standard and would be easier to implement due of it being in ASCII/XML format.

Only issue is that 3DS Max/Maya users will most likely have to rely on the official plugins, as Autodesk is using its own implementation of COLLADA called FBX COLLADA, which breaks some stuff, so a notice would have to be put somewhere for Maya/3DS Max users to recommend them to use the plugin from KhronosGroup: https://github.com/KhronosGroup/OpenCOLLADA

nxrighthere commented 4 years ago

Maybe both are redundant to implement since GLTF is planned as a universal export format?

thunderysteak commented 4 years ago

GLTF is too new of a format and currently only Blender supports import/export of GLTF with the official KhronosGroup plugin.

Autodesk/Maya/Motionbuilder has zero GLTF support and Cinema4D only supports GLTF as an experimental exporter. There are also no third-party plugins that allow import or export of GLTF.

The specific format needs to be picked correctly to keep compatibility with most tools, and going with GLTF would definitely break compatibility with other tools than Blender.

Kruithne commented 4 years ago

COLLADA may be an option going forward, however FBX is off the table due to the complexity of it. The development of it was already scrapped in favor of GLTF, so this issue will be closed.

The current goal is to get GLTF support finished, which is currently blocked by an issue with armature origin points that I haven't had the time to debug yet. Once GLTF support is done, thus giving us internal armature support, COLLADA seems like the logical next step, and given the modular structure of wow.export should be trivial to implement at that point.

Kruithne commented 4 years ago

FBX is a proprietary Autodesk format and the use of FBX SDK would be required for binary format export. Its also only available in C++ or Python. I discussed with Marlamin previously about implementing FBX support with the old export tools based on C#, and he deemed the implementation of it through the FBX SDK too hacky.

Also, to follow this up, using the FBX SDK is not the only approach available and was not the road-block that removed FBX support for us. The FBX branch on this repository has most of the FBX format implemented as a binary container without any SDK inclusion. Use of third-party stuff, especially interop, is heavily discouraged for this project.

FBX was just scrapped because it is a crud format required additional geometry data that we just didn't deem worth calculating internally when more modern formats are available.