diff --git a/src/t3d/t3dmath.c b/src/t3d/t3dmath.c index b0ab0f76..9bf2ee4c 100644 --- a/src/t3d/t3dmath.c +++ b/src/t3d/t3dmath.c @@ -150,7 +150,8 @@ void t3d_mat4_perspective(T3DMat4 *mat, float fov, float aspect, float near, flo *mat = (T3DMat4){0}; mat->m[0][0] = 1.0f / (aspect * tanHalfFov); mat->m[1][1] = 1.0f / tanHalfFov; - mat->m[2][2] = far / (near - far); + // both terms map depth to -1 at near and 1 at far + mat->m[2][2] = -(far + near) / (far - near); mat->m[2][3] = -1.0f; mat->m[3][2] = -2.0f * (far * near) / (far - near); }