By default, Unreal Engine 4 is using a perspective projection. However this projection model create distortions
of the geometry when working with wide field of view. It is very noticeable for instance here with sphere and a
FOV = 120.
Therefore Unreal Engine provides a optional post processing pass that attempt to fix this issue using a Panini
Projection. The idea of this post processing is to displaced the rendered pixel at the location where they should
using the panini projection instead of the perspective projection. To setup, the only thing you need to do is
setting up r.Upscale.Panini.D > 0. This post process effect is done in the Upscaling pass. It means this pass is
then going to be used if r.ScreenPercentage != 100 or r.Upscale.Panini.D > 0. For further understanding of this
parameter, you can refer directly to the original research paper referenced at the bottom of this page.
r.Upscale.Panini.D > 0 directly emphasizes the effect. However it not the only parameter. r.Upscale.Panini.S
lerp with the paper's hardcompression. And if still some sphere still looks elipsed in the corners, then this
parameter can also be tweaked as well. However, for
r.Upscale.Panini.S < 0, start shows unrendered black
looking pixels in the corners.
To have more understanding of how this effects works, r.Upscale.ScreenFit can be modified as well. One thing
to have in mind is that some of the perspective projected pixels are at the end being not show at the screen
near the top and bottom of screen.