|
|
|
@ -32,6 +32,26 @@ int test_perspective() |
|
|
|
|
Error += glm::notEqual(N.z, -1.f, Eps); |
|
|
|
|
Error += glm::notEqual(F.z, 1.f, Eps); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Projection = glm::perspectiveRH_ZO(glm::pi<float>() * 0.25f, 4.0f / 3.0f, Near, Far); |
|
|
|
|
{ |
|
|
|
|
glm::vec4 N = Projection * glm::vec4{0.f, 0.f, -Near, 1.f}; |
|
|
|
|
glm::vec4 F = Projection * glm::vec4{0.f, 0.f, -Far, 1.f}; |
|
|
|
|
N /= N.w; |
|
|
|
|
F /= F.w; |
|
|
|
|
Error += glm::notEqual(N.z, 0.f, Eps); |
|
|
|
|
Error += glm::notEqual(F.z, 1.f, Eps); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Projection = glm::perspectiveRH_NO(glm::pi<float>() * 0.25f, 4.0f / 3.0f, Near, Far); |
|
|
|
|
{ |
|
|
|
|
glm::vec4 N = Projection * glm::vec4{0.f, 0.f, -Near, 1.f}; |
|
|
|
|
glm::vec4 F = Projection * glm::vec4{0.f, 0.f, -Far, 1.f}; |
|
|
|
|
N /= N.w; |
|
|
|
|
F /= F.w; |
|
|
|
|
Error += glm::notEqual(N.z, -1.f, Eps); |
|
|
|
|
Error += glm::notEqual(F.z, 1.f, Eps); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return Error; |
|
|
|
|
} |
|
|
|
@ -66,6 +86,26 @@ int test_infinitePerspective() |
|
|
|
|
Error += glm::notEqual(F.z, 1.f, Eps); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Projection = glm::infinitePerspectiveRH_ZO(glm::pi<float>() * 0.25f, 4.0f / 3.0f, Near); |
|
|
|
|
{ |
|
|
|
|
glm::vec4 N = Projection * glm::vec4{0.f, 0.f, -Near, 1.f}; |
|
|
|
|
glm::vec4 F = Projection * glm::vec4{0.f, 0.f, -Inf, 1.f}; |
|
|
|
|
N /= N.w; |
|
|
|
|
F /= F.w; |
|
|
|
|
Error += glm::notEqual(N.z, 0.f, Eps); |
|
|
|
|
Error += glm::notEqual(F.z, 1.f, Eps); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Projection = glm::infinitePerspectiveRH_NO(glm::pi<float>() * 0.25f, 4.0f / 3.0f, Near); |
|
|
|
|
{ |
|
|
|
|
glm::vec4 N = Projection * glm::vec4{0.f, 0.f, -Near, 1.f}; |
|
|
|
|
glm::vec4 F = Projection * glm::vec4{0.f, 0.f, -Inf, 1.f}; |
|
|
|
|
N /= N.w; |
|
|
|
|
F /= F.w; |
|
|
|
|
Error += glm::notEqual(N.z, -1.f, Eps); |
|
|
|
|
Error += glm::notEqual(F.z, 1.f, Eps); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return Error; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|