OpenGL 在单色上混合颜色
Posted
技术标签:
【中文标题】OpenGL 在单色上混合颜色【英文标题】:OpenGL Blending Color over Monochrome 【发布时间】:2011-04-30 23:46:48 【问题描述】:我想设置一个混合(最好不使用着色器)来生成以下内容。
我有一个黑色/白色纹理四边形和一个纯色四边形(例如红色)。我希望混合显示所有白色像素所在的颜色(红色),否则显示黑色。
这可能吗?代码是什么样的?
【问题讨论】:
我不确定如何使用 OpenGL 来做到这一点,但是在两个纹理上使用按位与会导致这个结果。 我想说“使用模板缓冲区”,但遗憾的是不能给出任何细节,因为我实际上并没有使用 OpenGL 教程之外的模板。 【参考方案1】:这通常不是通过混合来完成的,但您可以尝试 glBlendFunc(GL_SRC_COLOR, GL_ZERO);
在文本顶部绘制红色四边形。
但是,这只有在帧缓冲区中没有其他内容时才有效。
【讨论】:
由于 FBO 和着色器的可用性:将每一层渲染成它自己的纹理,然后以所需的方式组合纹理(使用 GL_MODULATE 模式进行多重纹理,或使用适当的片段着色器)。从技术上讲,您正在实现 Photoshop 中的图层。如果不使用层,这种组合会有点麻烦。以上是关于OpenGL 在单色上混合颜色的主要内容,如果未能解决你的问题,请参考以下文章