OpenGL 渲染之深度测试

2020-07-12  本文已影响0人  徐徐图之哈哈

隐藏面消除成功解决了3D隐藏面直接丢弃,不绘制,只绘制可见部分。但是旋转3D会出现新的问题,如下图:

截屏2020-07-12 下午4.34.55.png

接下来让我们来了解深度测试的神奇之处

深度测试 (DepthTest)

深度测试能干什么呢?

注:为什么深度测试在绘制多个对象时能够进一步解决性能问题?

深度

注意:

深度缓冲区(DepthBuffer)

注意:

使用深度测试

指定深度测试判断式

打开/阻断 深度缓存区写入

void glDepthMask(GLBool value);
GL_TURE 开启深度缓冲区写入,GL_FALSE 关闭深度缓冲区写入

ZFighting闪烁问题

ZFighting闪烁问题解决方案

参数列表:
GL_POLYGON_OFFSET_POINT 对应光栅化模式:GL_POINT
GL_POLYGON_OFFSET_LINE 对应光栅化模式:GL_LINE
GL_POLYGON_OFFSET_FILL 对应光栅化模式:GL_FILL

预防ZFighting闪烁

上一篇下一篇

猜你喜欢

热点阅读