From 7dd4965f9a0cc66a710b66658477f6c3ffe8879e Mon Sep 17 00:00:00 2001 From: Lynix Date: Fri, 26 Jun 2015 14:05:50 +0200 Subject: [PATCH] Math/Matrix4: Fix cotangent in projection matrix Former-commit-id: 57ccfc4fd2a1a8245272328204afa6590a5cb3fb --- include/Nazara/Math/Algorithm.hpp | 4 ++++ include/Nazara/Math/Matrix4.inl | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/Nazara/Math/Algorithm.hpp b/include/Nazara/Math/Algorithm.hpp index 070d048aa..0d0776746 100644 --- a/include/Nazara/Math/Algorithm.hpp +++ b/include/Nazara/Math/Algorithm.hpp @@ -16,6 +16,10 @@ #define M_PI 3.141592653589793238462643 #endif +#ifndef M_PI_2 +#define M_PI_2 1.5707963267948966192313217 +#endif + #ifndef M_SQRT2 #define M_SQRT2 1.4142135623730950488016887 #endif diff --git a/include/Nazara/Math/Matrix4.inl b/include/Nazara/Math/Matrix4.inl index 694ef446a..6816bbd72 100644 --- a/include/Nazara/Math/Matrix4.inl +++ b/include/Nazara/Math/Matrix4.inl @@ -623,7 +623,7 @@ NzMatrix4& NzMatrix4::MakePerspective(T angle, T ratio, T zNear, T zFar) angle = NzDegreeToRadian(angle/F(2.0)); #endif - T yScale = F(1.0) / std::tan(angle); + T yScale = std::tan(M_PI_2 - angle); Set(yScale / ratio, F(0.0), F(0.0), F(0.0), F(0.0), yScale, F(0.0), F(0.0),