我正在写一个光线追踪器(使用左手坐标,如果有区别的话)。这是为了自学原理,所以我还没有使用 OpenGL 或像景深这样的复杂功能。我的相机可以有任意的位置和方向;我通过三个向量 、 和 来表示它们location
,look_at
它们的sky
行为类似于等效的 POV-Ray 向量。它的“电影”也有一个width
和height
。(长度隐含从到focal
的距离。)position
look_at
我的问题是不知道如何投射光线。我有两个量vx
和vy
,它们指示射线应该在哪里结束。它们都在-1到1之间变化。如果它们都是-1,我将光线从相机的位置投射到“电影”的左上角;如果它们都是 1,则右下角;如果它们都是 0,则为中心;其余的很明显。
我对矢量算术不够熟悉,无法推导出射线的方程。我将不胜感激如何做到这一点的解释。