我使用glBlendFunc()尝试近似photoshop的差异合成功能,在另一个图像上合成一个图像。我想要两个图像中的相似之处是黑色,而任何不同的图像都会弹出。
据我所知,glBlendfunc()与上下文中合成的任何图像相关联。这是对的吗?
答案 0 :(得分:1)
我无法想到用glBlendFunc做任何方法。你可以使用这样的东西:
glBlendEquation(GL_FUNC_SUBTRACT);
glBlendFunc(GL_ONE, GL_ONE);
但只有当第二个纹理的幅度与第一个纹理的幅度较大时才会起作用(任何负的减法结果都会被钳制为零)。
我建议您使用多重采样着色器同时对两个纹理进行采样,并输出结果作为绝对差值。
gl_FragColor = abs(texture2D(tex1, uv) - texture2D(tex2,uv));