When I Updated the babylon to the latest version of 7.48.0, the gltf exported data has removed the extensions and extensionsUsed. With the version of 7.37.0, the data includes the extensions and extensionsUsed.
The issue is related to material.subSurface.isRefractionEnabled being set to false instead of true somewhere. You can see this yourself if you zoom in close enough to the model and compare between versions.
Ah, this is related to recent glTF loader improvements!
The original glTF from your playground is technically invalid, as it does not define “extensionsUsed”. The loader is now optimized to dynamically import extension handlers based on whether they exist in the extensionsUsed object.
So this is expected behavior, but I suppose it might be considered a breaking change?
EDIT: To clarify, what I’m trying to say is that this isn’t related to the exporter at all. If the extensions are not defined in extensionsUsed, then they are not imported, so thus they are also not exported.
Thanks a lot for your explanation. And the glTF loader improvements is so great!!!
I’m not looking to discuss the glTF loader behaviors.
My confusion is about the glTF serializer, not the glTF loader. The data exported by glTF serializer doesn’t include extensions or extensionsUsed of the latest version.