Foveated rendering is a method to render fewer pixels than are shown to the user.
The underlying idea is that the human retina is very high-resolution only around the gaze point where the user is focusing. The remainder, or peripheral region, is low-resolution. Therefore more rendering power should be focused around the gaze region.
Typically this can be done in one of several ways:
- Approach 1: Render the whole image in a low resolution (in terms of density) and then render the foveal region in a higher resolution. Then place the high-resolution foveal region over the low-resolution image.
- Approach 2: Tile the output into separate regions. Render different regions at different resolutions.
- Geometric subsampling
- Render a subset of pixels to be shown. The sampling is denser near the foveal region and sparser in the periphery.
- Typically uses a log-polar transformation where y-axis is polar (0 to \(\displaystyle 2\pi\)) and the x-axis is log distance from the focus center.
- Requires some form of interpolation to reconstruct the missing pixels (e.g. bilinear or using a GAN)
- Deepfovea (Kaplanyan et al, Siggraph Asia 2019)
- Uses a gan to do reconstruction.