【问题标题】:Oblique View Frustum Depth Projection and Clipping (Eric Lengyel)斜视截头体深度投影和裁剪 (Eric Lengyel)
【发布时间】:2021-07-17 13:47:05
【问题描述】:

试图理解倾斜剪裁方法我在理论方面遇到了一些问题。根据 Eric Lengyel 在第 2 章末尾写的 this 文章,我们得到了剪裁空间:

  • 附近
  • 远 ...

据说:

每个相机空间平面是 表示为投影矩阵两行的和或差

这一刻我无法理解。例如,如果说Near plane的值为“M4 + M3”(其中M4和M3分别是投影矩阵的第四行和第三行),其他值计算类似,那么结论就是投影矩阵必须是身份(从 M4 + M3 获得 结果)。但我们知道这是不同的。那么,谁能解释一下,我们使用什么矩阵,与投影矩阵有什么联系?

【问题讨论】:

    标签: opengl clipping


    【解决方案1】:

    这一刻我无法理解。例如,如果说Near plane的值为“M4 + M3”(其中M4和M3分别是投影矩阵的第四行和第三行),其他值计算类似,那么结论就是投影矩阵必须是身份(从 M4 + M3 获得 结果)。

    首先,您的逻辑在这里有很大缺陷。要从两个向量 a+b 的总和中得到向量 c=(0,0,1,1),您可以找到无限数量的向量 ab 来实现这一点,例如 (7,-2pi,0,42) + (-7, 2pi, 1, -41) = (0,0,1,1)

    但是,这完全不是重点,因为您误解了该文章的关键部分。您在此处指定的剪切平面在剪切空间中(对于 w = 1 的特殊情况,如文章中所述)。如果我们想在裁剪空间中找到裁剪平面的方程,则完全不需要进行任何计算,因为裁剪平面是在裁剪中定义的空间作为固定方程。如果我们已经知道它会产生(0,0,1,1),那么计算M4+M3 是没有意义的。

    整篇文章都在讨论如何有效地计算眼睛空间中的裁剪平面。那篇论文的表 1 非常清楚地说明了这一点:

    【讨论】:

    • 谢谢。看来,我误解了这些列之间的关系。在这种情况下,你能解释一下为什么相机空间中的近值将是 M4 + M3,我对此有点困惑。为什么意思就是这样。这样的结论是从哪里来的?
    • 论文中指出,“给定任意投影矩阵 M,可以使用等式 (2) 的逆函数将这些平面映射到相机空间。这产生了表中列出的非常简单的公式1,其中每个相机空间平面表示为投影矩阵的两行的和或差[2]。“如果您需要更多详细信息,请阅读参考文章,但最后,这是非常简单的数学。
    • 谢谢,@derhass!看来我是在笔和纸的帮助下搞定的。如果我们想得到 C(cam)=M(t)*C(clip) => Mt * = = M3 + M4
    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 2011-10-14
    • 2011-10-01
    • 2016-03-03
    • 2013-01-12
    • 2010-09-09
    相关资源
    最近更新 更多