10

私はこれが何を意味するのか正確に混乱しています:

特定のバッファのブレンドを行う場合、フラグメント出力からの色はソース カラーと呼ばれます。現在バッファーにある色は、目的の色と呼ばれます。

( OpenGL wiki から)

ブレンド方程式自体は理解していますが、 source colordestination colorの違いがよくわかりません。

誰かが例またはより具体的な定義を提供できますか?

4

2 に答える 2

8

短くシンプルにするために:

  • 元の色: 現在使用している色です。たとえば、使用するglColor4f(...)場合は、操作のソース カラーを設定します。
  • 宛先の色: これは、ビデオ バッファー内の特定の座標にあるフラグメント (このように考える場合はピクセルですが、必ずしも同じであるとは限りません) の色です。

通常、使用する理由は次のとおりです。

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

これは、指定したアルファ値を使用したいためです。これを使用して現在の色を乗算し、次に (1 - alpha) を使用して、その座標でバッファーの現在の色を乗算します。

したがって、クワッドを glColor4f(1.0f, 1.0f, 1.0f, 0.6f) でペイントし、バッファーが glColor4f(1.0f, 0.0f, 0.0f, 1.0f) で満たされている場合、最終的な操作は次のようになります。

(1.0f, 1.0f, 1.0f) * ALPHA + (1.0f, 0.0f, 0.0f) * (1 - ALPHA)
(0.6f, 0.6f, 0.6f) + (0.4f, 0.0f, 0.0f)

したがって、最終的な色は (1.0f, 0.6f, 0.6f) です。

于 2013-04-23T13:40:42.763 に答える