30 lines
654 B
GLSL
30 lines
654 B
GLSL
#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);
|
|
}
|