【发布时间】:2014-05-10 10:24:21
【问题描述】:
我正在尝试一些光线追踪,但我被困在相机计算上。假设我有一个我正在看的兴趣点 p,并且我有一个有利位置 p0。所以我的相机原点是o = p0,我的相机方向是d = p - p0,但是我如何获得向上的向量?据我了解,o 和 d 定义了一个平面,我需要通过在该平面上提供滚动值或二维矢量来在该平面上提供一个矢量。不太确定如何解决这个问题。
谁能指出我正确的方向?
【问题讨论】:
我正在尝试一些光线追踪,但我被困在相机计算上。假设我有一个我正在看的兴趣点 p,并且我有一个有利位置 p0。所以我的相机原点是o = p0,我的相机方向是d = p - p0,但是我如何获得向上的向量?据我了解,o 和 d 定义了一个平面,我需要通过在该平面上提供滚动值或二维矢量来在该平面上提供一个矢量。不太确定如何解决这个问题。
谁能指出我正确的方向?
【问题讨论】:
通常您会使用另一个向量作为代理,例如 world up。要构建正确的向上向量,您需要使用一个技巧。由于叉积可以保证给出一个与原始向量正交的向量,因此您可以使用它来构建矩阵。
您所做的是将代理世界向上与方向矢量交叉,然后您将获得侧矢量,您现在可以使用方向交叉侧矢量来获得指向世界大致方向的向上矢量向上。
因此,您最终会得到与代理平行的投影面。如果您完全从上往下看,这显然会失败。
【讨论】: