C Specification

The XrRenderModelNodeStateEXT structure is defined as:

// Provided by XR_EXT_render_model
typedef struct XrRenderModelNodeStateEXT {
    XrPosef     nodePose;
    XrBool32    isVisible;
} XrRenderModelNodeStateEXT;

Members

Member Descriptions
  • nodePose is an XrPosef of the node in its parent node space.

  • isVisible is an XrBool32 which indicates if the node is visible or not.

Description

This structure is populated with state for a single animatable node in an XrRenderModelEXT.

For any animatable node N, if an ancestor node M is also animatable, and isVisible is XR_FALSE for node M, then isVisible must be XR_FALSE for node N as well. That is, being not-visible is recursive. An application should interpret all descendant nodes of an animatable node with isVisible = XR_FALSE to also not be visible (to similarly interpret being not-visible as recursive).

The pose nodePose locates the associated animatable node, and all descendants, relative to that animatable node’s parent, replacing the animatable node’s transform, if any was supplied as matrix or translation/rotation/scale properties in the glTF asset. The application should apply this nodePose to the associated node, as well as to all descendant nodes per the glTF specification. That is, the nodePose replaces, instead of composes with, the asset-specified transform.

Where one animatable node M is a descendant of another animatable node N, the application should transform the descendant node M and its descendants by the composition of the nodePose for both M and N. That is, nodePose should be interpreted by the application to respect the hierarchy in the glTF asset, and compose with other animatable node poses, as well as transformations supplied in the glTF asset on non-animatable nodes.

For clarity, given a model for which the runtime returns a nodePose equal to the original transform in the asset for all animatable nodes, the resulting rendered model should be rendered the same as the unmodified glTF asset. This implies that for ease of use, runtimes may consider structuring their assets such that animatable nodes have no (or identity) transformation specified in the glTF asset, such that nodePose of identity for all animatable nodes produces an rendered model in its neutral, original state.

Valid Usage (Implicit)

See Also

Document Notes

For more information, see the OpenXR Specification

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2025 The Khronos Group Inc.