我有一个带有特定投影矩阵的透视相机,我只想从中提取流,近平面和远平面。
我知道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