shader_type canvas_item; uniform sampler2D noise; uniform float steps = 8.0; uniform vec4 gradient_start : source_color = vec4(0.18, 0., 0.45, 1.); uniform vec4 gradient_end : source_color = vec4(1., 1., 0., 1.); void fragment() { float r = round(texture(noise, UV).r * steps) / steps; COLOR = mix(gradient_start, gradient_end, r); }