EXT_mesh_gpu_instancing not supported in transcoder
Hi, I have a glb file utilizing the EXT_mesh_gpu_instancing and EXT_instance_features extensions
See https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_mesh_gpu_instancing/README.md
The draco_transcoder.exe ignores these extensions and my instanced objects disappear.
I see some code fragment around the EXT_mesh_gpu_instancing extension, but my guess is that the loader hasnt implemented it.
Is there a branch working on this feature or anything?
Thanks, Arne
sample glb file with EXT_mesh_gpu_instancing 172393_129.zip
regular 3D viewers do not show the trees, which are modeled as instances. Only CesiumJS supports it.
command: draco_transcoder.exe -i 172393_129.glb -o 172393_129_draco.glb
With apologies for plugging my own software here... I believe only one implementation exists for Draco + EXT_mesh_gpu_instancing, see https://gltf-transform.dev/cli (also open source). Draco compression can be applied using the glTF Transform CLI with:
npm install --global @gltf-transform/cli
gltf-transform draco in.glb out.glb
The glTF Transform CLI supports plugins with support for other extensions, but I'm not sure whether an implementation exists for EXT_instance_features, which is not (yet?) an official extension. /cc @javagl do you know?
It is not an official (merged or even ratified) extension. And therefore, the implementation at https://github.com/CesiumGS/3d-tiles-tools/tree/main/src/gltf-extensions/gltfExtensions (permalink) is not "public" or "official" in any way either. However, there is a very basic ExtInstanceFeaturesDemo.ts that shows the usage, with the combination of EXT_mesh_gpu_instancing and EXT_instance_features in glTF-Transform.
We have been thinking about how to make at least the implementation(s) more accessible. Ideally, there would be some dedicated repo that contains the EXT_instance_features (and the other extensions that are currently only available internally within the 3D Tiles Tools), and the result would be offered as an NPM package that can transparently be plugged in by glTF-Transform users. But no decision has been made there yet.