【发布时间】:2015-01-21 04:44:37
【问题描述】:
为了了解 z-fighting 的工作原理,我收到了这个问题。
考虑在局部坐标系中给出的点p = (0, 0, −500)
相机。导出在不同阶段分配给 p 的深度值
上述流水线,即导出p在眼睛空间的深度值,在
标准化设备坐标([−1, 1]),范围为 [0, 1] 和最终深度
缓冲值。其中 n = 200 和 f = 1000 和 m = 24
我认为此过程的第二步是:z1=z * -(f+n)/(f-n) - 2fn/(f-n)
来自预期变换矩阵。
之后z2= (1/2)*z1 + 1/2
但我不知道眼睛空间中的转换应该是什么样子,最后一步是什么。
我希望有人可以帮助我:) `
【问题讨论】:
-
最后一步是同质划分,即 v' = v/v.w - 但是要理解 Z 战斗,这无关紧要。 Z-fighting 是由几乎相同的边界值(顶点位置)的插值中的数值舍入误差引起的,导致某些排序运算符( 等)发生变化。