Closed serhan-gul closed 2 years ago
Hi,
sadly I don't know how MRTK accesses ET data when running Holographic Remoting. If you want to try accessing it using ARETT you could try looking at the EyeGazeProvider source and checking what APIs it uses for data access during remoting. However, even then I'm unsure if you can access the same data rate and quality as ARETT generates running directly on the device. The unreliable data rate you saw using MRTK is the reason I developed ARETT and am using the low-level UWP API. When running on the device MRTK only checks for new ET data every frame, resulting in the lower and inconsistent data rate with unprecise timing. Checking the current gaze using the EyeGazeProvider only accesses the cached gaze data and therefore even when checking it on a 10ms timer you only get the low data rate connected to the frame rate of the app.
Best regards Sebastian Kapp
Thank you Sebastian, this is helpful information. It seems to be a limitation of MRTK that the ET data is only updated with every new frame. Unfortunately, it is not possible to check how exactly Holographic Remoting works internally but my guess is, requests to retrieve ET data are tied to the frame rate in Unity, so variations/drops in frame rate affect the timing of the samples.
Hi, I'm trying to modify DataAccessUWP.cs to make it work with Holographic Remoting because I want to use eye tracking on a complex scene which cannot be run on HL2 due to the high rendering load.
My first attempt was to simply use DataAccessUWP.cs while running the Remoting inside Unity Play mode. However, the web app showed me that the eyes API is not available; it seems that UWP API
SpatialPointerPose.Eyes
cannot be used while using Remoting. Then I tried to use the MRTK interfaceCoreServices.InputSystem.EyeGazeProvider
(see docs here) but it seems to output gaze samples at an unpredictable rate (usually less than 30 Hz) although I use the same Timer mechanism (checking each 10ms) implemented in ARETT.Another idea was to build as a Windows Standalone app but again, it seems not to be possible to use the
SpatialPointerPose
API then.Do you have any suggestions/ideas how to tackle this? Would be great to hear your opinion on whether this is feasible. Thanks.