据我所知,在OpenGL中,我们使用gluLookAt将相机放置在相对于世界的位置,从而定义将要绘制的图像。
“眼睛”指定相机的位置,“中心”指定相机指向的点。一旦我们知道了这两个,我们就可以从眼睛到中心画一条直线。相机平面与此线垂直。
由于我们知道这个平面,向上矢量指定了摄像机的顶部 - 基本上该平面中的哪个方向是向上的。因此,向上矢量总是与连接中心和眼睛的矢量正交。
我的问题是,当我们只想知道连接“中心”和“眼睛”的线的旋转角度时,为什么我们需要完整的矢量。这是一个我不知道的计算优势背后的原因吗?如果有人指定了一个错误的向上矢量,它与视线的方向不正确怎么办?
答案 0 :(得分:1)
您传入的向上矢量用于指示向上方向,但这与十字产品一起使用。我认为gluLookAt的目的是简化用户所需的计算,例如,您只需传递(0,1,0)以指示您所需的向上方向沿着正Y轴。
如果你想要更高的效率,你可以完全避免使用gluLookAt