1#property description Recolor output with perlin noise rainbow
2#property frequency 1
3
4void main(void) {
5    float factor = pow(iIntensity, 0.6);
6    vec3 noise_input = vec3(uv, iTime * iFrequency / 8.);
7    float n = noise(noise_input) - 0.1;
8    n += (noise(2. * noise_input) - 0.5) * 0.5;
9    n += (noise(4. * noise_input) - 0.5) * 0.25;
10    //n = mod(n + 0.5, 1.0);
11    //n = mod(n + hsl.r, 1.0);
12
13    vec4 samp = texture(iInput, uv);
14    vec3 hsl = rgb2hsv(samp.rgb);
15    hsl.g = 1.0 - (1.0 - hsl.g) * (1.0 - factor);
16    //hsl.r = mix(hsl.r, n, iIntensity);
17    hsl.r = mod(hsl.r + n * iIntensity, 1.0);
18    fragColor.rgb = hsv2rgb(hsl);
19    fragColor.a = samp.a;
20}
21