OpenGLでこのタグを付けているのは、そのスペースに関連していると思うからです(別の名前ですが)。Photoshopのような "lighten"フラグメントシェーダーの問題
私はOpenGL(ES2?)を使用するFlash 11でPhotoshopのようなブレンドを動作させようとしています。私は軽いもので特に問題があります。私はそうすべきだと信じています。
outputColor.rgb = max(base.rgb、blend.rgb);
私のレイヤーに透明性があるため、問題が発生していると思います。しかし、レイヤーをあらかじめ乗算しても、まだ画像が暗すぎます。
ここにステップがありませんか?
[Shader.Fragment]
tex ft0, v0, fs0 <2d,nearest,nomip,clamp>
tex ft1, v0, fs1 <2d,nearest,nomip,clamp>
// premultiply
mul ft2, ft1.xyzw, ft1.wwww
// premultiplied values
max oc, ft0, ft2
ええ私はそれも動かそうとしたことを忘れていました、あるいはそれを0に設定しても、それでもなお間違っています。私はそれが元の倍率を持つ元の画像を扱わなければならないかもしれないと思う... – ansiart
あなたは正しいかもしれません、そのイメージをpremultiply、それらをdemultiplying、remultiplyを最大限に試してみてください。どのようなOpenGLのブレンド状態を使用していますか? – crazyjul
src_alpha:one_minus_src_alphaはい、それはそれを台無しにしている事前乗算値です。私はすべてのテクスチャをフレームバッファリングするか、またはそれらを手動で逆多重化する必要があるように見えます。 Thanskあなたの助けに! – ansiart