Foveated Rendering a.k.a. Variable Acuity Resolution (VAR)
A few months ago I started the patent research process on an invention I had imagined about a decade ago. With the advent of VR I imagined that this idea was going to make me a VR millionaire once I had it patented. Working alone online I was unable to find anything like my idea, so I began to draw up the basics for my concept. However, I soon afterward read an interview with John Carmack or perhaps one of the other bigwigs of VR and he made a brief mention of VAR – Variable Acuity Resolution, and instantly I knew my invention had already been thought up, and probably Oculus was already working on it.
This relatively simple idea is a way to reduce the calculations needed to render a super high resolution imagine on a screen with 10% of the normal processing power or less.
In a normal screen, the pixel density is the same everywhere, so the graphics processor must calculate a high pixel density for the entire screen. The consumer version of the Oculus Rift is reported to be 2160 pixels wide by 1200 pixels high, which means 2,592,000 pixels must be calculated and displayed. At 120 FPS, that’s 311,040,000 pixels to calculate and display per second! So, if Oculus wants to eventually have ridiculously high pixel density so that individual pixels cannot be seen (such as 16K UHD which is 15,360 × 8,640 pixels = 132,710,400 pixels or at 120FPS = 15,925,248,000 = nearly 16 BILLION pixels PER SECOND to calculate and display!) then VAR technology is essential to reducing the load on the graphics card.
However, VAR can reduce this load by 90% (by my amateur calculation), or perhaps much better, meaning that once displays with higher resolution are available, simply using this one relatively simple software trick. So even with today’s graphics cards, it seems to me that VAR can help Oculus or other VR headsets (such as the Fove which is the first to offer eye tracking) display the pixels on screens somewhere between 4K and 8K resolution.
VAR is hardly talked about in the VR/tech news world, but is if extreme importance. The way it works requires a fundamental shift in the way we normally think about screen resolution. It takes advantage of the simple fact that the human eye only sees great detail within a very small percentage of the eye, in an area called the Fovea Centralis.
The Fovea has a much higher density of rods and cones, and is only 1.5mm wide. So, with eye-tracking technology, a VR headset can know exactly where your eye is looking on the screen, and display only the high detail that’s projected onto your fovea. A software algorithm can thus set up various zones on the screen, as shown in the diagram below, with the assumption that your eyes are looking straight ahead where the red square is. In each region, a different amount of detail is displayed, and thus far few calculations need to be made to create the illusion of Ultra High Resolution.
Variable Acuity Resolution (VAR) Diagram
Looking at the above diagram, you can see five regions:
Red = 1 pixel per square
Yellow = 3×3 = 9 pixels per square
Green = 6×6 = 36 pixels per square
Blue = 12×12 = 144 pixels per square
Black = No calculations needed
The general effect is that in all the colored regions but red, it’s as if the pixels are made much larger, and because your eye can’t see much detail in those regions away from the center of its view, it can’t tell the difference. I just made these numbers up for illustration purposes, but you should get the idea.
If you look at the image below, staring at the center, you’ll probably notice that it’s pretty irrelevant that the outer regions don’t have full resolution.
Sample VAR Image – How it Looks
Click the above image and then click again to maximize it. Then if you look at the man’s face and don’t look elsewhere, you will get some idea of what VAR looks like.
This makes for a very individual experience. If your view was to be mirrored onto a flat panel for others to watch, for the most part they’d see a heavily pixelated screen that would be really annoying to try to watch.
Who’s using VAR now?
As far as I can see, the only HMD maker that’s announced that they’re using VAR is FOVE, which is currently running a kickstarter, and they refer to VAR as “Foveated Rendering.”
Because of the huge performance advantages, there’s little doubt that other headset makers will certainly begin to use this technique at some point, especially when higher-resolution screens become available. I’m personally very curious to find out what actual performance gains can be made using VAR, and how what FOVE is doing compares with the guess in my diagram above.
Nvidia has also announced a foveated rendering product that tracks the users’s eyes faster than they can move, as described in this MIT Tech Review article. Researcher David Luebke has notes two interesting things about the technology. First, that if the peripheral vision is too blurry, the user will feel a bit like he has tunnel vision, and that something seems wrong, even though the center vision is clear. Second, any flicker induced by pixellation artifacts in the periphery can trick the brain into imagining movement, which is very distracting. When done right and all is in balance, the foveated rendering isn’t noticeable, but saves a very large amount of computer time. We should expect to see this technology in the next generation VR headsets, or perhaps generation 3.
It’s also worth mentioning that viewing a high resolution screen through lenses isn’t the only way to do VR. Another technique is to use micro reflectors to project the image directly onto the viewer’s eyeballs, which is what Magic Leap is doing. In this scenario, VAR makes even more sense, and researchers will be able to match the pixel density exactly to the size of the rods and cones in the eyes in order to make perfectly lifelike resolution.