1

我知道在 OpenGL 中,我们使用 gluLookAt 将相机相对于世界放置,从而定义将要绘制的图像。

“眼睛”指定相机的位置,“中心”指定相机指向的点。一旦我们知道了这两个,我们就可以从眼睛到中心画一条直线。相机平面将垂直于这条线。

因为我们知道这个平面,所以向上向量指定了相机的顶部——基本上这个平面中的哪个方向是向上的。因此向上向量总是正交于连接中心和眼睛的向量。

我的问题是,当我们只想知道关于连接“中心”和“眼睛”的线的旋转角度时,为什么我们需要完整的向量。这背后的原因是我不知道的计算优势吗?如果有人指定了一个与视线方向不正交的错误向上向量怎么办?

4

1 回答 1

1

您传入的向上向量用于指示向上方向,但这与叉积一起使用。我认为 gluLookAt 的目的是简化用户所需的计算,例如,您只需传递 (0,1,0) 以指示您想要的向上方向是沿正 Y 轴。

如果你想要更高的效率,你可以完全避免 gluLookAt

于 2014-02-24T06:03:12.907 回答