我希望通过观察平面从相机生成光线。为了做到这一点,我需要我的相机位置(“眼睛”),向上、向右和朝向矢量(其中朝向是相机朝向相机正在查看的对象方向的矢量)和 P,观察平面上的点。一旦我有了这些,生成的光线就是:
ray = camera_eye + t*(P-camera_eye);
其中 t 是沿射线的距离(现在假设 t = 1)。
我的问题是,我如何获得点 P 的 3D 坐标,因为它位于观察平面上的位置 (i,j)?假设给定观察平面的左上角和右下角。
注意:观察平面实际上并不是一个平面,因为它不会在所有方向上无限延伸。相反,人们可能会认为这个平面是一个宽x高的图像。在 x 方向,范围是 0-->width,在 y 方向,范围是 0-->height。我希望找到第 (i,j) 个元素的 3D 坐标,0