C Specification
The XrHandPoseTypeMSFT describes the type of input hand pose from XrHandTrackerEXT.
// Provided by XR_MSFT_hand_tracking_mesh
typedef enum XrHandPoseTypeMSFT {
XR_HAND_POSE_TYPE_TRACKED_MSFT = 0,
XR_HAND_POSE_TYPE_REFERENCE_OPEN_PALM_MSFT = 1,
XR_HAND_POSE_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
} XrHandPoseTypeMSFT;
Description
The XR_HAND_POSE_TYPE_TRACKED_MSFT
input provides best fidelity to the
user’s actual hand motion.
When the hand tracking input requires the user to be holding a controller in
their hand, the hand tracking input will appear as the user virtually
holding the controller.
This input can be used to render the hand shape together with the controller
in hand.
The XR_HAND_POSE_TYPE_REFERENCE_OPEN_PALM_MSFT
input does not move
with the user’s actual hand.
Through this reference hand pose, an application can get a stable hand
joint and mesh that has the same mesh topology as the tracked hand mesh
using the same XrHandTrackerEXT, so that the application can apply the
data computed from a reference hand pose to the corresponding tracked hand.
Although a reference hand pose does not move with user’s hand motion, the
bone length and hand thickness may be updated, for example when tracking
result refines, or a different user’s hand is detected.
The application should update reference hand joints and meshes when the
tracked mesh’s indexBufferKey
is changed or when the isActive
value returned from xrUpdateHandMeshMSFT changes from XR_FALSE
to XR_TRUE
.
It can use the returned indexBufferKey
and vertexUpdateTime
from
xrUpdateHandMeshMSFT to avoid unnecessary CPU or GPU work to process
the neutral hand inputs.
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
Copyright 2014-2024, The Khronos Group Inc.
This work is licensed under a Creative Commons Attribution 4.0 International License.