我在具有垂直视野FOV和视口(0,0,宽度,高度)的纹理上渲染了3D场景。最初相机位于场景的中心。我想移动相机(垂直于看方向,使其开始指向c1,c2(在图像空间中)。如何计算眼坐标中的移动距离? 初始摄像机参数 - 向上矢量(0,1,0),LookAtPoint(0,0,0),CameraPosition(0,0,2)
答案 0 :(得分:0)
因为您正在使用透视投影,所以您不知道屏幕上像素的Z值。屏幕上的(x,y)位置存在Z值。
通过仅改变他们的" zp"来投射不同的点(xp,yp,yp)。在屏幕上产生不同的(x,y)。并且更改xp,yp在屏幕上也会产生不同的x,y。
想想梯子中的步骤。它们看起来更小,因为它们远离你的眼睛。如果您事先不知道步骤的度量,则无法从图片中获取。
您想要将相机(在其X轴上)移动一个未知距离,因为您不知道这两者之间的真实距离(在世界空间中)屏幕上的像素。