一般来说,“正常”混合模式的方程式如下:
D = Sa * S + D * (1.0 - Sa)
其中D是目标颜色,Sa是源alpha,S是源颜色。
现在,这在完全不透明的目标情况下可以正常工作,但我想知道如果目标是半透明或完全透明的情况下,你会如何处理。
当将源混合到完全透明的目标上时,源像素(一个像素包含颜色和alpha)将保持不变,不会像之前的方程式中那样混合。如果目标背景完全不透明,则应用上述方程式,但我找不到一种好的方法来处理目标alpha介于0和1之间的情况。
例如,如果您在透明背景上混合50% alpha的白色像素,则颜色不应趋向于该透明颜色值(这几乎是未定义状态),目标颜色应为纯白色,而不是50%(经过alpha乘法后),这是应用上述方程式后得到的结果(如果将D设置为与S相同的颜色,则这是我考虑过的一些内容)。