0

glBlendFunc() を使用して、ある画像を別の画像に合成しています。フォトショップの差分合成機能を近似しようとしています。2 つの画像の類似点を黒く表示し、異なるものが飛び出すようにします。

私が理解しているように、 glBlendfunc() は、コンテキストで合成されたすべての画像に関連付けられています。あれは正しいですか?

4

1 に答える 1

1

glBlendFunc でこれを行う方法が思いつきません。次のようなものを使用できます。

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

ただし、2 番目のテクスチャのマグニチュードが 1 番目のテクスチャよりも大きい場合にのみ機能します (マイナスの減算結果はゼロにクランプされます)。

マルチサンプリング シェーダーを使用して両方のテクスチャを同時にサンプリングし、絶対差として結果を出力することをお勧めします。

gl_FragColor = abs(texture2D(tex1, uv) - texture2D(tex2,uv));
于 2012-06-24T20:27:00.133 に答える