0.00
60.0 fps

Tunnel

It's a tunnel................

Log in to post a comment.

#version 300 es
precision highp float;

uniform float iTime;
uniform vec2  iResolution;

uniform float powder; // value=1, min=0, max=500, step=1

out vec4 fragColor;

void main() {

    float PI = 3.1415926535898;
    vec2 UV = gl_FragCoord.xy/iResolution.xy;

    vec3 color = vec3(0.,1.,0.3);

    UV = (UV - 0.5) * 2.;

    float r = distance(vec2(0.,0.), UV);

    UV = UV*log2(abs(UV/PI));

    vec2 uv = fract(vec2(UV.x > 0. ? UV.x*5. - iTime : -(UV.x*5. + iTime), UV.y > 0. ? UV.y*5. - iTime : -(UV.y*5. + iTime)));
    
    float angle = atan(UV.y, UV.x) - PI*0.5;

    angle = angle > 0. ? angle : PI*2. + angle;

    if ((angle > PI*0.25 && angle < PI*0.75) || (angle > PI*1.25 && angle < PI*1.75)) {

        fragColor = vec4(color*(pow(sin(uv.x*2.*PI), powder)), 1.)*sqrt(r)*2.;
    } else {

        fragColor = vec4(color*(pow(sin(uv.y*2.*PI), powder)), 1.)*sqrt(r)*2.;
    }
}