如何从投影矩阵中提取相机参数

How to extract camera parameters from Projection matrix

我有一个带有特定投影矩阵的透视相机,我只想从中提取流、近平面和远平面。 我知道 Three.js 中有一个函数:

.updateProjectionMatrix()

它根据上面列出的参数创建一个投影矩阵,基本上我想要相反的过程。

我用这 3 个公式解决了:

fov = 2 * atan(1/camera.projectionMatrix.elements[5]) * 180 / PI;

附近 = camera.projectionMatrix.elements[14] / (camera.projectionMatrix.elements[10] - 1.0);

far = camera.projectionMatrix.elements[14] / (camera.projectionMatrix.elements[10] + 1.0);

来源:

3D Projection

Decompose the OpenGL projection matrix