3

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を見ましたが、まだ問題があります。

半透明のレイヤーでブレンドモードを機能させるにはどうすればよいですか?

4

1 に答える 1

5

アルファが100%以外の場合にブレンドモードを使用する方法については、 PDF仕様をお読みください。特に、セクション7.2「基本的な合成計算」を参照してください。414ページの式は、必要なものを説明する必要があります。

Cr= (1-as/ar) * Cb + (as/ar) * [(1-ab) * Cs + ab * B(Cb,Cs)]
于 2012-05-23T04:17:52.013 に答える