Foveated Rendering

From David's Wiki
Jump to navigation Jump to search

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:

  • Tiling
    • 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 ) 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)