我不明白polygonOffset
如何与WebGL协同工作。我经常发现自己正在尝试factor
和units
个参数。
我认为我已经获得了更加一致的结果:
gl_Position.z += someEpsilon;
我知道文档中提到了衍生物,并且根据三角形的角度确实表现出不同的行为。
为什么我不能以某种方式将深度值增加一定数量的单位,单个单位是深度缓冲区可以容纳的最小数字?
答案 0 :(得分:2)
为什么我不能以某种方式将深度值增加一定数量的单位,单个单位是深度缓冲区可以容纳的最小数量?
嗯,你可以。根据{{3}}的等式(3.8),应用的多边形偏移o
为:
o = m ∗ factor + r ∗ units
其中
最小可解析差
r
是依赖于实现的常量。它是保证窗口坐标z
值的最小差异 在多边形光栅化和深度缓冲区中保持不同。
因此,如果您希望o
保持不变,只需将factor
设置为零,并为units
使用一些适当的值,即1.0。