如何做类似Photoshop的使用glBlendFunc(OpenGL ES的1.x中)屏幕混合?

Ger*_*eri 2 iphone screen opengl-es framebuffer glblendfunc

我有一个简单的一个通道(8位)的位图仅亮度数据,我想与现有framebufer混合它像屏幕混合模式做它在Photoshop.

因此,源的白色像素(255)应该是白色,源的50%灰色像素(128)应该使帧缓冲像素亮起50%,而源的黑色像素应该单独留下结果.我是否也必须设置glColor4f

有些glBlendFunc专家可以帮助我吗?

Piv*_*vot 6

屏幕混合是C = S +(1 - SD,所以你想要的是glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR).如果您引入了Alpha通道,如果您将图像数据保持为预乘格式,则仍应能够获得正确的结果.