OpenGL Frustum教学法

时间:2014-06-08 01:02:03

标签: opengl geometry glsl linear-algebra perspectivecamera

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

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

1 个答案:

答案 0 :(得分:6)

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

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