OpenGL Frustum教学法

3 opengl geometry glsl linear-algebra perspectivecamera

我已经在opengl中直接绘制到同质的剪辑空间(2x2x2立方体,以0,0,0为中心),并且我意识到透视变换矩阵将所有几何体从一个右 - parallelipid(视图空间)转换为另一个-parallelipid(同质剪辑空间).

所以,为什么每个opengl文章都使用非右平行平截头体来说明投影是如何工作的呢?据我所知,透视变换矩阵将导致所有内容都被一个术语缩放,该术语包含与相机的距离和相机与飞机的距离...是传统的截头图,试图解释这一点?或者我们是否真的在视角转换的某个时刻进入了一些扭曲的空间?如果是这样的话,我们怎么会在最后一个回到右边的parallelipid(同质的剪辑空间)?

der*_*ass 6

当你将剪辑空间解释为一个四维向量空间时,你就是正确的,只有一些仿射,线性变换和没有真正的透视失真.

但剪辑空间并不是"一切尽头".透视效果是一种非线性变换,最终通过透视划分实现,该透视划分将在变换到剪辑空间之后完成.投影矩阵确定w将作为此除数的值,通常只是-z_eye.