The Angle You Never Needed

There’s a pattern I’ve seen in 3D engine code many times. You have a forward direction vector and a vector pointing toward some target. You need to know if the target falls inside a field-of-view cone. So you write something like this: float angle = acos(dot(normalize(forward), normalize(to_target))); if (angle < fov_half_angle) { // target is visible } It looks reasonable. It produces correct results. But it’s doing a round trip through a representation that adds nothing and takes something away: it converts the dot product into an angle, then immediately compares that angle against a threshold. If you understood what the dot product actually encodes, you’d skip the middle step entirely. ...

March 14, 2026 · PixVerse Staff