0

考虑一个平截头体,其中左、右、下、上、近、远平面是:

Frustum(-200,200,-200,200,1,400)

本质上,我们在视图中的“真实世界”空间是一个每边有 400 个单元的大立方体。

我试图理解为什么,当我在 x 或 y 方向上仅将对象平移 1 个单位时,它会在屏幕上移动少量,这是您所期望的,但如果我仅将其沿 z 轴平移 1 个单位, 缩放是相当巨大的。深度的影响似乎被夸大了。只需将其移开 1 或 2 个单位,它看起来就“离得很远”(小得多)。

我听说过有时称为相机“变焦镜头”的截锥体,但实际上,不同的镜头会使缩放效果因深度而大不相同,但是对于截锥体,我看不出你会在哪里指定深度影响表观缩放。

我可以将远平面操纵到其他数字,但这似乎所做的只是调整是否被剪裁。它不会调整深度对缩放的影响程度。

那么问题又是什么决定了深度导致的缩放量?

4

1 回答 1

1

你还没有定义一个立方体,你已经定义了一个平截头体。看起来你已经创建了一个具有非常大视野的截锥体,所以我可能认为这看起来有点奇怪。

然而,实际上决定某物在 Z 中移动时“缩放”的方式,与决定某物在现实生活中接近或远离我们时的明显缩放方式相同。比例与物体的距离和视野成正比。

如果有东西就在你面前,你把它移开一小段距离,它显然会变得更小。但是,如果某物很远,并且移动了同样微小的距离,则几乎无法察觉。

您对该效果的唯一真正控制是深入移动事物。因此,如果您想减少场景中对象的相对“缩放”,则需要将相机移得更远。这将使一切变小,但您可以缩小视野以使事物“放大”。

The further the camera is from your objects, the more parallel the sides of the frustum become. If the view frustum was not a frustum, but a cube, you would have an orthographic view instead, where depth has no effect on scale at all.

于 2013-03-12T07:02:29.410 回答