В общем, «нормальное» уравнение режима наложения выглядит следующим образом:
D = Sa * S + D * (1.0 - Sa)
, где D - цвет назначения, Sa - исходный альфа, а S - исходный цвет.
Теперь, это прекрасно работает с полностью непрозрачным пунктом назначения, но я хотел бы знать, как бы вы справились с этим с полупрозрачным пунктом назначения.
При смешивании источника с полностью прозрачным местом назначения исходный пиксель (пиксель, являющийся цветом и альфа-каналом) будет неизменным и не будет смешиваться, как в предыдущем уравнении, и если фон назначения полностью непрозрачен, вышеприведенное уравнение должно быть применяется, но я не могу найти хороший способ справиться с ситуациями, когда целевая альфа находится между 0 и 1.
Например, если вы смешиваете белый пиксель с 50% альфа на прозрачном фоне, цвет не должен стремиться к этому значению прозрачного цвета (которое более или менее находится в неопределенном состоянии), цвет назначения должен быть полностью белым а не 50% (после альфа-умножения), что вы и получаете после применения приведенного выше уравнения (если D сделан в том же цвете, что и S, о чем я думал).