[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