From fdd7474a999be72c7a29e1ec95236673b33655fe Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 15 Dec 2019 02:38:55 +1100 Subject: [PATCH] fixed bugs in the blur shaders --- app/shaders/boxblur.frag | 14 +++++++------- app/shaders/boxblur.xml | 6 +++--- app/shaders/gaussianblur.frag | 2 +- app/shaders/gaussianblur.xml | 6 +++--- app/shaders/shaders.qrc | 2 ++ 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/app/shaders/boxblur.frag b/app/shaders/boxblur.frag index dfa1dce96..f3fc6eaed 100644 --- a/app/shaders/boxblur.frag +++ b/app/shaders/boxblur.frag @@ -11,14 +11,14 @@ uniform bool vert_in; void main(void) { if (radius_in == 0.0 - || (iteration == 0 && !horiz_in) - || (iteration == 1 && !vert_in)) { - gl_FragColor = texture2D(image, ove_texcoord); + || (ove_iteration == 0 && !horiz_in) + || (ove_iteration == 1 && !vert_in)) { + gl_FragColor = texture2D(tex_in, ove_texcoord); return; } // We only sample on hard pixels, so we don't accept decimal radii - float real_radius = ceil(radius); + float real_radius = ceil(radius_in); // Calculate the weight of each pixel based on the radius float divider = 1.0 / real_radius; @@ -26,12 +26,12 @@ void main(void) { vec4 composite = vec4(0.0); for (float i=-real_radius+0.5;i<=real_radius;i+=2.0) { vec2 pixel_coord = ove_texcoord; - if (iteration == 0) { + if (ove_iteration == 0) { pixel_coord.x += i/ove_resolution.x; - } else if (iteration == 1) { + } else if (ove_iteration == 1) { pixel_coord.y += i/ove_resolution.y; } - composite += texture2D(image, pixel_coord) * divider; + composite += texture2D(tex_in, pixel_coord) * divider; } gl_FragColor = composite; } diff --git a/app/shaders/boxblur.xml b/app/shaders/boxblur.xml index 438e1a5c8..3fd22fbcb 100644 --- a/app/shaders/boxblur.xml +++ b/app/shaders/boxblur.xml @@ -12,7 +12,7 @@ - + Input @@ -26,13 +26,13 @@ Horizontal - true + 1 Vertical - true + 1 diff --git a/app/shaders/gaussianblur.frag b/app/shaders/gaussianblur.frag index 1986bebf1..e0c601770 100644 --- a/app/shaders/gaussianblur.frag +++ b/app/shaders/gaussianblur.frag @@ -37,7 +37,7 @@ void main(void) { // Using (3 * sigma) because 3 standard deviations covers 97% of the blur according to this document: // http://chemaguerra.com/gaussian-filter-radius/ - float radius = ceil(3.0 * sigma); + float radius = ceil(3.0 * sigma_in); // Use gaussian formula to calculate the weight of all pixels float sum = 0.0; diff --git a/app/shaders/gaussianblur.xml b/app/shaders/gaussianblur.xml index a4f375d10..80b722668 100644 --- a/app/shaders/gaussianblur.xml +++ b/app/shaders/gaussianblur.xml @@ -12,7 +12,7 @@ - + Input @@ -26,13 +26,13 @@ Horizontal - + 1 Vertical - true + 1 diff --git a/app/shaders/shaders.qrc b/app/shaders/shaders.qrc index 016779498..8ec128a5c 100644 --- a/app/shaders/shaders.qrc +++ b/app/shaders/shaders.qrc @@ -1,6 +1,8 @@ alphaover.frag + boxblur.frag + boxblur.xml crossdissolve.frag diptoblack.frag gaussianblur.frag