glDrawBuffer(GL_NONE) 和 glColorMask(GL_FALSE,GL_FALSE,GL_FALSE,GL_FALSE) 有什么区别
两者只是丢弃对颜色缓冲区的任何绘制的另一种方式吗?还是有一些差异?
首先也是最重要的,glDrawBuffer (...)
适用于current仅限帧缓冲区,它是每个 FBO 的状态。
glColorMask (...)
另一方面,是一个全局状态,它屏蔽从每个片段操作到所有逻辑帧缓冲区的写入。
另一个问题是glColorMask (...)
是它不加区别地适用于all绘制缓冲区,该函数有一个新的变体,可以屏蔽单独的绘制缓冲区,称为glColorMaski (...)
.
glColorMask (...)
也不适用于glBlitFramebuffer (...)
,如下所示。
OpenGL 4.4 核心配置文件规范 http://www.opengl.org/registry/doc/glspec44.core.pdf - 18.3。复制像素- 第 485 页
当值写入绘制缓冲区时,blit 操作会绕过大部分片段管道。影响 blit 的唯一片段操作是像素所有权测试、剪刀测试和 sRGB 转换(请参阅第 17.3.9 节)。颜色、深度和模板蒙版(请参阅第 17.4.2 节)将被忽略。
It would really help if you gave some context, to narrow down the full set of differences. But the bottom line is that these states affect different sets of operations and are also stored in different places.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)