z冲突(闪烁问题)

2020-07-16  本文已影响0人  番茄炒西红柿啊

开启深度测试后, 如果深度值误差很小,由于深度缓冲区精度有限,此时OpenGL会出现无法判断的情况,导致画面交错闪烁的现象。


如图,红框和绿框重叠部分,它们深度值过于相近,无法分别出图层的先后顺序,便会出现红绿闪烁的情况。

处理该问题可以采用在绘制前开启多边形偏移的方案

glEnable(GL_POLYGON_OFFSET_FILL)
多边形偏移枚举值 对应的图像填充模式
GL_POLYGON_OFFSET_POINT GL_POINT
GL_POLYGON_OFFSET_LINE GL_LINE
GL_POLYGON_OFFSET_FILL GL_FILL

用哪种方式填充的图像,就开启对应的偏移.

z-fighting问题的预防:

上一篇 下一篇

猜你喜欢

热点阅读