Shader "Custom/ScreenNoise" { Properties { _MainTex ("Image", 2D) = "white" {} _Colour1 ("Colour 1", Color) = (0.0, 0.0, 0.0, 1.0) _Colour2 ("Colour 2", Color) = (1.0, 1.0, 1.0, 1.0) } SubShader { Tags { "RenderType"="Opaque" } LOD 200 Pass { Cull Off CGPROGRAM #include "UnityCG.cginc" #pragma vertex vert #pragma fragment frag sampler2D _MainTex; CBUFFER_START(UnityPerMaterial) uniform float4 _Colour1; uniform float4 _Colour2; CBUFFER_END struct Data { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct V2F { float4 position : SV_POSITION; float4 screenPosition : TEXCOORD0; }; V2F vert(Data v) { V2F o; o.position = UnityObjectToClipPos(v.vertex); o.screenPosition = ComputeScreenPos(o.position); return o; } fixed4 frag(V2F i) : SV_TARGET { float2 textureCoordinate = (i.screenPosition.xy / i.screenPosition.w) + (_Time * 512); float staticImage = tex2D(_MainTex, textureCoordinate).r; return lerp(_Colour1, _Colour2, staticImage); } ENDCG } } FallBack "Diffuse" }