我正在尝试模拟Adobe Photoshop的混合模式 - Darken。
我理解基本的Darken原理:变暗(a,b)= min(a,b)。 E.g:
Darken( (.2, .3, .8), (.5, .1, .4) ) = (.2, .1, .4) // (r, g, b)
但我有透明度。在Photoshop中,Darken以这种方式工作:
Darken( (0, 1, 0, .5), (0, 0, 0, .5) ) = (0, .3, 0, .75) // (r, g, b, a)
黑色变绿绿色。我看到,输出alpha是以经典方式计算的:ao = aa + ab *(1-aa)。你知道其他值是如何计算的吗?
顺便说一句。变暗模式是可交换的。
答案 0 :(得分:1)
所以最后我发现了它。
在Darken模式下,合成与普通模式相同,但如果后声道较暗,则会翻转前后声道。
对于每个频道: 变暗(a,b)= a< b?规范(a,b):规范(b,a);
所以在我的顶级示例中,对于绿色和alpha:
Darken( (1, .5), (0, .5) ) = Norm( (0, .5), (1, .5) )
alpha = (.5 + .5*(1-.5)) = .75
green = (0*.5 + 1*.5*(1-.5)) / .75 = (0 + .25) / .75 = 0.333333
答案 1 :(得分:0)
嗯,实际上,它涉及的更多一些。这里有其他类似的问题可以解答这个问题。最好用的可能是恰当的名字: