这是Peter Shirley的计算机图形基础知识的摘录。在第114页(在第3版中,它的内容为:
我们希望能够在3D中更改视点并查看任何视点 方向。指定查看器有许多约定 位置和方向。我们将使用以下一个:
- 眼睛位置e
- 凝视方向g
- 查看向量t
眼睛位置是眼睛“从中看到”的位置。如果你认为 作为摄影过程的图形,它是镜头的中心。 凝视方向是观察者所朝向的任何向量 看着。 查看向量是平面中的任何向量 将观众的头部分成右半部分和左半部分并指向“ 天空“对于站在地面上的人。这些向量为我们提供了 有足够的信息来设置原点
e
的坐标系 和uvw
基础.....
大胆的句子让我最为困惑。遗憾的是,本书仅提供了非常基本和粗略的图表,并未提供任何示例。
这句话是否意味着所有查看向量都只是(0, 1, 0)
?
我在一些例子上尝试过,但它与给定的解决方案并不完全匹配(尽管它有时候很接近)。
答案 0 :(得分:6)
简短回答:查看向量不是从其他组件派生的:相反,它是一个用户输入,选择此项以确保摄像机正面朝上。或者,换句话说,查看向量是如何告诉您的相机系统“向上”的方向,以便定位相机。
您需要查看向量的原因是相机的位置和注视方向不足以完全确定其姿势:您仍然可以围绕位置/注视轴旋转相机。需要查看向量来完成锁定相机;因为人们通常喜欢正面向上看,所以查看向量通常是一个固定的方向,由场景在坐标空间中的定向决定。
理论上,查看向量可以在任何方向,但实际上“向上”通常是坐标方向。哪个坐标是“向上”是一个常规问题:在你的情况下,它看起来Y轴是“向上”,但有些系统更喜欢Z轴。
那就是说,我会重申:你可以选择你想要的任何方向。如果您希望第一人称POV“倾斜”(例如,环顾四周或指示中毒),您可以调整查看向量来完成此操作。另外,考虑像超级马里奥银河这样的游戏中的相机控制......
答案 1 :(得分:3)
我认为粗体线只是试图解释查看向量(VUP
)在一个案例中的含义是为了介绍,而不是在所有情况下都是必然的。措辞有点奇怪;这是一个重新措辞:“考虑站在地面上的一个人。VUP
在这种情况下,是将观众的头部分成两半并指向天空的矢量。”
要确定标准向上矢量,请执行以下操作:
g
。g_norm x (0,1,0)
为您提供view-right
或相机视图右侧的矢量view-right x g
为您提供VUP
。如果您愿意,可以应用轮换。