Chapter 10:Positionable camera

相机如同电解质,是调试的痛,所以我(在开发中)总是逐步拓展它,首先,让我们来看一个可调节的视场(fov)。 这是您通过门户看到的角度。 由于我们的图像不是方形的,因此fov在水平和垂直方向都不相同。 我总是使用垂直fov。 我通常也会用度数来指定它,并在构造函数中改为弧度 - 这是个人品味的问题。我首先保持来自原点并射向z = -1平面光线。 只要我们把h作为一个比例,就可以使它成为z = -2平面,或者其他什么。 这是我们的设置:

这意味着h = tan(theta/2).。我们的摄像机现在变成:

cam(90, float(nx)/float(ny))

为了得到一个任意的观点,让我们先说出我们需要注意的地方。 我们称之为放置相机的位置,以及我们所看到的点。 (后期,如果你愿意,你可以定义一个方向来看看,而不是看点。)我们也需要一种方法来指定相机的方向或侧向倾斜; 围绕从轴看的外观旋转。 另一种思考方式是,即使你保持目光不断,看着不变,你仍然可以旋转头部。 我们需要的是一种为相机指定向上矢量的方法。 注意,我们已经有了一个向上向量应该在的平面,即与视图方向垂直的平面。(即第一人称视角变化?)

我们实际上可以使用任何我们想要的向上矢量,并将其投影到这个平面上以获得相机的向上矢量。 我使用命名“查看”(v向上)向量的通用约定。 一些交叉产品,我们现在有一个完整的标准正交基(u,v,w)来描述我们的相机的方向。

记住vup,v和w都在同一个平面上。 请注意,和以前一样,当我们的固定摄像机面对-Z时,我们的任意摄像机面向-w。 请记住,我们可以,但我们没有使用世界(0,1,0)来指定vup。 这很方便,自然会让你的相机保持水平,除非你决定尝试疯狂的相机角度。

猜你喜欢

转载自www.cnblogs.com/TooYoungTsukasa/p/9074717.html