为什么我在使用gl.polygonOffset时需要因素?

时间:2018-05-27 21:43:18

标签: opengl-es webgl

我不明白polygonOffset如何与WebGL协同工作。我经常发现自己正在尝试factorunits个参数。

我认为我已经获得了更加一致的结果:

gl_Position.z += someEpsilon;

我知道文档中提到了衍生物,并且根据三角形的角度确实表现出不同的行为。

为什么我不能以某种方式将深度值增加一定数量的单位,单个单位是深度缓冲区可以容纳的最小数字?

1 个答案:

答案 0 :(得分:2)

  

为什么我不能以某种方式将深度值增加一定数量的单位,单个单位是深度缓冲区可以容纳的最小数量?

嗯,你可以。根据{{​​3}}的等式(3.8),应用的多边形偏移o为:

  

o = m ∗ factor + r ∗ units

其中

  

最小可解析差r是依赖于实现的常量。它是保证窗口坐标z值的最小差异   在多边形光栅化和深度缓冲区中保持不同。

因此,如果您希望o保持不变,只需将factor设置为零,并为units使用一些适当的值,即1.0。