补充一下最后不透明度的综合公式,虽然没有太大的实际意义,但混合模式终归算有了真正的完整性.
这个公式具有普便意义,因为混合模式是从下到上计算的,所以下层的不透明度和填充不透明度完全等效.
以前听过有这样两种说法,一是说PS里有个隐藏的背景层,无论什么时候,这个背景层都是为100%的不透明度.另一种说法是当最后一层不透明度不为100%时,混合模式公式就不适用了,对于这两种说法,我以前一直持有怀疑的态度,一个软件没必要把计算过程弄得如此复杂,更没必要因为某个参数的改变而改变其原有的计算公式.
在看过ZHANGWEI兄的"正常模式下不透明度值不为100%的色阶值计算"后,我曾通过一些方法"凑"出过正片叠底和线性加深等公式,但都不具有普遍意义,一个软件不可能对于每种混合模式都安排一个独特的不透明度公式,所以这些凑出来的公式都被一一否定了.最后通过长期的探索,我终于发现了这个"混合模式下不透明度的完整公式",由于验证的数据不多,大家可以帮忙验证验证,如有错误,请指出具体数据和混合方法.
A:基色色阶
B:混合色色阶
P:混合色不透明度
N:基色不透明度
K:结果色不透明度,K=N+P(1-N)=P+N(1-P)
C:当N和K都为100%时的结果色色阶
最后计算出的色阶为:
[CPN+A(1-P)N+B(1-N)P]/K=[C×P×N+A×(1-P)×N+B×(1-N)×P]÷[N+P×(1-N)]
附图:模式,线性加深
混合层的不透明度为60%
基层不透明度为(0%-100%)
到此为止,通过色阶调整器,RGB模式下的混合模式终于有了个比较完美的结果
________________________________________________________________________________________________________________________
有朋友问到:当最下层不透明度不为1时,而最上层的填充不透明度不为1该怎么计算?
显然,对于这种情况来说,"不透明度综合公式"没有效或者说不完全有效,因为混合模式中存在着填充度和不透明度不同的公式.这时候该怎么办呢?
谈谈大体思路:从不透明度来看,除了对结果色C有影响外,还对基色和混合色AB都存在一个"加权"形式,最后再除以他们的综合不透明度,得出了最终色阶值,而填充不透明度是在变暗,变亮和叠加模式组中分别不同的,由于这样,必须先考虑混合色填充度的影响,再考虑他们的加权.
于是:我们可以得到
"填充不透明度综合公式"
(C"*Pa+B*(1-Pa)*Nb)/K,其中Pa为基层不透明度(最小层填充度和不透明度一样的,可以相乘),Nb为混合层填充不透明度,K为它们的综合不透明度(无论是不透明度还是填充度,综合不透明度算法不变),C"为Pa=Pb=1时对应的结果色阶(也即是原来所得出的简单填充不透明度公式).
很明显,当不透明度和填充度的相同的混合模式中,不透明度综合公式和填充不透明度综合公式是等价的.仔细注意它们的区别.这些其实也是推导过程,只不过这种推导多数是来源于逻辑推导而不是数字推导.
最后,我们比较填充度综合公式和不透明度综合公式,不难得出混合模式下的"综合公式":
逻辑推导过程比较烦琐,我就不写了,可以参考上面的话自行揣摩
Pa:基色不透明度
Pb:混合色不透明度
Na:基色填充不透明度
Nb:混合色填充不透明度
K:综合不透明度,K=Na*Pa+Pb*Nb*(1-Pa*Na)
最后的结果色色阶为: (图2)
由此可见,颜色通道的色阶和不透明度ALPH通道色阶对结果色的影响在某些条件中可以等价转换的,基于这个思想,推导柔光等复杂表达式还有捷径可走,但这里就不再多说了.反正记着,在PS中,一个象素的定义除了它的颜色通道对应的色阶值以外,还应该有不透明度色阶值,即为
O(R,G,B,A), A为不透明度值
[ 本帖最后由 国产008 于 2007-4-19 15:02 编辑 ]
附件: 您所在的用户组无法下载或查看附件