NGUI 图片变灰 Shader

原理
将彩色图片映射到灰度的的一个过程,我们一般使用的颜色值一般rgb32位每个八位的,在Shader里面颜色被转换到[0-1]范围。根据人们的经验得到一个转换的比例是R:0.3 G:0.6 B:0.1 这个大概就是这个范围得到转换效果还不错。

关键代码

fixed4 frag(v2f IN) : SV_Target
{
    fixed4 color = tex2D(_MainTex, IN.texcoord) * IN.color;
    fixed valuergb = color.r * 0.3 + color.g * 0.6 + color.b * 0.1;
    color.rgb = valuergb;
    return color;
}


效果图

NGUI 图片变灰 Shader_第1张图片
 

NGUI

复制4份 NGUI 自带 Shader(黄色),在每一个片段着色器进行一个灰度转换(红色)。注意 Shader 的名称被裁减的是前面加了Hidden。

NGUI 图片变灰 Shader_第2张图片

NGUI 图片变灰 Shader_第3张图片

添加关键代码片段
col.rgb = col.r*0.3+col.g*0.6+col.b*0.1;

你可能感兴趣的:(NGUI 图片变灰 Shader)