Shader "Custom/SepiaStencil" { Properties { _Color ("Color", Color) = (1,1,1,1) _SepiaIntensity ("SepiaIntensity", Range(0, 1)) = 0 } SubShader { Tags {"Queue"="Transparent" "RenderType"="Transparent" } GrabPass { "_GrabPassTexture" } Cull Back LOD 200 Pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { half4 vertex : POSITION; }; struct v2f { half4 vertex : SV_POSITION; half4 grabPos :TEXCOORD0; }; v2f vert (appdata v){ v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.grabPos = ComputeGrabScreenPos(o.vertex); return o; } half4 _Color; sampler2D _GrabPassTexture; float _SepiaIntensity; fixed4 frag(v2f i) : SV_Target{ half2 uv = half2(i.grabPos.x / i.grabPos.w, i.grabPos.y / i.grabPos.w); fixed4 col = tex2D(_GrabPassTexture,uv); fixed4 c = fixed4(0,0,0,0); c.r = dot(col.rgb, half3(0.393, 0.769, 0.189)); c.g = dot(col.rgb, half3(0.349, 0.686, 0.168)); c.b = dot(col.rgb, half3(0.272, 0.534, 0.131)); col.rgb = lerp(col,c,_SepiaIntensity); return col; } ENDCG }//Pass }//SubShader FallBack "Diffuse" }