我正在使用 OpenGL 进行阴影映射。将深度与阴影贴图进行比较时会出现 z-fighting 问题。我可以使用 glPolygonOffset 解决问题。我知道这个功能有助于推动(或拉动)多边形一点点,以便解决 z-fighting 问题。但我对函数 glPolygonOffset 有疑问。我不清楚为什么多边形的斜率与偏移量有关。
从这里:
需要使用 factor 参数来确保接近观察者边缘的填充图元的正确结果。在这种情况下,由两个共面图元生成的同一像素的 Z 值之间的差异可能与 X 或 Y 中的最大 Z 斜率一样大。这个 Z 斜率对于接近边缘的图元来说会很大,并且几乎不存在对于正面基元。因子参数允许您将这种类型的变量差异添加到生成的深度偏移中。
在这里我不知道为什么“两个共面图元生成的同一像素的 Z 值之间的差异可以与 X 或 Y 中的最大 Z 斜率一样大”。