Forum Discussion
sh0v0r
13 years agoProtege
Right Eye Latency
I've been adding NGUI for my menu system.
I have it rendering into a Render Texture which is applied to a material on a Plane that is attached to the Left eye with a Local Position offset to put it in the centre.
With 'Call in Pre-Render' Disabled
The Left eye displays a stationary image as expected but it appears to lag behind in the Right eye.
With 'Call in Pre-Render' Enabled
Neither image is stationary...
Is this a known issue? What causes this?
Wouldn't it make sense to simply child one of the Cameras onto the other to ensure the Transform Orientations are consistent?
I have it rendering into a Render Texture which is applied to a material on a Plane that is attached to the Left eye with a Local Position offset to put it in the centre.
With 'Call in Pre-Render' Disabled
The Left eye displays a stationary image as expected but it appears to lag behind in the Right eye.
With 'Call in Pre-Render' Enabled
Neither image is stationary...
Is this a known issue? What causes this?
Wouldn't it make sense to simply child one of the Cameras onto the other to ensure the Transform Orientations are consistent?
5 Replies
Replies have been turned off for this discussion
- sh0v0rProtegeLooking into the OVRCamera script in SetCameraOrientation it only uses the Right Camera to update the Global Static Orientation.
Attaching the Plane to the Right Camera has resolved %99 of the Lag with Call in Pre-Cull, I still notice a small lag in the left eye.
I want to use the lower latency Call in Pre-Render, If I enabled Call in Pre-Render the Right eye begins to lag again... :?
This has also got me thinking that perhaps some of the motion blur we see is infact due to the lack of synchronisation between the eyes?
I'm probably way off base here...? - SlopeyHonored GuestThat's good to know - I have my UI elements parented off the left eye, and there's a noticeable lag on the right eye - especially if you're previewing in the IDE.
I'll move them over to the right eye and see if that improves it - I didn't think to check the code for where it updated the position :oops: - petergiokarisProtegeHey all,
You need to parent to the Right camera, not left (the right camera calculates the proper transform to allow for children to render properly).
It's always safe to make the update in Pre-Cull; some systems do not behave well when updating the cameras in Pre-Render.
Note that our latency prediction is pretty good, and can be increased to achieve parity with calling in Pre-Render without noticeable artifacts.
Best,
Peter - sh0v0rProtege
"petergiokaris" wrote:
Hey all,
You need to parent to the Right camera, not left (the right camera calculates the proper transform to allow for children to render properly).
It's always safe to make the update in Pre-Cull; some systems do not behave well when updating the cameras in Pre-Render.
Note that our latency prediction is pretty good, and can be increased to achieve parity with calling in Pre-Render without noticeable artifacts.
Best,
Peter
Thanks Peter, so adjusting the Prediction Time in OVRDevice can resolve the latency with Pre-Render?
I don't have any issues using it with my game so if I can use it and its has lower latency I'd like too.
Do I increase the prediction or reduce it? - petergiokarisProtegeYes, increasing the Prediction time will mask latency nicely. Just make sure not to go over a certain amount, otherwise you will start to get overshoot and the result is a bit jerky (50ms seems to be too much; values between 20-40ms are reasonably safe).
Best,
Peter
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 6 months ago
- 2 years ago
- 3 years ago