【问题标题】:OpenGL Frustum PedagogyOpenGL Frustum 教学法
【发布时间】:2014-06-08 01:02:02
【问题描述】:

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

那么,为什么每篇 opengl 文章都使用非右平行截头锥体来说明投影的工作原理?我知道透视变换矩阵会导致一切都被一个包含它与相机的距离和相机与平面的距离的术语缩放......传统的平截头体插图是否试图解释这一点?还是我们真的在透视变换的某个时刻进入了某个扭曲的空间?如果是这样,我们如何最终回到右平行脂质(同质剪辑空间)?

【问题讨论】:

  • 是什么让你认为我们在剪辑空间结束?下一步是 NDC(此时应用透视,因为除以w),然后是应用视口转换后的窗口空间。 NDC 和窗口空间也是 4D,如果你将它们除以 w,你实际上会回到你在剪辑空间中的立方体,因为 NDC_wwindow_w1/clip_w

标签: opengl geometry glsl linear-algebra perspectivecamera


【解决方案1】:

从某种意义上说,只有一些仿射、线性变换并且没有真正的透视失真——当您将剪辑空间解释为 4 维向量空间时,您是对的。

但剪辑空间并不是“一切的终结”。透视效果是一种非线性变换,最终通过透视分割实现,该分割将在变换到裁剪空间之后进行。投影矩阵确定将作为除数的w 值,通常只是-z_eye

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2011-03-19
    • 1970-01-01
    相关资源
    最近更新 更多