Skip to content

Add cube and light visibility test models for KHR_node_visibility#235

Merged
lexaknyazev merged 2 commits intoKhronosGroup:mainfrom
aaronfranke:khr_node_visibility
Nov 12, 2025
Merged

Add cube and light visibility test models for KHR_node_visibility#235
lexaknyazev merged 2 commits intoKhronosGroup:mainfrom
aaronfranke:khr_node_visibility

Conversation

@aaronfranke
Copy link
Contributor

@aaronfranke aaronfranke commented Oct 13, 2025

Same as PR KhronosGroup/glTF-Test-Assets-Interactivity#3, I was told to make a PR to both repos, because this is interactivity-related and interactivity implementers will need this, but also this makes sense outside of interactivity.


This model demonstrates the KHR_node_visibility extension and its interaction with KHR_animation_pointer.

  • If your implementation shows either of the red cubes, it is not compliant with KHR_node_visibility.

  • If your implementation does not have the blue cube hiding and showing every 0.5 seconds, either the animation is not playing, or it does not support using KHR_animation_pointer to animate the KHR_node_visibility visible property.

Animated screenshot of the test model in action:

screenshot_animated


The other model demonstrates the same but with lights.

  • If your implementation shows either of the red spotlights, it is not compliant with KHR_node_visibility.

  • If your implementation does not have the blue spotlight hiding and showing every 0.5 seconds, either the animation is not playing, or it does not support using KHR_animation_pointer to animate the KHR_node_visibility visible property.

screenshot_animated


Note: These 6 Godot PRs are required to fully fix this test asset in Godot:

bghgary added a commit to BabylonJS/Babylon.js that referenced this pull request Oct 15, 2025
This change fixes an issue with the [sample asset for
KHR_mesh_visibility](KhronosGroup/glTF-Sample-Assets#235)
not working. I'm not adding a test for this asset yet as this sample
asset is not conformant with the extension spec yet.

It also moves the visible properties from `AbstractMesh` to `Node` which
fixes some issues with how visibility is being handled. The inspector v2
has also been updated to match this change.
@aaronfranke aaronfranke changed the title Add cube visibility test model for KHR_node_visibility Add cube and light visibility test models for KHR_node_visibility Oct 21, 2025
Copy link
Member

@lexaknyazev lexaknyazev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider not updating LICENSE.md, README.md, Models*.md, and model-index.json files as they should be regenerated by bots anyway.

@aaronfranke
Copy link
Contributor Author

Fixed those issues.

Consider not updating LICENSE.md, README.md, Models*.md, and model-index.json files as they should be regenerated by bots anyway.

The PR has to include updating these files, because otherwise the CI will complain about them not being updated.

@javagl
Copy link
Contributor

javagl commented Nov 8, 2025

otherwise the CI will complain about them not being updated.

I'm not seeing any failed build here - am I overlooking something?

Only the metadata.json and the README.body.md should be required (at least, I hope so - I didn't add any other files e.g. in #244 ...). At least, that's what's also mentioned in https://github.com/KhronosGroup/glTF-Sample-Assets/blob/main/SubmittingModels.md

@aaronfranke
Copy link
Contributor Author

@javagl I was getting CI failures when I first opened the PR: https://github.com/KhronosGroup/glTF-Sample-Assets/actions/runs/18479060875/job/52649972324

So I ran all the CI stuff locally to get the asset fully fixed.

I have not actually tested if the CI shows a failure with some of these changes are excluded, but I'm confused as to what the point would be if these changes will be made anyway.

@javagl
Copy link
Contributor

javagl commented Nov 8, 2025

, but I'm confused as to what the point would be if these changes will be made anyway.

The idea is that only the metadata.json and the README.body.md should be part of the PR, and the other files should be auto-generated. This is to ensure that the main README for all assets has the right structure (sections like "Tags"/"Extensions Used"/.../"Legal" etc), and that the license file is present, follows a common format, and refers to valid licenses, and that the directory layout and naming conventions for the sample models are followed.

(The amount of work that people are putting into things like https://github.com/cx20/gltf-test is astonishing - but imagine how much harder that would be if everbody could just check in arbitrary files can call them "sample assets"...)

The build failure (that refers to the state from https://github.com/KhronosGroup/glTF-Sample-Assets/tree/741e2185b5d82991cfbde5fe5ab3ca50f9c9ceda/Models/CubeVisibility ) was caused by the facts that...

  • There was no metadata.json
  • There was no README.body.md
  • The glTF file names have been cube_visibility.* instead of CubeVisibility.*

@lexaknyazev lexaknyazev merged commit fdb101a into KhronosGroup:main Nov 12, 2025
2 checks passed
@aaronfranke aaronfranke deleted the khr_node_visibility branch November 12, 2025 18:50
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

Successfully merging this pull request may close these issues.

3 participants