Just added a new colour cycle effect transparent Unity shader to the free shaders collection. This shader can be used to overlay a y-axis colour cycle effect over a texture
The code for the shader is shown below:
Shader "Unlit/ColourCycleTexture" { Properties { _MainTex("Color (RGB) Alpha (A)", 2D) = "white" {} _WaveSpeed ("WaveSpeed", Range(-1000, 1000)) = 20 _Frequency ("Frequency", Range(0, 100)) = 10 _Amplitude ("Amplitude", Range(0, 3)) = 0.02 _RedScale("Red Scale", Range(0, 3)) = 1 _GreenScale("Green Scale", Range(0, 3)) = 1 _BlueScale("Blue Scale", Range(0, 3)) = 1 } SubShader { Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" } Blend SrcAlpha OneMinusSrcAlpha LOD 100 Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; sampler2D _MainTex; float4 _MainTex_ST; fixed _Frequency; fixed _WaveSpeed; fixed _Amplitude; fixed _RedScale; fixed _GreenScale; fixed _BlueScale; v2f vert (appdata v) { v2f o; o.vertex = mul(UNITY_MATRIX_MVP, v.vertex); o.uv = TRANSFORM_TEX(v.uv, _MainTex); return o; } fixed4 frag (v2f i) : SV_Target { fixed2 uvs = i.uv; fixed4 col = tex2D(_MainTex, uvs); fixed d = sin(uvs.y * _Frequency + _Time * _WaveSpeed) * _Amplitude; col.r += d * _RedScale; col.g += d * _GreenScale; col.b += d * _BlueScale; return col; } ENDCG } } }
The shader works by adjusting the colour of the texel pulled from the texture applying a wave effect which is then scaled by red, green and blue scaling factors which can be used to change the colour of the overlaid effect. Here are a few parameters to try:
Produce a nice upwards red scroll effect:
Wave Speed – -150
Frequency – -20
Amplitude – -1
Red Scale – 0
Green Scale – 0.4
Blue Scale – 0
Produce a slow flash:
Wave Speed – 150
Frequency – 1
Amplitude – 1
Red Scale – 0
Green Scale – 0.4
Blue Scale – 0
You may need to adjust the red, green and blue scaling factors to match the colour of your texture.