如何使用glBlendFunc来逼近Photoshop差异复合?

时间:2012-06-24 20:04:49

标签: opengl opengl-es opengl-3 nsopenglview

我使用glBlendFunc()尝试近似photoshop的差异合成功能,在另一个图像上合成一个图像。我想要两个图像中的相似之处是黑色,而任何不同的图像都会弹出。

据我所知,glBlendfunc()与上下文中合成的任何图像相关联。这是对的吗?

1 个答案:

答案 0 :(得分:1)

我无法想到用glBlendFunc做任何方法。你可以使用这样的东西:

glBlendEquation(GL_FUNC_SUBTRACT);
glBlendFunc(GL_ONE, GL_ONE);

但只有当第二个纹理的幅度与第一个纹理的幅度较大时才会起作用(任何负的减法结果都会被钳制为零)。

我建议您使用多重采样着色器同时对两个纹理进行采样,并输出结果作为绝对差值。

gl_FragColor = abs(texture2D(tex1, uv) - texture2D(tex2,uv));