爲什麼要有預乘透明度呢
因爲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 預乘圖片)會比原圖變得有些暗。