Skip to content

Instantly share code, notes, and snippets.

@mulrooneydesign
Created June 8, 2023 19:15
Show Gist options
  • Select an option

  • Save mulrooneydesign/0a6ae3b6cc4a628ba8dbc61b83e648bc to your computer and use it in GitHub Desktop.

Select an option

Save mulrooneydesign/0a6ae3b6cc4a628ba8dbc61b83e648bc to your computer and use it in GitHub Desktop.

Revisions

  1. mulrooneydesign created this gist Jun 8, 2023.
    71 changes: 71 additions & 0 deletions GLSL.frag
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,71 @@
    vec3 palette(float t) {

    vec3 a = vec3(0.938, 0.328, 0.718);
    vec3 b = vec3(0.659, 0.438, 0.328);
    vec3 c = vec3(0.388, 0.388, 0.296);
    vec3 d = vec3(2.538, 2.478, 0.168);

    return a + b * cos(6.28318*(c*t*d));
    }


    float noise(in vec2 st) {
    return fract(sin(dot(st.xy, vec2(12.9898, 78.233))) * 43758.5453);
    }

    void mainImage( out vec4 fragColor, in vec2 fragCoord )
    {

    vec2 uv = (fragCoord * 2.0 - iResolution.xy) / iResolution.y;
    vec2 uvCopy = fract(uv * 0.25);
    vec3 myColor = vec3(0.0);

    vec2 noiseScale = vec2(0.25, 2.0);
    float noiseValue = noise(uv * noiseScale * iTime / 2.0);
    float noiseStrength = 0.8;

    vec3 noiseColor = vec3(noiseValue) * noiseStrength;
    noiseColor = smoothstep(0.7, 1.0, noiseColor);

    float rotationSpeed = 0.2;
    float angle = iTime * rotationSpeed;

    vec2 rotatedDelta = vec2(
    uv.x * cos(angle) - uv.y * sin(angle),
    uv.x * sin(angle) + uv.y * cos(angle)
    );

    vec2 newUV = uv + rotatedDelta;

    vec3 rotate = vec3(newUV, 1.0);

    for(float i = 0.0; i < 2.0; i++) {

    uv = fract(uv * 0.5) - 0.5;
    uv = fract(uv * 0.5) - 0.5;
    uv = fract(uv * 1.5) - 0.5;
    uv = fract(uv * 0.5) - 0.5;
    uv = fract(uv * 2.5) - 0.5;

    float d = length(uv);

    vec3 col = palette(length(uvCopy));

    d = sin(d*22.0 + iTime) / 5.0;
    d = abs(d);


    d = 0.02 / tan(d);


    col *= d;
    myColor += col * d;

    myColor += noiseColor;

    myColor = myColor * rotate;

    }
    fragColor = vec4(myColor, 1.0);

    }