我希望从相机通过视平面生成光线。为了做到这一点,我需要我的相机位置(“眼睛”),上、右和朝向向量(其中朝向是从相机指向相机所看物体的方向的向量)以及P,视平面上的点。一旦我拥有了这些,生成的射线就是:
ray = camera_eye + t*(P-camera_eye);
其中t是沿着光线的距离(暂时假设t = 1)。
我的问题是,如何得到点P的3D坐标,假设它位于观察平面上(i,j)的位置?假设已知观察平面的左上角和右下角。
注意:观察平面实际上不是一个平面,因为它不会在所有方向上无限延伸。相反,可以将此平面视为widthxheight的图像。在x方向上,范围是0-宽度,并且在y方向上,范围是0-高度。我希望找到第(i,j)个元素的三维坐标,其中0<i<width且0<j<height。
camera_towards
的方向。因此,camera_towards
是垂直于观察平面的向量,而camera_eye+camera_towards
是尺寸为width*height的观察平面的中心。 - Myx