Jump to content
 
Tatiana_K

How to get output from the eye-tracker faster than Update in Unity

Recommended Posts

Hello!

So in the specs it is said that the eye-tracker data output frequency is 120Hz, however, I can not get it higher than around 90Hz, which is the rate at which my scene is rendered. I tried with FixedUpdate with a small fixed timestamp, but it just repeats the fixation values on the extra cycles.

Could you tell me please if it is possible to obtain the output from the eye-tracker faster than the Updates happen? I apologize for possibly noob questions, but also, if I will make my scene render faster, will it help, considering that the vive itself refresh rate is 90 Hz?

 

Share this post


Link to post
Share on other sites

It would be nice if HTC cleaned this up. They advertise a 120hz eye tracker and then make you work around their own poorly threaded architecture to get it.

Share this post


Link to post
Share on other sites

There is callback mode supported in 120 FPS now after check "Enable Eye Data Callback" as the figure shown below; And, then register a callback function by SRanipal_Eye_v2.WrapperRegisterEyeDataCallback(). Could refer to its usage in sample included in SDK.

 

 

callback.png

Share this post


Link to post
Share on other sites

Dear @Daniel_Y,

 

Thank you very much for sharing the helpful information.

The callback function in version 2 enabled me to sample the eye data at 120Hz. I referred to the script of SRanipal_MirrorCameraSample_Eye_v2.

 

Best regards,

imarin

Share this post


Link to post
Share on other sites

Hello @imarin18

The callback function in version 2 does not give me the eye data at 120H. Unity stats shows variable FPS like 90 to 140 FPS. How can I get it exactly 120 FPS?

@Daniel_Y

Share this post


Link to post
Share on other sites

@Ashish How are you measuring the callback data frequency? If you're using the callback method or a separate thread for 120hz data it will be independent of the Unity FPS.

Share this post


Link to post
Share on other sites

Hi @Corvus, I'm using callback method. According to @Daniel_Y I enabled v2 and then used sample UI code to show FPS from http://wiki.unity3d.com/index.php?title=FramesPerSecond&_ga=2.258332745.253243703.1593390743-1664584608.1593097261&fbclid=IwAR2zAe7hOiiEzb822jA5lIFOlpDGXqUhf-W2WYlbf00-B4uo-Y1-IhDqYtQ

I get 30 to 45 FPS. I checked my monitor frame rate is 60Hz. Please take a look at screenshot and let me know how can I get 120 FPS. 

 

Thanks in advance!

 

frames1.PNG

Share this post


Link to post
Share on other sites

Hi @Daniel_Y and @Corvus

I have several queries and findings :

1. In vive developer page I found that, refresh rate for headset and for eyetracking output frequency are different. For headset it is 90 hz and for eyetracking output frequency its 120 hz.

https://developer.vive.com/resources/knowledgebase/vive-pro-eye-specs-user-guide/

2.  I am getting different refresh rate for headset on different monitor. I tested on two monitors, one is Asus ROG(default monitor fps:144hz), another one is DELL(default monitor fps:60hz). From Asus ROG I have got 90 HZ frame rate for headset but from Dell monitor I am getting less than 60 hz. I wonder what relationship between monitor refresh rate and headset refresh rate is. Can you explain? I have calculated refresh rate using the following code:

https://paste.ubuntu.com/p/YYHqbpnPNC/

3. Can you suggest or give example code how I can measure refresh rate for headset and eye tracking output frequency?

4. The last thing is: “Gaze data output frequency (binocular):120Hz” , to my understanding this means, we can collect 120 data points per second, right ? is there any dependency between Headset refresh rate and eye tracking output frequency?

               

Share this post


Link to post
Share on other sites

Please sign in to comment

You need to be a member in order to leave a comment

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...