ultraleap/OpenXRHandTracking

Hands move in virtual space when the user view is rapidly moved

rblenkinsopp opened this issue · 3 comments

The user's virtual hands may appear to move relative to the head when the head is moved quickly, even when the user's hands are remaining still. This is due to the temporal warping settings and the fact that the hand position and view position are updated at different rates.

To account for this, there are two settings exposed by environment variables ULTRALEAP_OPENXR_TIME_WARP_HEAD and ULTRALEAP_OPENXR_TIME_WARP_VIEW which control the adjustment to the timestamps used to locate the hands and view respectively.

Sensible defaults have been chosen for each of these, but since these values can differ between headsets and OpenXR runtimes, per headset tuning may be required for optimal results.

Currently the value is set as an average of empirically found timings for the following headsets:

  • Samsung Odyssey (Windows Mixed Reality)
  • HP Windows Mixed Reality Headset (Windows Mixed Reality)
  • Valve Index (SteamVR OpenXR Beta)
  • Vive Pro (SteamVR OpenXR Beta)
  • Oculus Rift (OpenXR Prototype)

An enhancement would be to include a lookup table based on the current runtime or headset to allow further fine-tuning.

kukel commented

Any progress on this? Any new version?

There are significant improvements to this which will be made available in an upcoming release.

This should be considerably improved in Beta.3 & Beta.4.