本文实现了在UGUI下将彩色图片设置成灰色的功能。实现的方法是修改对应Shader,重点是灰度公式:Gray = R*0.299 + G*0.587 + B*0.114 下面我们来看看是如何实现的。
1、下载内置Shader。 在unity官网, 选择历史版本, 如下图所示, 下载内置着色器。
2、 shader的具体实现:公式Gray = R*0.299 + G*0.587 + B*0.114, 可以实现图片变灰的效果。找到UI-Default.shader,复制,重命名为UI-Gray.shader, 将frag函数改为如下。
fixed4 frag(v2f IN) : SV_Target
{
half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color;