1

ソースピクセルをデスティネーションピクセルの上に描画するときに出力ピクセル値を計算するために使用されるアルゴリズムを探しています。ソース ピクセルにアルファがない場合、出力ピクセルをソース ピクセルと等しくなるように設定できます。ソースにアルファがある場合はどうなりますか? 新しいアルファ値と RGB 値を計算するにはどうすればよいですか?

4

3 に答える 3

2

出力は、宛先とソースの加重合計です。

output = alpha * source + (1 - alpha) * destination

3 つの RGB チャネルのそれぞれに対してこれを行います。

于 2012-07-07T22:06:12.080 に答える
1

実際には、事前に乗算されたアルファと、事前に乗算されていないアルファにも遭遇しています。ただし、デフォルトではあらかじめ乗算されているはずなので、それを使用します。

式は簡単です。

DestinationRGB = ImageRGB+(1-ImageAlpha)*DestinationRGB
于 2012-07-07T22:09:58.213 に答える
1

それはすべて、使用するブレンディング アルゴリズム (乗法、加法など) によって異なります。たとえば、加法は要素を加算するだけです。

RGBA(1, 2, 3, 4) + RGBA(5, 6, 7, 8) = RGBA(6, 8, 10, 12)

乗法ブレンディングは、(明らかに) RGBA データを乗算します (場合によってはクロス乗算します)。また、チャネルを減算したり、除算したり、その他の派手な代数演算を行うこともできます。実装するために選択したブレンド方法に関係なく、アルファ チャネルは一般的に追加的です - 特定の理由 (マスキングなど) がない限りは。

于 2012-07-07T22:03:05.097 に答える