为什么要有预乘透明度呢
因为Alpha-Blending,所谓Alpha-Blending,其实就是按照“Alpha”混合向量的值来混合源像素和目标像素,一般用来处理半透明效果。
混合公式:
resultRGB = srcRGB*srcAlpha+dstRGB*(1-srcAlpha)
即:最终图像 = 第一张图的RGB*第一张图的的alpha通道+第二张图的RGB*(1-第一张图的的alpha通道)
预乘alpha就是提前把srcRGB*srcAlpha计算出来存在贴图的rgb通道中,这样在渲染时就能少做一次乘法。cocos默认对所有的png格式贴图在读取时候进行预乘alpha操作。优化这个能大幅度优化png贴图的载入速度。
预乘后的图片(被称之为premultiplied 预乘图片)会比原图变得有些暗。