diff --git a/matrix.cpp b/matrix.cpp index 1b57f388..4c4e0800 100644 --- a/matrix.cpp +++ b/matrix.cpp @@ -174,10 +174,11 @@ template util::matrix4 util::perspective (T fov, T aspect, range Z) { + CHECK_LIMIT (fov, 0, 2 * util::pi); CHECK_GE (Z.lo, 0); CHECK_GE (Z.hi, 0); - T f = 1 / std::tan (fov / 2); + T f = cos (T{0.5} * fov) / sin (T{0.5} * fov); T x = f / aspect; T y = f;