Open robertlong opened 6 years ago
That is a beautiful and ambitious matrix you have created. 😁
Could I request an extra column for multiple animations? Sadly it is painfully missing from nearly all of these. I might also vote to remove the Draco column, as it feels like something that could be more effectively implemented as a post-optimization rather than in each exporter.
(NOTE: Maintainers please feel free to edit this comment if it needs correction, to keep the comment churn limited.)
From memory, this is FBX2glTF, but feel free to edit the borderline cases as you like:
node
especially?)edit: Added support for KHR_materials_unlit and control of the doubleSided material option. edit: Added "Animation (Multiple)" edit: Update Alpha Coverage status to supported
@donmccurdy I updated the doubleSided one to say:
⚠️ Double Sided Material (requires custom Cycles node, doesn't use Blender's own flag)
I updated the matrix, added the multiple animations column, and edited the comments.
@donmccurdy and @Kupoman could you fill in the multiple animations item in your checklists? I think it's missing from both of those exporters, but I could be wrong.
@zellski the extras data on node is useful for application specific behavior that doesn't belong in an extension. I think it's hard to do in a general way to all the glTF properties, but node seems like it would be the easiest and most useful.
@donmccurdy I'd rather keep the Draco column. I think it's useful to be able to export an optimized asset directly from an exporter. Not all of them will implement the extension and when they don't users can use the glTF pipeline tool or some Draco compression tool.
@donmccurdy and @Kupoman could you fill in the multiple animations item in your checklists?
I've updated both — blendergltf supports multiple animations, and support is in progress for the Khronos exporter.
@donmccurdy I'd rather keep the Draco column.
Ok, sounds good.
Any chance the following folks could chime in on their glTF exporter capabilities?
Thanks, it is deeply appreciated! 👏
Sure thing!
Very nice, thank you kindly @deltakosh!
Thanks @Ziriax! Would you mind editing to match the template (and then add any notes inline or below that)? 😇
Updated the matrix. Thanks everyone!
Looking to fix some bugs with texture exporting and accessor information soon.
/cc @CentaurMare
⚠️ JSON Export (.gltf, .bin, .png) (Creates .gltf embedded, does not write external .bin/.png files) ✔️ Binary Export (.glb) ❌ Morph Targets ❌ Skinned Mesh ❌ PBR Metallic Roughness Material ❌ KHR_matrials_pbrSpecularGlossiness ❌ KHR_material_unlit ❌ Additional Maps ✔️ Alpha Coverage ✔️ Double Sided Material ❌ Cameras ❌ Animation (TRS) ❌ Animation (Weights) ❌ Animation (Multiple) ❌ KHR_draco_mesh_compression. ❌ Extras Data ⚠️ Asset Information (no copyright information)
Sketchup only supports diffuse materials (textured and non-textured), and doesn't support animations.
@lasalvavida or @ziriax any chance you could provide input on COLLADA2GLTF for this capability matrix?
Thanks for the reminder @pjcozzi, I'll try to get to this sometime this evening
Thanks @lasalvavida! One minor thing: I'm taking "Animations (Multiple)" to refer to grouping <animation_clip/>
nodes into separate glTF animations, per https://github.com/KhronosGroup/COLLADA2GLTF/issues/130. To my understanding COLLADA2GLTF does not support this quite yet.
I'm taking "Animations (Multiple)" to refer to grouping
nodes into separate glTF animations, per KhronosGroup/COLLADA2GLTF#130. To my understanding COLLADA2GLTF does not support this quite yet.
Makes sense, I'll uncheck it.
@robertlong I updated the Maya2glTF matrix, the exporter now supports exporting blend-shapes and skinning. Can you update the main matrix please? Thanks!
Fixed the problems with alpha coverage output in blendergltf. I have updated the status post to reflect these changes.
The BabylonJS 3DS Max exporter is listed twice - is that a typo, or is there another tool we'd meant to link to?
Yeah, thanks for catching that. I've removed the duplicate entry.
@robertlong perhaps it is worth adding an N/A icon since some tools would never be able to check all the boxes since their input format, e.g., OBJ, doesn't support the features.
Does anyone else want to chime in here?
Perhaps
Update: double sided materials are supported in COLLADA2GLTF 2.1.1
Update for Babylon/s maya exporter:
Updated, thanks @deltakosh!
@robertlong do you think these features should also be part of the table?
Thanks @pjcozzi, I've updated the matrix to include those columns. I haven't filled them in yet though. I'll need some help from the community.
including sharing an instance with different materials
How would you define an instance with different materials? I didn't know this was currently possible in glTF 2.0.
How would you define an instance with different materials?
In three.js we try to assume this is the intention when two meshes reference the same accessors but different materials. The spec does not explicitly state any such relationship, and it gets complicated when multiple primitives are considered, but I think it's reasonable to encourage exporters to reuse accessors wherever possible. In any case, loaders should not have to compare vertex data to identify reused meshes.
EDIT: Related — https://gist.github.com/mattdesl/aea40285e2d73916b6b9101b36d84da8
Thanks, yeah that makes sense.
Buffer reuse for vertex attributes is probably another best practice that may belong in here somewhere. Maybe I'll make a separate column for these two features. What do you think?
Guessing you mean buffer views, not buffers, but yeah bufferview de-duplication — and generally not creating more bufferviews than necessary — could be reasonable to include here. I think they could be combined in a single column.
Yeah, I meant buffer views. Cool, I'll add the column.
Hi, thank you for making this list. We at Soft8Soft develop glTF exporters for 3ds Max and Blender.
More info on how to use these exporters can be found here.
[✔️] JSON Export (.gltf, .bin, .png/.gif/.jpg) [✔️] Binary Export (.glb) [✔️] Morph Targets [✔️] Skinned Mesh [✔️] Buffer View and Accessor Reuse [✔️] Mesh Instancing [✔️] PBR Metallic Roughness Material [❌] KHR_matrials_pbrSpecularGlossiness [❌] KHR_material_unlit [✔️] Additional Maps [✔️] Multiple UV Sets (Only supports up to 2 UV sets currently) [✔️] Alpha Coverage [⚠️] Double Sided Material (Only supported for 3dsMax Standard materials) [✔️] Cameras [✔️] Animation (TRS) [✔️] Animation (Weights) [✔️] Animation (Multiple) (Includes support for per-node animation selection) [❌] KHR_draco_mesh_compression. [❌] Extras Data [⚠️] Asset Information (No support for copyright info yet)
[✔️] JSON Export (.gltf, .bin, .png/.gif/.jpg) [✔️] Binary Export (.glb) [✔️] Morph Targets [✔️] Skinned Mesh [✔️] Buffer View and Accessor Reuse [✔️] Mesh Instancing [✔️] PBR Metallic Roughness Material [❌] KHR_matrials_pbrSpecularGlossiness [❌] KHR_material_unlit [✔️] Additional Maps [✔️] Multiple UV Sets (Only supports up to 2 UV sets currently) [❌] Alpha Coverage [❌] Double Sided Material [✔️] Cameras [✔️] Animation (TRS) [✔️] Animation (Weights) [✔️] Animation (Multiple) [❌] KHR_draco_mesh_compression. [❌] Extras Data [⚠️] Asset Information (No support for copyright info)
[✔️] JSON Export (.gltf, .bin, .png/.gif/.jpg) [✔️] Binary Export (.glb) [❌] Morph Targets [⚠️] Skinned Mesh (Prerelease only) [✔️] Buffer View and Accessor Reuse [✔️] Mesh Instancing [✔️] PBR Metallic Roughness Material [❌] KHR_matrials_pbrSpecularGlossiness [❌] KHR_material_unlit [✔️] Additional Maps [❌] Multiple UV Sets [✔️] Alpha Coverage [❌] Double Sided Material [✔️] Cameras [⚠️] Animation (TRS) (Prerelease only) [⚠️] Animation (Weights) (Prerelease only) [⚠️] Animation (Multiple) (Prerelease only) [✔️] KHR_draco_mesh_compression. [✔️] Extras Data [✔️] Asset Information
[✔️] JSON Export (.gltf, .bin, .png/.gif/.jpg) [✔️] Binary Export (.glb) [❌] Morph Targets [⚠️] Skinned Mesh (Prerelease only) [✔️] Buffer View and Accessor Reuse [✔️] Mesh Instancing [✔️] PBR Metallic Roughness Material [❌] KHR_matrials_pbrSpecularGlossiness [❌] KHR_material_unlit [✔️] Additional Maps [❌] Multiple UV Sets [✔️] Alpha Coverage [❌] Double Sided Material [✔️] Cameras [⚠️] Animation (TRS) (Prerelease only) [⚠️] Animation (Weights) (Prerelease only) [⚠️] Animation (Multiple) (Prerelease only) [✔️] KHR_draco_mesh_compression. [❌] Extras Data [❌] Asset Information
Update for Babylon.js 3ds Max glTF Exporter Checklist: [✔️] JSON Export (.gltf, .bin, .png/.gif/.jpg) [✔️] Binary Export (.glb) [✔️] Morph Targets [✔️] Skinned Mesh [✔️] Buffer View and Accessor Reuse [✔️] Mesh Instancing [✔️] PBR Metallic Roughness Material [✔️] KHR_matrials_pbrSpecularGlossiness [✔️] KHR_material_unlit [✔️] Additional Maps [✔️] Multiple UV Sets (Only supports up to 4 UV sets currently) [✔️] Alpha Coverage [⚠️] Double Sided Material (Only supported for 3dsMax Standard materials) [✔️] Cameras [✔️] Animation (TRS) [✔️] Animation (Weights) [✔️] Animation (Multiple) (Includes support for per-node animation selection) [❌] KHR_draco_mesh_compression. [❌] Extras Data [⚠️] Asset Information (No support for copyright info yet) [❌] KHR_material_clearcoat (planned 5.0) [❌] KHR_material_sheen (planned 5.0) [❌] KHR_material_transmission (planned 5.0)
Currently we have a number of glTF exporters with partial support for glTF 2.0. It would be great if we could help artists find the right exporter for their pipeline and required features. We'd also like to help developers find the best projects for them to contribute to.
I'm compiling a matrix of exporters and their supported features. I could use the help of the community in building this matrix. I've created an exporter feature checklist for people to fill out and submit in this thread. I'll add it to the matrix and we can update it as these exporters mature. Hopefully, this pushes people to fill in the missing pieces of these exporters and we can enjoy a more robust exporter ecosystem.
Please let me know if there are items that should be added, removed, or changed in this list. My intention is to keep it high level enough that it isn't information overload, but detailed enough that you can find out if the exporter will work for you. Thank you!
glTF Exporters
Key:
glTF Exporter Checklist
primitive.targets
andprimitive.weights
. This does not include animation of the weights.inverseBindMatrices
,joints
, andskeleton
properties as well as theJOINTS
andWEIGHTS
vertex attributes.pbrMetallicRoughness
material.pbrSpecularGlossiness
material.normal
,occulsion
, andemissive
maps.alphaMode
,alphaCutoff
and alpha value for the given material.doubleSided
value.translation
,rotation
, andscale
properties of nodes. This includes joints in skinned meshes.version
, thegenerator
name, and allows you to specify thecopyright
field.Post template
If a feature is missing, please try to provide some details. If it has partial or no support please indicate that. Linking to specific Github issues would be even better!