glBlendFunc() を使用して、ある画像を別の画像に合成しています。フォトショップの差分合成機能を近似しようとしています。2 つの画像の類似点を黒く表示し、異なるものが飛び出すようにします。
私が理解しているように、 glBlendfunc() は、コンテキストで合成されたすべての画像に関連付けられています。あれは正しいですか?
glBlendFunc() を使用して、ある画像を別の画像に合成しています。フォトショップの差分合成機能を近似しようとしています。2 つの画像の類似点を黒く表示し、異なるものが飛び出すようにします。
私が理解しているように、 glBlendfunc() は、コンテキストで合成されたすべての画像に関連付けられています。あれは正しいですか?
glBlendFunc でこれを行う方法が思いつきません。次のようなものを使用できます。
glBlendEquation(GL_FUNC_SUBTRACT);
glBlendFunc(GL_ONE, GL_ONE);
ただし、2 番目のテクスチャのマグニチュードが 1 番目のテクスチャよりも大きい場合にのみ機能します (マイナスの減算結果はゼロにクランプされます)。
マルチサンプリング シェーダーを使用して両方のテクスチャを同時にサンプリングし、絶対差として結果を出力することをお勧めします。
gl_FragColor = abs(texture2D(tex1, uv) - texture2D(tex2,uv));