Overwatch: ideal reticle size for projectiles

Target lead and reticle calculations


Ideal reticle size: ( center gap + crosshair length)(too large)
Maximum lead angle: ±°
Maximum lead in pixels: ±px
Lead angle/pixels at various impact angles:

Notes


Simple geometry

hres:
horizontal resolution (pixels)
fov:
horizontal field of view (°)
Vt:
target velocity (m/s)
Vp:
projectile velocity (m/s)
Dpt:
initial distance between player and target (m)
A:
impact angle
L:
lead angle
Lpx:
lead in pixels

Knowing that projectiles move much faster than our targets, it's safe to assume that the maximum impact angle will generally be around 90°, and we get a right triangle. We have enough data to use basic trigonometry and get the lead angle. Fig. 1

L = arctan(Vt / Vp)

Now that we have the lead angle, we can deduce how many pixels this represents in the actual game: ratio of the angle to the FOV times the resolution. Fig. 2

Lpx = tan(L) / tan(fov / 2) × (hres / 2)

simplified:

Lpx = (Vt / Vp) / tan(fov / 2) × (hres / 2)

Knowing this we can now get the ideal reticle. It's important to know what the units in the reticle settings correspond to 1px at 1080p, so hres is set to 1920. Then we simply need to multiply Lpx by 2, and we can get the desired reticle size.

What about different impact angles? Without a right triangle we first need to use the law of cosines to get Dpt.

Dpt = √(Vt2 + Vp2 - 2 × Vt × Vp × cos(A))

We follow up by using the law of sines to get the lead angle.

L = arcsin(sin(A) × Vt / Dpt)

And we finish by translating the lead angle to pixels, just like we did before.

Lpx = tan(L) / tan(fov / 2) × (hres / 2)

ezpzlmnsqz