New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exporter Ecosystem Matrix and Checklist #1271
Comments
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. |
glTF-Blender-IO
(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: FBX2glTF
|
blendergltf
edit: Added support for KHR_materials_unlit and control of the doubleSided material option. |
@donmccurdy I updated the doubleSided one to say: |
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. |
I've updated both — blendergltf supports multiple animations, and support is in progress for the Khronos exporter.
Ok, sounds good. |
obj2gltf
|
Any chance the following folks could chime in on their glTF exporter capabilities?
Thanks, it is deeply appreciated! 👏 |
Sure thing! |
Babylon.js 3dsMax gltf exporter
|
Babylon.js Maya gltf exporter
|
Very nice, thank you kindly @deltakosh! |
Maya2glTF exporter
Details
Short term backlog (coming weeks)
Long term:
Desired pull requests
|
Thanks @ziriax! Would you mind editing to match the template (and then add any notes inline or below that)? 😇 |
Updated the matrix. Thanks everyone! |
UnityGLTF
Looking to fix some bugs with texture exporting and accessor information soon. |
/cc @CentaurMare |
Sketchup glTF export
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 |
COLLADA2GLTF
|
Thanks @lasalvavida! One minor thing: I'm taking "Animations (Multiple)" to refer to grouping |
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: Babylon.js Maya gltf 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.
How would you define an instance with different materials? I didn't know this was currently possible in glTF 2.0. |
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. Verge3D for 3ds Max
|
Verge3D for Blender
More info on how to use these exporters can be found here. |
Update for Babylon.js 3ds Max glTF Exporter Checklist:[✔️] JSON Export (.gltf, .bin, .png/.gif/.jpg) Update for Babylon.js Maya glTF Exporter Checklist:[✔️] JSON Export (.gltf, .bin, .png/.gif/.jpg) |
Adobe Dimension Export:[✔️] JSON Export (.gltf, .bin, .png/.gif/.jpg) Adobe Dimension Import:[✔️] JSON Export (.gltf, .bin, .png/.gif/.jpg) |
Following the criterion used for KhronosGroup/glTF#1271, updated the documentation to reflect the current capabilities of the engine.
Update for Babylon.js 3ds Max glTF Exporter Checklist: |
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
The exporter can output a .gltf file, a .bin file, and images for each of the textures.
The exporter can output a single .glb file containing the glTF JSON data, buffer data, and textures.
The exporter outputs morph target information via
primitive.targets
andprimitive.weights
. This does not include animation of the weights.The exporter outputs skins using the
inverseBindMatrices
,joints
, andskeleton
properties as well as theJOINTS
andWEIGHTS
vertex attributes.The exporter reuses buffer views and accessors whenever possible. Ex. Vertex attributes are packed into a single buffer view and meshes with the same geometry, but different materials reuse accessors.
When multiple nodes have the same mesh, the exporter exports a single mesh definition and references it in each node.
The exporter outputs the correct factors and textures for the
pbrMetallicRoughness
material.The exporter outputs the correct factors and textures for the
pbrSpecularGlossiness
material.The exporter supports exporting unlit materials. The material has the correct fallback values.
The exporter outputs the correct factors and textures for the
normal
,occulsion
, andemissive
maps.The exporter can output materials which use multiple UV sets.
The exporter outputs the correct
alphaMode
,alphaCutoff
and alpha value for the given material.The exporter can specify whether or not the material is double sided and outputs the correct
doubleSided
value.The exporter supports exporting both perspective and orthographic cameras.
The exporter supports exporting animations of the
translation
,rotation
, andscale
properties of nodes. This includes joints in skinned meshes.The exporter supports exporting animation of morph target weights.
The exporter supports exporting multiple animations.
The exporter supports exporting compressed meshes via the Draco mesh compression library.
The exporter allows you to specify extras data on (at minimum) node objects for adding application specific metadata.
The exporter outputs the correct glTF
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!
The text was updated successfully, but these errors were encountered: