/*

> by MihasGames, 15.06.2021 <
(https://mihas-games.itch.io/)

*/

void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
    float map = 5. * pow(cos(iTime/5.), 2.) + 5.;
    
    // Pixel Normalizations //
    vec2 uv01 = fragCoord.xy/iResolution.xy;
    vec2 uv0 = uv01 - vec2(1, 1)/2.;
    vec2 uv = uv0*map * vec2(iResolution.x / iResolution.y, 1);
    uv /= length(uv0)+1.; // Length Distorsion

    float xpos = sin(iTime/10.)*20., ypos = cos(iTime/8.4)*30.; // Camera Position
    
    // Main Distorsion and Filtering // 
    float col = pow(cos( uv.x + xpos + sin(uv.y) + uv0.x*1.5 ), 2.) + 
                pow(cos( uv.y + ypos - sin(uv.x/1.2) - uv.y*2. ), 2.);
    
    if (col > pow(sin(iTime/3.0), 2.)*0.3 + 0.7) col = 1.;
    else col = 0.;
    
    float colmap = 0.5;
    vec3 c = vec3(col+uv01.x*0.5+(sin(iTime/1.5)*0.5+0.5)*0.5, 
                  col+(1.-uv01.y)*0.5+(cos(iTime/1.5)*0.5+0.5)*0.5, 1);
    
    fragColor = vec4(c, 1.);
}
