一般来说,“正常”混合模式方程如下所示:
D = Sa * S + D * (1.0 - Sa)
其中 D 是目标颜色,Sa 是源 alpha,S 是源颜色。
现在,这适用于完全不透明的目的地,但我想知道你将如何处理半透明和完全透明的目的地。
当在完全透明的目标上混合源时,源像素(颜色和 alpha 的像素)将保持不变,并且不会像之前的等式那样混合,如果目标背景完全不透明,则应应用上述等式,但是我找不到一种很好的方法来处理目标 alpha 介于 0 和 1 之间的情况。
例如,如果您在透明背景上混合具有 50% alpha 的白色像素,则颜色不应倾向于该透明颜色值(或多或少处于未定义状态),目标颜色应为全白,而不是50%(在 alpha 乘法之后),这是应用上述等式后得到的(如果 D 与 S 的颜色相同,这是我想到的)。