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

.updateProjectionMatrix()


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

最佳答案

我用这3个公式解决了:

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

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

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

资料来源:

3D Projection

Decompose the OpenGL projection matrix

Field of view + Aspect Ratio + View Matrix from Projection Matrix

07-26 03:47