OpenGL ES 1.1:如何替换 glBlendFuncSeparate?

Posted

技术标签:

【中文标题】OpenGL ES 1.1:如何替换 glBlendFuncSeparate?【英文标题】:OpenGL ES 1.1: How to substitute glBlendFuncSeparate? 【发布时间】:2012-03-19 14:10:14 【问题描述】:

我的问题和here差不多。

如果我可以使用 glBlendFuncSeparate,这也是答案:

glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ZERO, GL_ONE);

但是,由于我需要为 MALI-400MP (Samsung Galaxy Nexus S II) 提供支持,我不能使用 glBlendFuncSeparate(GL_OES_blend_func_separate 扩展不存在)。

建议使用 glColorMask,但如何正确使用它? 有没有其他方法可以做到这一点?

【问题讨论】:

【参考方案1】:

在另一个问题中似乎得到了很好的回答,但如果您只想禁用写入 Alpha 通道,您只需在绘制混合对象之前调用 glColorMask(true,true,true,false);。这会锁定 Alpha 层,使其在写入时不会被修改。

【讨论】:

接受了这个。我的问题是我一开始并没有将FBO清除为0,0,0,1,并且alpha值有点随机。

以上是关于OpenGL ES 1.1:如何替换 glBlendFuncSeparate?的主要内容,如果未能解决你的问题,请参考以下文章

我的OpenGL学习进阶之旅 OpenGL ES 实现 绿幕抠图 以及 替换绿幕背景的功能

我的OpenGL学习进阶之旅 OpenGL ES 实现 绿幕抠图 以及 替换绿幕背景的功能

OpenGL ES 1.1 clearColor 绘图

iOS上的OpenGL ES 1.1:没有剪裁平面?

OpenGL ES 1.1 - alpha 蒙版

我的OpenGL学习进阶之旅OpenGL ES开发如何引入GLM(OpenGL Mathematics)库?