#vertex void main() { gl_TexCoord[0] = gl_MultiTexCoord0; gl_Position = ftransform(); } #fragment uniform vec2 scale; uniform sampler2D img; uniform sampler2D mvs; void main() { vec2 tc = gl_TexCoord[0].xy; vec2 mv = texture2D(mvs, tc).xy - 0.5; gl_FragColor = 0.125 * ( texture2D(img, tc - (0.125 * scale) * mv) + texture2D(img, tc - (0.250 * scale) * mv) + texture2D(img, tc - (0.375 * scale) * mv) + texture2D(img, tc - (0.500 * scale) * mv) + texture2D(img, tc - (0.625 * scale) * mv) + texture2D(img, tc - (0.750 * scale) * mv) + texture2D(img, tc - (0.875 * scale) * mv) + texture2D(img, tc - (1.000 * scale) * mv)); }