| INDEX |

色のブレンドにアルファチャンネルを追加してみました。アルファがある場合に、どのようにして色が求められるかいまいちよくわからなかったのですが、Processingの「blendColor()」で出力される値を眺めながら謎解き気分でやってみました。なわけで、少々怪しいところがあると思いますが。

ブレンドする色の背面色をCb、前面色をCfとした場合、アルファチャンネルの値は単純に加算するだけでよいみたい。

alpha = Math.min( Cb.alpha + Cf.alpha, 1.0 );

ブレンドされる色の値についてCbのアルファは関係ないようで、CbのRGB、CfのARGBで求めることになります。

で、基本的には下のような式で求められるみたい。

Cb*( 1 - Cf.alpha ) + (blendcolor)*alpha

ただ、あくまで基本的にであって、そうでないブレンドもあったり。この辺りはProcessing見ながら探ってみました。

※グラデになっている部分は、BACKCOLORの明度を変化させています。

>> source
※あんまデバッグしてないですけど…

| INDEX |