The latest update to the Oculus Unity Integration adds a feature which should reduce the latency between real world and in-VR controller position by around 10ms, according to Facebook.
Unity is the engine powering the majority of VR games. On the Quest store, all but a handful of titles use the engine.
The new feature, which is enabled by default, is called ‘Late Controller Update’. Before this feature, the Oculus system would provide Unity with the controller position at the start of the frame. This position value would be used for physics, gameplay/interaction code, and then rendering.
The problem with this approach was that the time taken to process the game code and physics code meant the controller position was no longer current. While TimeWarp lowers perceived latency for the head, it doesn’t do anything for the controllers.
Late Controller Update means that the Oculus system will provide new controller positions after the game and physics code have run. This means that Unity will render the most recent possible controller positions.
Facebook’s developer documentation suggests that the latency improvement from this feature is around 10 milliseconds.
Interestingly, it warns developers to be mindful that the rendered controller position will be more recent than the position in their game code. This means that while the controller’s visual position will have lower latency, interacting with virtual objects, pressing buttons, and haptic feedback will continue to have the same latency as before.
We tested toggling this feature on and off in a test scene in Unity, and confirmed it does have a subtle, but noticeable, impact on perceived controller tracking responsiveness. Hopefully many Quest and Rift Unity developers will add support for this feature in their apps soon.