Add cube and light visibility test models for KHR_node_visibility#3
Add cube and light visibility test models for KHR_node_visibility#3aaronfranke wants to merge 2 commits intoKhronosGroup:mainfrom
Conversation
5bea411 to
ef59ba2
Compare
|
hey aaron! |
ef59ba2 to
018a89a
Compare
|
@aaronfranke is it intended that the value animation does not use CONSTANT interpolation at the moment?
|
dcd8ae6 to
9d3b291
Compare
|
Currently, the animations in the test assets are not valid. From the spec:
A minor note: |
|
I believe we discussed in the WG that it is actually not required that nodes have the extension to be animatable with visible, but I'm not sure if I remember correctly or if its written down somewhere. @lexaknyazev could you clarify please if it stays like mentioned in the spec comment above, and having the extension is required for both interactivity and animation_pointer to be able to modify the "visible" value? |
|
The |
01e12df to
18cd5fa
Compare
|
Updated the PR to include the explicit visible property on the animated objects. I also cleaned up the test assets in several other ways, like not saving empty materials, so the JSON looks clean. The only remaining validator note from the VS Code extension is "Cannot validate an extension as it is not supported by the validator: 'KHR_node_visibility'." which will require an update to the validator to fix. |
|
@lexaknyazev would the visibility extension on a node also be required when a interactivity graph can change the visibility? Because with the readonly pointers we can now access the childs and parents of nodes dynamic on "runtime" and a graph has the possibility to access every node of a gltf file . So we can't know for sure on exporting such graph which node will be have changed visibility on runtime. So we would need to add the visibility extension on EACH node on export as soon as we have a pointer/set visibility with dynamic index in the graph. |
|
@robertdorn83 The interactivity extension does not have any special cases wrt node visibility pointers so they follow the generic Object Model language, which requires all such pointers to be statically resolvable. Therefore, an asset that for some reason wants to be able to toggle every node's visibility would need to have the extension object added to every node. There are two possible alternatives that may or may not be better:
|
|
I wonder if an alternative requirement that satisfies the first problem would be to require that extensions are added to |
Optional extension support is not an issue here because unresolvable pointers would simply activate The root cause is that an engine may make strong assumptions based on the static asset state and such assumptions may be hard to change mid-execution. For example if an asset does not statically use texture transform properties on a particular texture slot, an engine may be unable to set such properties dynamically without heavy reloads. This becomes even more complicated with material properties that would require switching to multi-pass pipelines, e.g., anything related to transmission. |
|
or maybe we extend the KHR_node_visibility extension that it also can be added to the "scene"? (but without a "visible" property). Maybe also usefull for Hoverability and Selectability ? |
That would be an even more special case than doing the same implicitly when interactivity is used.
What's the practical use case for arbitrarily toggling every node? |
|
the use case? i don't know... it's a designer/authoring possibility with interactivity. :D |
|
From an implementation point of view, while I understand that needing the parent object is not as flexible, it solves a lot of issues which otherwise would need to be handled:
|
|
so this file can now be merged? :) or is there some changes planned? |
18cd5fa to
461aa6e
Compare
|
@robertdorn83 It needs an approval from @lexaknyazev but as far as I know I've fixed all of the remaining issues. |
461aa6e to
2a8386a
Compare
2a8386a to
6bc3872
Compare
|
Closing as superseded by KhronosGroup/glTF-Sample-Assets#235 |



This model demonstrates the
KHR_node_visibilityextension and its interaction withKHR_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_pointerto animate theKHR_node_visibilityvisible property.Animated screenshot of the test model in action:
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_pointerto animate theKHR_node_visibilityvisible property.Note: These 6 Godot PRs are required to fully fix this test asset in Godot:
STEPinterpolation for integer and boolean animations godotengine/godot#111615