#ifdef GL_ES precision mediump float; #endif uniform sampler2D u_texture; varying vec2 fragmentTexCoord; void main() { float dir; vec2 coords; float offset; float pixelDistanceX; float pixelDistanceY; pixelDistanceX = distance(fragmentTexCoord.x, 0.5); pixelDistanceY = distance(fragmentTexCoord.y, 0.5); offset = (pixelDistanceX * 0.1) * pixelDistanceY; if (fragmentTexCoord.y <= 0.5) { dir = 1.0; } else { dir = -1.0; } coords = vec2(fragmentTexCoord.x, fragmentTexCoord.y + pixelDistanceX * (offset * 8.0 * dir)); gl_FragColor = vec4(texture2D(u_texture, coords).rgb, 1.0); }