您的位置:首页 > 产品设计 > UI/UE

NGUI Sprite灰化处理,很简单的一种方式

2016-02-25 18:25 411 查看
NGUI Sprite灰化处理,最近项目要用到,四处查资料,发现网上给的答案用起来都比较复杂,下面是自己偶然发现的一种方法

首先找到NGUI Sharder目标:Assets\NGUI\Resources\Shaders

打开Unlit - Transparent Colored.shader文件

把下面这段

fixed4 frag (v2f IN) : COLOR
{
return tex2D(_MainTex, IN.texcoord) * IN.color;
}

改成:

fixed4 frag (v2f i) : COLOR
{
fixed4 col;
if (i.color.r < 0.001)
{
col = tex2D(_MainTex, i.texcoord);
float grey = dot(col.rgb, float3(0.299, 0.587, 0.114));
col.rgb = float3(grey, grey, grey);
}
else
{
col = tex2D(_MainTex, i.texcoord) * i.color;
}
return col;
}


然后在使用时,不管Texture还是UISprite,只需要把color的R值设为0,变会变成灰色

注意上面那句判断 if(i.color.r < 0.001) 意思就是如果R为0时,灰化,如果大家觉得不严谨,可以改变其它判断



图片就变成灰色了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: