FOV Projection Mathematics and Aspect Ratio Matrix
In 3D game engines, Field of View (FOV) defines the observable world angle rendered to the screen. Because camera engines utilize rectilinear perspective projection, extending horizontal FOV across wide viewing angles causes extreme edge elongation (fisheye-like stretching). Confusion frequently arises because game developers define their in-game sliders using disparate mathematical baselines: Horizontal FOV (H-FOV), Vertical FOV (V-FOV), or 4:3 base scaling (Hor+).
| Engine / Title Class | FOV Metric Used | 90° FOV Equivalent at 16:9 | 90° FOV Equivalent at 21:9 | Visual Distortion Vulnerability |
|---|---|---|---|---|
| Unreal Engine (Default) | Horizontal FOV (16:9 fixed) | 90° H-FOV (59° V-FOV) | 106° H-FOV (Auto Hor+) | Low to Moderate edge stretching |
| Source Engine (CS2/TF2) | 4:3 Base Horizontal FOV | 106° true horizontal | 121° true horizontal | High barrel/edge distortion at 21:9 |
| Frostbite / Battlefield | Vertical FOV (V-FOV) | 74° V-FOV (106° H-FOV) | 74° V-FOV (121° H-FOV) | Zero aspect distortion; natural scaling |
| Unity (Default Camera) | Vertical FOV | 59° V-FOV (90° H-FOV) | 59° V-FOV (106° H-FOV) | Highly consistent across multimonitor |
Step 1: Converting Horizontal FOV to Vertical FOV
To achieve consistent cross-game visual memory and mouse sensitivity muscle memory across different engines, calculate equivalent Vertical FOV:
Formula
V-FOV = 2 * atan( tan(H-FOV / 2) * (Height / Width) )
Reference Quick Conversions for 16:9 and 21:9
- Standard 90° 16:9 Horizontal -> Set Vertical FOV to
59°. - Competitive 103° 16:9 Horizontal (Overwatch standard) -> Set Vertical FOV to
71°. - Wide 110° 16:9 Horizontal -> Set Vertical FOV to
78°. - When playing on a 21:9 monitor (3440x1440), a title locked to Vertical FOV 74° naturally renders 121° true horizontal FOV without warping your central reticle view.
Step 2: Fixing Ultrawide Edge Fisheye Stretching
When high FOV settings on 21:9 or 32:9 displays cause peripheral characters and buildings to stretch abnormally wide:
- Verify whether the title uses Hor+ (Horizontal Plus) or Vert- (Vertical Minus). Games with broken Vert- crop the top and bottom of the frame rather than expanding the sides.
- In Unreal Engine games, edit
Engine.inito enforce Hor+ scaling:
[/Script/Engine.LocalPlayer]
AspectRatioAxisConstraint=AspectRatio_MaintainYFOV
- Setting
AspectRatio_MaintainYFOVlocks the vertical perspective and smoothly expands peripheral vision without stretching center-screen targets.
Step 3: Mitigating Peripheral Motion Sickness with Panini Projection
For engines that suffer from rectilinear distortion at wide angles above 110°:
- Check game settings for
Panini Projection(available in Unreal Engine 5 titles and mods like Flawless Widescreen). - Panini projection warps peripheral space cylindrically around the observer, keeping spheres round and vertical lines straight towards screen borders.
- If using ReShade, load
Reshade-Depth3DorFisheye / Panini Shadersto compress outer screen margins, eliminating motion sickness during rapid mouse sweeps.