Matrix4d.perspectiveOffCenterFov
- Matrix4d perspectiveOffCenterFov(double angleLeft, double angleRight, double angleDown, double angleUp, double zNear, double zFar, bool zZeroToOne)
struct Matrix4d
ref public return
perspectiveOffCenterFov
- Matrix4d perspectiveOffCenterFov(double angleLeft, double angleRight, double angleDown, double angleUp, double zNear, double zFar, bool zZeroToOne, Matrix4d dest)
- Matrix4d perspectiveOffCenterFov(double angleLeft, double angleRight, double angleDown, double angleUp, double zNear, double zFar)
- Matrix4d perspectiveOffCenterFov(double angleLeft, double angleRight, double angleDown, double angleUp, double zNear, double zFar, Matrix4d dest)
doml matrix_4d Matrix4d
constructorsfunctionsstatic variablesvariables
Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix. <p> The given angles <code>angleLeft</code> and <code>angleRight</code> are the horizontal angles between the left and right frustum planes, respectively, and a line perpendicular to the near and far frustum planes. The angles <code>angleDown</code> and <code>angleUp</code> are the vertical angles between the bottom and top frustum planes, respectively, and a line perpendicular to the near and far frustum planes. <p> If <code>M</code> is <code>this</code> matrix and <code>P</code> the perspective projection matrix, then the new matrix will be <code>M * P</code>. So when transforming a vector <code>v</code> with the new matrix by using <code>M * P * v</code>, the perspective projection will be applied first! <p> In order to set the matrix to a perspective frustum transformation without post-multiplying, use {@link #setPerspectiveOffCenterFov(double, double, double, double, double, double, bool) setPerspectiveOffCenterFov}.
@see #setPerspectiveOffCenterFov(double, double, double, double, double, double, bool)
@param angleLeft the horizontal angle between left frustum plane and a line perpendicular to the near/far frustum planes. For a symmetric frustum, this value is negative. @param angleRight the horizontal angle between right frustum plane and a line perpendicular to the near/far frustum planes @param angleDown the vertical angle between bottom frustum plane and a line perpendicular to the near/far frustum planes. For a symmetric frustum, this value is negative. @param angleUp the vertical angle between top frustum plane and a line perpendicular to the near/far frustum planes @param zNear near clipping plane distance. This value must be greater than zero. If the special value {@link Double#POSITIVE_INFINITY} is used, the near clipping plane will be at positive infinity. In that case, <code>zFar</code> may not also be {@link Double#POSITIVE_INFINITY}. @param zFar far clipping plane distance. This value must be greater than zero. If the special value {@link Double#POSITIVE_INFINITY} is used, the far clipping plane will be at positive infinity. In that case, <code>zNear</code> may not also be {@link Double#POSITIVE_INFINITY}. @param zZeroToOne whether to use Vulkan's and Direct3D's NDC z range of <code>[0..+1]</code> when <code>true</code> or whether to use OpenGL's NDC z range of <code>[-1..+1]</code> when <code>false</code> @return this