X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=deconvolution_sharpen_effect.frag;fp=deconvolution_sharpen_effect.frag;h=62a8d6d6c79365f7cc647e689e38c9bb2dbee9df;hp=7b90ac7fddc34d989e01c15f6b777d2514015a7d;hb=07e256b26e5ac82c282478a1bd3289d61cac5461;hpb=17b9cf4ea40d560afed9e44b6039b02b605855e0 diff --git a/deconvolution_sharpen_effect.frag b/deconvolution_sharpen_effect.frag index 7b90ac7..62a8d6d 100644 --- a/deconvolution_sharpen_effect.frag +++ b/deconvolution_sharpen_effect.frag @@ -35,28 +35,24 @@ vec4 FUNCNAME(vec2 tc) { // Case D: Diagonal samples have four-way symmetry. for (int xy = 1; xy <= R; ++xy) { vec4 sample = PREFIX(samples)[xy * (R + 1) + xy]; + vec2 mirror_sample = vec2(sample.x, -sample.y); vec4 local_sum = INPUT(tc - sample.xy) + INPUT(tc + sample.xy); - sample.y = -sample.y; - local_sum += INPUT(tc - sample.xy) + INPUT(tc + sample.xy); + local_sum += INPUT(tc - mirror_sample.xy) + INPUT(tc + mirror_sample.xy); sum += sample.z * local_sum; } // Case *: All other samples have eight-way symmetry. - for (int y = 1; y <= R; ++y) { + for (int y = 1; y < R; ++y) { for (int x = y + 1; x <= R; ++x) { vec4 sample = PREFIX(samples)[y * (R + 1) + x]; vec2 mirror_sample = vec2(sample.x, -sample.y); vec4 local_sum = INPUT(tc - sample.xy) + INPUT(tc + sample.xy); local_sum += INPUT(tc - mirror_sample.xy) + INPUT(tc + mirror_sample.xy); - - sample.xy = sample.yx; - mirror_sample.xy = mirror_sample.yx; - - local_sum += INPUT(tc - sample.xy) + INPUT(tc + sample.xy); - local_sum += INPUT(tc - mirror_sample.xy) + INPUT(tc + mirror_sample.xy); + local_sum += INPUT(tc - sample.yx) + INPUT(tc + sample.yx); + local_sum += INPUT(tc - mirror_sample.yx) + INPUT(tc + mirror_sample.yx); sum += sample.z * local_sum; }