Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
spyro's avatar
spyro
Expert Protege
12 years ago

Low persistence with (nearly) 60 fps performance possible?

Hi there,

As we know, low persistencedoes not work with 60 fps. As the screen flashes only once per frame and stays black until the next frames arrives, the flickering would be very annoying at 60 Hz. So we need 90-120 Hz to avoid this. If we just would use the same frame twice, we would just replace motion blur with heavy ghosting (the old frame could be seen twice on different places as we move our head).

So do we really need a higher framerate (and those way much processing power and bandwidth) just to solve this? Maybe there is another solution. Shutter glasses (as they are used for 3D-TVs) refresh side only with 60 Hz in alternating order. As the user sees through both sides at once, the two frequencies 'add' to 120 Hz for the visual system (which seem to be the important point here).

So the basic idea is, that we could just interleave the left and right perspective of TWO CONSECUTIVE frames in a way we get a "fake-120 fps"-Signal to the Rift:

First, the LEFT PERSPECTIVE OF FRAME 1 will be scanned out to the display (the right perspective of this frame will NOT BE RENDERED AT ALL):



After about 1 ms, the display turns black (either the backlight- or OLED-Switch):



After another 7 ms, the RIGHT PERSPECTIVE OF FRAME 2 arrives based on new data (the left perspective of frame 2 will not be rendered either):



After another black phase of 7 ms, the process repeats.

Again, it's important to note that the left and right perspective are not from the same frame but from different points in time, so the right perspective is NEWER than the left one (otherwise we would produce heavy ghosting as well).

Here is simple diagram I made in a few minutes to show the principle:



Here is a short testvideo which could be watched on a Rift: https://dl.dropboxusercontent.com/u/24358204/oculus/interleaving/oculus_interleaved_60Hz.mkv

If you stop the video on any frame you will notice that only one perspective is visible at once. As the Rift-DK1 only supports 60 Hz, you will easily notice heavy flickering, of course. But with a 120 Hz panel (and 120 fps 'perspective alternating rendering') the flicker should disappear.

The Rift uses lenses to unwarp the horizontally compressed images in a way they fill out nearly the whole FOV, so that's basically the same effect as with shutter glasses. Each side for it's own flickers at 60 Hz (with an offset of 8 ms), but they add to 120 Hz because both sides are watched 'over' each other and note side-by-side.

Note: The brightness of the picture will degrade by 50 % (because only half of the photons hit each eye in given time now). But that shouldn't a problem in a closed box directly in front of your eyes so I assume this can be callibrated.

The big advantage is, that you will have to render the same amount of pixels like on 60 fps. So this save a considerable amount of GPU time and memory bandwidth when compared with "progressive" 120 fps rendering. As the CPU has to do all simulation and world processing 120 times/sec. no matter what, it's only a solution on games which are rather GPU- than CPU-limited (which should be the case on high resolutions and frame rates).

What do you think? Could this actually work? Without a DK2 and a low persistence display it's hard to tell but maybe there is a fundamental flaw in this approach?

spyro

16 Replies