alvr-org / ALVR

Stream VR games from your PC to your headset via Wi-Fi
MIT License
5.52k stars 488 forks source link

Are Hmd.Pose and Eyegaze.Pose obtained using the same SDK? #1623

Closed Hope10086 closed 1 year ago

Hope10086 commented 1 year ago

hello! I noticed that the raw pose of EyeGazes have been converted to the pose relative to Hmd by the function to_local_eyes in alvr/server/src/connections.rs. But the value of EyeGazes as follow in ALVR is different from the one I got from ALXR earlier.

LeftEyeGaze: (0.179912 -0.040644 -0.580696),(-0.064341 0.170292 0.000014 0.983291) RightEyeGaze: (0.244912 -0.040642 -0.580678),(-0.063930 0.181576 0.000015 0.981297)

It is correct because we can find the difference of LeftEyeGaze.position.x and RightEyeGaze.position.x is 0.065(interpupillary distance) even though the origin point is not the midpoint of the eyes.However the value of .y .x in ALXR is close to zero . I guess that the pose of Hmd is obtained by OpenVr 's API while the poses of EyeGaze are obtained by OpenXr's FB_Eye_Tracking.Although this does not affect my follow-up work, I still want to confirm with you.

zmerp commented 1 year ago

OpenVR is the API used on the server to interface with SteamVR. It has nothing to do with eye and face tracking code. The client uses only OpenXR, for both head tracking and eye/face tracking.

The eye orientation might differ between ALXR and ALVR because ALVR tracks eyes individually, while ALXR might use a unified gaze direction.

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.