本文使用shader语法
已知颜色A与颜色B,颜色A覆盖在颜色B上,最终输出的结果为颜色C,B为基色,A为混合色,C为输出色
正片叠底
描述:颜色叠加,使像素重合部分的颜色更暗。像素覆盖顺序随意调换不会改变结果
公式:C = AB
shader代码:
fixed4 C = A * B;
滤色
描述:与正片叠底相反,重合部分的像素更亮
公式:C = 1-(1-A)(1-B)
shader代码:
fixed4 C = 1 - (1 - A) * (1 - B);
叠加
描述:结合滤色与正片叠底,基色的像素重合部分比较亮的会更亮,比较暗的会跟暗
公式:C = 1-(1-A)(1-B)
shader代码:
if(A > 0.5){
fixed4 C = 1 - 2 * (1 - A) * (1 - B);
}else{
fixed4 C = 2*A*B;
}
反色
描述:取得与基色相反的颜色
公式:C = (1-A)
shader代码:
fixed4 C = 1 - A;
颜色制式
RGBA :红、绿、蓝、透明度
HSL: hue(色相)、saturation(饱和度)、lightness(亮度)
HSV: hue(色相)、saturation(饱和度)、value(色调)
HSB: hue(色相)、saturation(饱和度)、brightness(明度)
颜色转换