shader_type canvas_item; render_mode blend_add; uniform float cycle_speed = 1.0; uniform sampler2D gradient; void fragment() { COLOR = texture(TEXTURE, UV); COLOR *= texture(gradient, vec2(fract(TIME) * floor(cycle_speed), 0.0)); }