GP: Improve z-depth for Blur FX
authorAntonioya <blendergit@gmail.com>
Tue, 18 Dec 2018 21:54:53 +0000 (22:54 +0100)
committerAntonioya <blendergit@gmail.com>
Tue, 18 Dec 2018 21:56:40 +0000 (22:56 +0100)
Instead to get an average value, use the lower value.

Still some issues when render.

source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_blur_frag.glsl

index e59cbef3e5ded31fd96f41b5d684aa3f97f16534..cd348a477a153f25adf84ff3d9cae6f4a0c9a7c4 100644 (file)
@@ -45,20 +45,16 @@ void main()
 
        /* apply blurring, using a 9-tap filter with predefined gaussian weights */
        /* depth (get the value of the surrounding pixels) */
-    float outdepth = 0.0;
-
-    outdepth += get_zdepth(ivec2(uv.x - 1.0 * dx, uv.y + 1.0 * dy)) * 0.0947416;
-    outdepth += get_zdepth(ivec2(uv.x - 0.0 * dx, uv.y + 1.0 * dy)) * 0.118318;
-    outdepth += get_zdepth(ivec2(uv.x + 1.0 * dx, uv.y + 1.0 * dy)) * 0.0947416;
-    outdepth += get_zdepth(ivec2(uv.x - 1.0 * dx, uv.y + 0.0 * dy)) * 0.118318;
-
-    outdepth += get_zdepth(ivec2(uv.x, uv.y)) * 0.147761;
-
-    outdepth += get_zdepth(ivec2(uv.x + 1.0 * dx, uv.y + 0.0 * dy)) * 0.118318;
-    outdepth += get_zdepth(ivec2(uv.x - 1.0 * dx, uv.y - 1.0 * dy)) * 0.0947416;
-    outdepth += get_zdepth(ivec2(uv.x + 0.0 * dx, uv.y - 1.0 * dy)) * 0.118318;
-    outdepth += get_zdepth(ivec2(uv.x + 1.0 * dx, uv.y - 1.0 * dy)) * 0.0947416;
-
+    float outdepth = get_zdepth(ivec2(uv.x, uv.y));
+       for (int x = -1; x < 2; x++) {
+               for (int y = -1; y < 2; y++) {
+                       float depth = get_zdepth(ivec2(uv.x + x * dx, uv.y + y * dy));
+                       if (depth < outdepth) {
+                               outdepth = depth;
+                               break;
+                       }
+               }
+       }
     gl_FragDepth = outdepth;
 
        /* color */