[Bf-blender-cvs] [e2100a698bf] greasepencil-object: Cleanup: Simplify shader parameters

Antonio Vazquez noreply at git.blender.org
Fri Mar 30 16:39:39 CEST 2018


Commit: e2100a698bfa6f4d7c4deab9ebcffe037b1ea269
Author: Antonio Vazquez
Date:   Fri Mar 30 16:16:41 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rBe2100a698bfa6f4d7c4deab9ebcffe037b1ea269

Cleanup: Simplify shader parameters

===================================================================

M	source/blender/draw/engines/gpencil/gpencil_engine.h
M	source/blender/draw/engines/gpencil/gpencil_vfx.c
M	source/blender/draw/engines/gpencil/shaders/gpencil_gaussian_blur_frag.glsl

===================================================================

diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h
index 6ff283082de..5ba4753f1d8 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.h
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.h
@@ -87,8 +87,7 @@ typedef struct GPencilVFXPixel {
 } GPencilVFXPixel;
 
 typedef struct GPencilVFXBlur {
-	float x;
-	float y;
+	float radius[2];
 	int samples;
 } GPencilVFXBlur;
 
diff --git a/source/blender/draw/engines/gpencil/gpencil_vfx.c b/source/blender/draw/engines/gpencil/gpencil_vfx.c
index 1dbf169fe3e..3c9a8116764 100644
--- a/source/blender/draw/engines/gpencil/gpencil_vfx.c
+++ b/source/blender/draw/engines/gpencil/gpencil_vfx.c
@@ -161,8 +161,8 @@ static void DRW_gpencil_vfx_blur(
 	GPENCIL_PassList *psl = ((GPENCIL_Data *)vedata)->psl;
 	DRWShadingGroup *vfx_shgrp;
 	const float *viewport_size = DRW_viewport_size_get();
-	stl->vfx[ob_idx].vfx_blur.x = mmd->radius[0];
-	stl->vfx[ob_idx].vfx_blur.y = mmd->radius[1] * (viewport_size[1] / viewport_size[0]);
+	stl->vfx[ob_idx].vfx_blur.radius[0] = mmd->radius[0];
+	stl->vfx[ob_idx].vfx_blur.radius[1] = mmd->radius[1] * (viewport_size[1] / viewport_size[0]);
 	stl->vfx[ob_idx].vfx_blur.samples = mmd->samples;
 
 	struct Gwn_Batch *vfxquad = DRW_cache_fullscreen_quad_get();
@@ -172,8 +172,7 @@ static void DRW_gpencil_vfx_blur(
 	DRW_shgroup_call_add(vfx_shgrp, vfxquad, NULL);
 	DRW_shgroup_uniform_texture_ref(vfx_shgrp, "strokeColor", &e_data->input_color_tx);
 	DRW_shgroup_uniform_texture_ref(vfx_shgrp, "strokeDepth", &e_data->input_depth_tx);
-	DRW_shgroup_uniform_float(vfx_shgrp, "blurx", &stl->vfx[ob_idx].vfx_blur.x, 1);
-	DRW_shgroup_uniform_float(vfx_shgrp, "blury", &stl->vfx[ob_idx].vfx_blur.y, 1);
+	DRW_shgroup_uniform_vec2(vfx_shgrp, "blur", &stl->vfx[ob_idx].vfx_blur.radius[0], 1);
 	cache->vfx_blur_sh = vfx_shgrp;
 
 }
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_gaussian_blur_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_gaussian_blur_frag.glsl
index af94ec4b615..7df4e6d90b3 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_gaussian_blur_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_gaussian_blur_frag.glsl
@@ -4,8 +4,7 @@ out vec4 FragColor;
 uniform sampler2D strokeColor;
 uniform sampler2D strokeDepth;
 
-uniform float blurx;
-uniform float blury;
+uniform vec2 blur;
 
 void main()
 {
@@ -15,17 +14,17 @@ void main()
 
 	vec4 outcolor = vec4(0.0);
 	/* apply blurring, using a 9-tap filter with predefined gaussian weights */
-    outcolor += texelFetch(strokeColor, ivec2(uv.x - 1.0 * blurx, uv.y + 1.0 * blury), 0) * 0.0947416;
-    outcolor += texelFetch(strokeColor, ivec2(uv.x - 0.0 * blurx, uv.y + 1.0 * blury), 0) * 0.118318;
-    outcolor += texelFetch(strokeColor, ivec2(uv.x + 1.0 * blurx, uv.y + 1.0 * blury), 0) * 0.0947416;
-    outcolor += texelFetch(strokeColor, ivec2(uv.x - 1.0 * blurx, uv.y + 0.0 * blury), 0) * 0.118318;
+    outcolor += texelFetch(strokeColor, ivec2(uv.x - 1.0 * blur[0], uv.y + 1.0 * blur[1]), 0) * 0.0947416;
+    outcolor += texelFetch(strokeColor, ivec2(uv.x - 0.0 * blur[0], uv.y + 1.0 * blur[1]), 0) * 0.118318;
+    outcolor += texelFetch(strokeColor, ivec2(uv.x + 1.0 * blur[0], uv.y + 1.0 * blur[1]), 0) * 0.0947416;
+    outcolor += texelFetch(strokeColor, ivec2(uv.x - 1.0 * blur[0], uv.y + 0.0 * blur[1]), 0) * 0.118318;
 
     outcolor += texelFetch(strokeColor, ivec2(uv.x, uv.y), 0) * 0.147761;
 
-    outcolor += texelFetch(strokeColor, ivec2(uv.x + 1.0 * blurx, uv.y + 0.0 * blury), 0) * 0.118318;
-    outcolor += texelFetch(strokeColor, ivec2(uv.x - 1.0 * blurx, uv.y - 1.0 * blury), 0) * 0.0947416;
-    outcolor += texelFetch(strokeColor, ivec2(uv.x + 0.0 * blurx, uv.y - 1.0 * blury), 0) * 0.118318;
-    outcolor += texelFetch(strokeColor, ivec2(uv.x + 1.0 * blurx, uv.y - 1.0 * blury), 0) * 0.0947416;
+    outcolor += texelFetch(strokeColor, ivec2(uv.x + 1.0 * blur[0], uv.y + 0.0 * blur[1]), 0) * 0.118318;
+    outcolor += texelFetch(strokeColor, ivec2(uv.x - 1.0 * blur[0], uv.y - 1.0 * blur[1]), 0) * 0.0947416;
+    outcolor += texelFetch(strokeColor, ivec2(uv.x + 0.0 * blur[0], uv.y - 1.0 * blur[1]), 0) * 0.118318;
+    outcolor += texelFetch(strokeColor, ivec2(uv.x + 1.0 * blur[0], uv.y - 1.0 * blur[1]), 0) * 0.0947416;
 
 	FragColor = outcolor;
 }



More information about the Bf-blender-cvs mailing list