倾斜视图截锥体深度投影和裁剪 (Eric Lengyel)
Oblique View Frustum Depth Projection and Clipping (Eric Lengyel)
在尝试理解倾斜裁剪方法时我遇到了一些理论问题。根据 Eric Lengyel 在第 2 章末尾写的 this 文章,我们得到裁剪空间:
- <0,0,1,1>附近
- 远 <0,0,-1,1>
...
据说:
each camera-space plane is
expressed as a sum or difference of two rows of the projection matrix
这一刻我无法理解。比如说Near plane value是“M4 + M3”(其中M4和M3分别是投影矩阵的第四行和第三行),其他的值也类似的计算,那么得出的结论是投影矩阵MUST是身份(从 M4 + M3 获得 <0,0,1,1> 结果)。但我们知道这是不同的。那么,谁能解释一下,我们使用的是什么矩阵,与投影矩阵有什么联系?
THIS moment i can not understand. For example, if it's said that Near plane value is "M4 + M3" (where M4 and M3 are the fourth and third rows of projection matrix), and other values are calculated similarly, then the conclusion follows that projection matrix MUST be Identity (to get <0,0,1,1> result from M4 + M3).
首先,你的逻辑在这里有很大的缺陷。要从两个向量 a+b
的总和中得到一个向量 c=(0,0,1,1)
,您可以找到无限数量的向量 a
和 b
来满足这个,例如 (7,-2pi,0,42) + (-7, 2pi, 1, -41) = (0,0,1,1)
.
但是,这完全不是重点,因为您误解了那篇文章的关键部分。您在此处指定的剪辑平面是 in clip space(对于 w = 1
的特殊情况,如文章中所述)。如果我们想在剪辑 space 中找到剪辑平面 的方程,则完全不需要进行任何计算,因为剪辑平面是 在剪辑space中定义为固定方程。如果我们已经知道它会产生 (0,0,1,1)
.
,那么计算 M4+M3
就没有意义了
整篇文章都在讨论如何高效地计算眼睛 space 中的裁剪平面。 table 该论文的 1 篇非常清楚地说明了这一点:
在尝试理解倾斜裁剪方法时我遇到了一些理论问题。根据 Eric Lengyel 在第 2 章末尾写的 this 文章,我们得到裁剪空间:
- <0,0,1,1>附近
- 远 <0,0,-1,1> ...
据说:
each camera-space plane is expressed as a sum or difference of two rows of the projection matrix
这一刻我无法理解。比如说Near plane value是“M4 + M3”(其中M4和M3分别是投影矩阵的第四行和第三行),其他的值也类似的计算,那么得出的结论是投影矩阵MUST是身份(从 M4 + M3 获得 <0,0,1,1> 结果)。但我们知道这是不同的。那么,谁能解释一下,我们使用的是什么矩阵,与投影矩阵有什么联系?
THIS moment i can not understand. For example, if it's said that Near plane value is "M4 + M3" (where M4 and M3 are the fourth and third rows of projection matrix), and other values are calculated similarly, then the conclusion follows that projection matrix MUST be Identity (to get <0,0,1,1> result from M4 + M3).
首先,你的逻辑在这里有很大的缺陷。要从两个向量 a+b
的总和中得到一个向量 c=(0,0,1,1)
,您可以找到无限数量的向量 a
和 b
来满足这个,例如 (7,-2pi,0,42) + (-7, 2pi, 1, -41) = (0,0,1,1)
.
但是,这完全不是重点,因为您误解了那篇文章的关键部分。您在此处指定的剪辑平面是 in clip space(对于 w = 1
的特殊情况,如文章中所述)。如果我们想在剪辑 space 中找到剪辑平面 的方程,则完全不需要进行任何计算,因为剪辑平面是 在剪辑space中定义为固定方程。如果我们已经知道它会产生 (0,0,1,1)
.
M4+M3
就没有意义了
整篇文章都在讨论如何高效地计算眼睛 space 中的裁剪平面。 table 该论文的 1 篇非常清楚地说明了这一点: