06-03-2024 01:48 AM
The specs clearly state that:
If the returned isActive is true, the runtime must return all joint locations with both
XR_SPACE_LOCATION_POSITION_VALID_BIT and XR_SPACE_LOCATION_ORIENTATION_VALID_BIT set. Although, in
this case, some joint space locations may be untracked (i.e. XR_SPACE_LOCATION_POSITION_TRACKED_BIT or
XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT is unset).
However the OpenXR runtime in meta devices do always return isActive as true once hand tracking has been activated. This means that when a given hand is not tracked because is out of sight, the isActive field is true but the flags for all the joints are zero, meaning that the system is saying at the same time that the hands are tracked and not tracked.