加算半透明の仕組み

どうもネットで調べていると、加算半透明のやり方に2種類あるみたいだ。
2種類ある、ということを説明しているところは無いようだが。
ちなみに2種類っつーのは以下の2つ。
(a)ソースをSRCALPHA、デスティネーションをONEとする。
(b)ソースをONE、デスティネーションをINVSRCALPHAとする。
DXRubyやSDL1.3の加算合成では(a)の方式を採用している。
描画する絵にたいしてα値を指定することで、背景に対して半透明の絵を足す。
(b)のほうは、描画する絵はそのままで、背景を落とし込む。
ネットで調べて出てくるほうは(b)ばっかりだから、ひょっとしたら(a)のほうは加算半透明とは言わないのかもしれない。


ソースとデスティネーションを自由に設定できるようにすれば別に悩むこともないのだろうが、意味のある組み合わせは一部であり、自由にしてしまうと使うのが難しくなる。
現状のメソッドでは柔軟で簡単な合成は難しいから、合成描画関連のインターフェースを少し見直すか。