我已经通读了有关透视图和正交投影矩阵的文章。

我开始使用透视图矩阵,并且按预期,如果我增大或减小视野,则可以缩小/起作用。同样,如果向前/向后移动摄像机位置,我会看到对象靠近或远离。

但是,当我尝试正交矩阵时,由于没有视野参数,我只能尝试向前/向后移动相机,但我的模型始终看起来相同。

有人可以向我解释为什么会这样吗?

#1 楼

透视投影会随着距离的改变而改变对象的大小,而正交投影不会改变。这是这些投影类型的定义的一部分。

为了简化一点,可以像这样计算3d点到2d点的简单透视投影:

$ x_ {2d} = x / z \\
y_ {2d} = y / z $

如您所见,x和y的2d版本会根据z的值。另一方面,正交投影可以这样计算:

$ x_ {2d} = x \\

在该示例中,您可以看到x和y值完全不依赖于z,因此您可以在正投影中靠近或远离对象,并且其大小会不会改变。

作为有趣的相关琐事,太阳是如此遥远,以至于当光线到达这里时,它们基本上都朝着同一方向前进。

这这就是为什么我们有定向照明的原因,因为光束总是以相同的方式移动,因为这就是太阳光的工作方式。

无论如何,因为光束是这意味着您在阳光下的阴影是轮廓的正投影。换句话说,当您将手移到地球上靠近或远离太阳的位置时,手的阴影不会改变大小。

但是,如果您有更局部的光源,点亮一盏灯-它会投射透视投影类型的阴影,其中,离您的手越近,投射的阴影就越大。

这与正交投影的定义有关,这就是焦距无限长。太阳距离足够远,我们可以认为它在照明中是无限的,因为我们所关心的精度很高:P

评论


$ \ begingroup $
精美地解释了一下,我有点将事实与透视图划分联系在一起,但是不确定,现在我是,谢谢!
$ \ endgroup $
– BRabbit27
16-10-13在4:40