Skip to content
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

EXT_mesh_gpu_instancing not supported in transcoder #1081

Open
arneschilling opened this issue Sep 18, 2024 · 3 comments
Open

EXT_mesh_gpu_instancing not supported in transcoder #1081

arneschilling opened this issue Sep 18, 2024 · 3 comments

Comments

@arneschilling
Copy link

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

@arneschilling
Copy link
Author

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

@donmccurdy
Copy link
Contributor

donmccurdy commented Nov 7, 2024

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?

@javagl
Copy link

javagl commented Nov 7, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants