uniform shader image; uniform float2 imageSize; uniform float amount; uniform float position; half4 main(float2 coord) { float weights[5]; weights[0] = 0.1633; weights[1] = 0.1531; weights[2] = 0.12245; weights[3] = 0.0918; weights[4] = 0.051; float vv = amount * abs((1 - position) * imageSize.y - coord.y); float4 sum = 0.1633 * image.eval(coord); for (int i = 1; i <= 4; i++) { float weight = weights[i]; sum += weight * image.eval(coord - float2(0, float(i) * vv)); sum += weight * image.eval(coord + float2(0, float(i) * vv)); } return sum; }