#include "projection.h" #include #include "mons_math/mat4.h" mons_mat4 mons_projection_matrix(mons_projection projection) { float tangent = tanf(projection.fov / 2.0f); float top = projection.near * tangent; float right = top * projection.aspect_ratio; return (mons_mat4){ {projection.near / right, 0, 0, 0}, {0, projection.near / top, 0, 0}, {0, 0, -(projection.far + projection.near) / (projection.far - projection.near), -1}, {0, 0, -(2.0f * projection.far * projection.near) / (projection.far - projection.near), 0}, }; }