Premultiplied Alpha
这是什么东西 说一个图片 一个点的颜色最后在屏幕上只有RGB了,a呢。对 就是这个问题
如果要生成一个图片 那这个点最终RGBA是什么,究竟该用什么公式去计算?
上面两个图片 中间半透明 别处镂空,宽高一样,拼成下面那个
L左边 R右边
两部分
Alpha
如果用源图片自己的A,按上面的图片,左边为0的地方,L就不考虑R这个位置A不为0,直接A=0,
正中间相交那部分
直接A保留L的A
LA=0.8 RA=0.2
0.8
LA=0.2,RA=0.8
0.2
如果用 L.A * L.A + (1 - L.A) * R.A
LA=0.8 RA=0.2
0.64+0.04= 0.68
LA=0.2,RA=0.8
0.04+0.64=0.68
如果用 L.A * 1 + (1 - L.A) * R.A
LA=0.8 RA=0.2
0.8+0.04= 0.84
LA=0.2,RA=0.8
0.2+0.64=0.84
两个公式出来的A不一样啊不一样,这里用谁才是对的
然后这个是算了A,但问题是这个A是写在图片的A通道啊 卧槽 渲染的时候 A不还被取出来参与一次计算才会显示到屏幕上,这可太头大了,所以计算的时候,RGB是要考虑这个A的
RGB
一个半透明图片 RGB的颜色,该是啥
详细推导 看完这个,感觉清晰了
然后Premultiplied Alpha,详细介绍
然后这个开了之后,blend模式也要修改,alpha已经乘进去RGB了,要separate设置