#define iChannel0 inputImageTexture
#define texture(a,b) texture2D(a,fract(b))
#define fragColor gl_FragColor
precision highp float;
varying highp vec2 textureCoordinate;

uniform sampler2D inputImageTexture;

uniform highp float iTime;

void main() {
    highp vec2 uv = textureCoordinate;

    highp float t = mod(iTime,3.0);
    if (t > 2.6) {
        t = mod((t - 2.6),0.2);//0~0.2
        t = 1.0 - abs(t * 10.0 - 1.0);//0~1~0
        uv.x += (0.5-uv.x)*(t*0.2);
        uv.y += (0.5-uv.y)*(t*0.2);
    }

    fragColor = texture(iChannel0,uv);
}