Photoshopのブレンディングを再作成していて、リニアライトモードを使用しようとしています。Photoshopでは、不透明度が100%の背景レイヤーと、ブレンドモードとして線形ライトに設定された不透明度50%のトップレイヤーがあります。
リニアライトブレンドの方法に関する情報を見つけましたが、両方のレイヤーの不透明度が100%の場合にのみ機能します。
リニアライトモードを実行するシェーダーコードは次のとおりです。レイヤーが両方とも100%不透明の場合、Photoshopと同じ結果が得られます。
#define BlendLinearDodgef BlendAddf
#define BlendLinearBurnf BlendSubstractf
#define BlendAddf(base, blend) min(base + blend, 1.0)
#define BlendSubstractf(base, blend) max(base + blend - 1.0, 0.0)
#define BlendLinearLightf(base, blend) (blend < 0.5 ? BlendLinearBurnf(base, (2.0 * blend)) : BlendLinearDodgef(base, (2.0 * (blend - 0.5))))
http://en.wikipedia.org/wiki/Alpha_compositingを見ましたが、まだ問題があります。
半透明のレイヤーでブレンドモードを機能させるにはどうすればよいですか?