Shader "Unlit/Transparent Greyscale" { Properties { _MainTex ("Base (RGB), Alpha (A)", 2D) = "black" {} } SubShader { Tags { "IGNOREPROJECTOR" = "true" "QUEUE" = "Transparent" "RenderType" = "Transparent" } LOD 200 Pass // ind: 1, name: { Tags { "IGNOREPROJECTOR" = "true" "QUEUE" = "Transparent" "RenderType" = "Transparent" } LOD 200 ZWrite Off Cull Off Offset -1, -1 Fog { Mode Off } Blend SrcAlpha OneMinusSrcAlpha ColorMask RGB // m_ProgramMask = 6 CGPROGRAM //#pragma target 4.0 #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" #define CODE_BLOCK_VERTEX //uniform float4x4 unity_ObjectToWorld; //uniform float4x4 unity_MatrixVP; uniform float4 _MainTex_ST; uniform sampler2D _MainTex; struct appdata_t { float4 vertex :POSITION; float4 texcoord :TEXCOORD0; }; struct OUT_Data_Vert { float2 xlv_TEXCOORD0 :TEXCOORD0; float2 xlv_TEXCOORD1 :TEXCOORD1; float4 vertex :SV_POSITION; }; struct v2f { float2 xlv_TEXCOORD0 :TEXCOORD0; }; struct OUT_Data_Frag { float4 color :SV_Target0; }; OUT_Data_Vert vert(appdata_t in_v) { OUT_Data_Vert out_v; float4 tmpvar_1; tmpvar_1.w = 1; tmpvar_1.xyz = in_v.vertex.xyz; out_v.vertex = mul(unity_MatrixVP, mul(unity_ObjectToWorld, tmpvar_1)); out_v.xlv_TEXCOORD0 = in_v.texcoord.xy; out_v.xlv_TEXCOORD1 = TRANSFORM_TEX(in_v.vertex.xy, _MainTex); return out_v; } #define CODE_BLOCK_FRAGMENT OUT_Data_Frag frag(v2f in_f) { OUT_Data_Frag out_f; float grey_1; float4 col_2; float4 tmpvar_3; tmpvar_3 = tex2D(_MainTex, in_f.xlv_TEXCOORD0); col_2 = tmpvar_3; float tmpvar_4; tmpvar_4 = (((col_2.x + col_2.z) + col_2.z) / 3); grey_1 = tmpvar_4; col_2.z = grey_1; col_2.y = grey_1; col_2.x = grey_1; out_f.color = col_2; return out_f; } ENDCG } // end phase } SubShader { Tags { "IGNOREPROJECTOR" = "true" "QUEUE" = "Transparent" "RenderType" = "Transparent" } LOD 100 Pass // ind: 1, name: { Tags { "IGNOREPROJECTOR" = "true" "QUEUE" = "Transparent" "RenderType" = "Transparent" } LOD 100 ZWrite Off Cull Off Fog { Mode Off } Blend SrcAlpha OneMinusSrcAlpha ColorMask RGB // m_ProgramMask = 6 CGPROGRAM //#pragma target 4.0 #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" #define CODE_BLOCK_VERTEX //uniform float4x4 unity_ObjectToWorld; //uniform float4x4 unity_MatrixVP; uniform float4 _MainTex_ST; uniform sampler2D _MainTex; struct appdata_t { float4 vertex :POSITION; float4 color :COLOR; float4 texcoord :TEXCOORD0; }; struct OUT_Data_Vert { float4 xlv_COLOR0 :COLOR0; float2 xlv_TEXCOORD0 :TEXCOORD0; float4 vertex :SV_POSITION; }; struct v2f { float4 xlv_COLOR0 :COLOR0; float2 xlv_TEXCOORD0 :TEXCOORD0; }; struct OUT_Data_Frag { float4 color :SV_Target0; }; OUT_Data_Vert vert(appdata_t in_v) { OUT_Data_Vert out_v; float4 tmpvar_1; float4 tmpvar_2; tmpvar_2 = clamp(in_v.color, 0, 1); tmpvar_1 = tmpvar_2; float4 tmpvar_3; tmpvar_3.w = 1; tmpvar_3.xyz = in_v.vertex.xyz; out_v.xlv_COLOR0 = tmpvar_1; out_v.xlv_TEXCOORD0 = TRANSFORM_TEX(in_v.texcoord.xy, _MainTex); out_v.vertex = mul(unity_MatrixVP, mul(unity_ObjectToWorld, tmpvar_3)); return out_v; } #define CODE_BLOCK_FRAGMENT OUT_Data_Frag frag(v2f in_f) { OUT_Data_Frag out_f; float4 tmpvar_1; tmpvar_1 = (tex2D(_MainTex, in_f.xlv_TEXCOORD0) * in_f.xlv_COLOR0); out_f.color = tmpvar_1; return out_f; } ENDCG } // end phase } FallBack Off }