How to handle alpha in a manual “Overlay” blend operation?

后端 未结 3 888
抹茶落季
抹茶落季 2021-02-10 01:07

I\'m playing with some manual (walk-the-pixels) image processing, and I\'m recreating the standard \"overlay\" blend. I\'m looking at the \"Photoshop math\" macros here:

3条回答
  •  有刺的猬
    2021-02-10 01:48

    After blending the base color and the blend color, mix the original base color and the color resulting from the blending using the alpha of the blend color:

    vec4 baseColor = ...;
    vec4 blendColor = ...;
    vec4 blendedColor = blend(baseColor, blendColor);
    vec4 fragmentColor = (1.0 - blendColor.a) * baseColor + blendColor.a * blendedColor;
    

    I use this for "overlay" blending an opaque base color and a blend texture which has a lot of (semi) transparent pixels.

提交回复
热议问题