[Bf-blender-cvs] [190d80d9b73] temp-greasepencil-vfx: Add Blurrines parameter to Rim FX
Antonio Vazquez
noreply at git.blender.org
Wed Jul 4 12:01:45 CEST 2018
Commit: 190d80d9b73a5dfc33f13d4d07b928dddf24342a
Author: Antonio Vazquez
Date: Wed Jul 4 12:01:31 2018 +0200
Branches: temp-greasepencil-vfx
https://developer.blender.org/rB190d80d9b73a5dfc33f13d4d07b928dddf24342a
Add Blurrines parameter to Rim FX
===================================================================
M release/scripts/startup/bl_ui/properties_data_shaderfx.py
M source/blender/draw/engines/gpencil/gpencil_shader_fx.c
M source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_rim_prepare_frag.glsl
M source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_rim_resolve_frag.glsl
M source/blender/makesdna/DNA_shader_fx_types.h
M source/blender/makesrna/intern/rna_shader_fx.c
M source/blender/shader_fx/intern/FX_shader_rim.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_data_shaderfx.py b/release/scripts/startup/bl_ui/properties_data_shaderfx.py
index 5010f56d234..7b1d28c767d 100644
--- a/release/scripts/startup/bl_ui/properties_data_shaderfx.py
+++ b/release/scripts/startup/bl_ui/properties_data_shaderfx.py
@@ -104,6 +104,7 @@ class DATA_PT_shader_fx(ShaderFxButtonsPanel, Panel):
layout.prop(fx, "mode")
layout.prop(fx, "blur")
layout.prop(fx, "samples")
+ layout.prop(fx, "blurrines")
def FX_SWIRL(self, layout, fx):
layout.prop(fx, "object", text="Object")
diff --git a/source/blender/draw/engines/gpencil/gpencil_shader_fx.c b/source/blender/draw/engines/gpencil/gpencil_shader_fx.c
index c27c573c777..4e471df015c 100644
--- a/source/blender/draw/engines/gpencil/gpencil_shader_fx.c
+++ b/source/blender/draw/engines/gpencil/gpencil_shader_fx.c
@@ -404,7 +404,7 @@ static void DRW_gpencil_fx_rim(
DRW_shgroup_uniform_texture_ref(fx_shgrp_b, "strokeColor", &e_data->input_color_tx);
DRW_shgroup_uniform_texture_ref(fx_shgrp_b, "strokeDepth", &e_data->input_depth_tx);
DRW_shgroup_uniform_texture_ref(fx_shgrp_b, "strokeMask", &e_data->temp_mask_tx_rim);
- DRW_shgroup_uniform_int(fx_shgrp_b, "blur", &fxd->blur[0], 2);
+ DRW_shgroup_uniform_int(fx_shgrp_b, "blurrines", &fxd->blur_pixels, 1);
DRW_shgroup_uniform_vec3(fx_shgrp_b, "loc", &ob->loc[0], 1);
DRW_shgroup_uniform_float(fx_shgrp_b, "pixsize", stl->storage->pixsize, 1);
diff --git a/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_rim_prepare_frag.glsl b/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_rim_prepare_frag.glsl
index 8b8689f27c6..97b41516d1a 100644
--- a/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_rim_prepare_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_rim_prepare_frag.glsl
@@ -97,7 +97,6 @@ void main()
vec4 src_pixel= texelFetch(strokeColor, ivec2(uv.xy), 0);
vec4 offset_pixel= texelFetch(strokeColor, ivec2(uv.x - dx, uv.y - dy), 0);
vec4 blur_pixel = texelFetch(strokeColor, ivec2(uv.x - dx - bx, uv.y - dy - by), 0);
-
vec4 blur_pixel_b = texelFetch(strokeColor, ivec2(uv.x - dx + bx + bx, uv.y - dy + by + by), 0);
vec4 outcolor;
/* is transparent */
@@ -113,8 +112,9 @@ void main()
outcolor = src_pixel;
}
else {
- mask = vec4(1, 0, 0, 1);
outcolor = get_blend_color(mode, src_pixel, vec4(rim_color.rgb, 1));
+
+ mask = vec4(1, 0, 0, 1);
if ((blur_pixel_b.a > 0) || (blur_pixel.a == 0)) {
mask = vec4(0, 0, 0, 0);
}
diff --git a/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_rim_resolve_frag.glsl b/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_rim_resolve_frag.glsl
index cbb8a72bc39..4e50e61e69a 100644
--- a/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_rim_resolve_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_rim_resolve_frag.glsl
@@ -8,7 +8,7 @@ uniform sampler2D strokeColor;
uniform sampler2D strokeDepth;
uniform sampler2D strokeMask;
-uniform int blur[2];
+uniform int blurrines;
out vec4 FragColor;
@@ -18,7 +18,7 @@ uniform float pixelsize; /* U.pixelsize */
uniform float pixfactor;
float defaultpixsize = pixsize * pixelsize * (1000.0 / pixfactor);
-vec2 noffset = vec2(blur[0], blur[1]);
+vec2 noffset = vec2(blurrines, blurrines);
vec4 get_blur(ivec2 uv, float bx, float by)
{
diff --git a/source/blender/makesdna/DNA_shader_fx_types.h b/source/blender/makesdna/DNA_shader_fx_types.h
index 47beae67498..1a47d7ed9fc 100644
--- a/source/blender/makesdna/DNA_shader_fx_types.h
+++ b/source/blender/makesdna/DNA_shader_fx_types.h
@@ -155,7 +155,7 @@ typedef struct RimShaderFxData {
int mode;
int blur[2];
int samples;
- char pad[4];
+ int blur_pixels;
ShaderFxData_runtime runtime;
} RimShaderFxData;
diff --git a/source/blender/makesrna/intern/rna_shader_fx.c b/source/blender/makesrna/intern/rna_shader_fx.c
index 4956333b202..ce0fdb1cefa 100644
--- a/source/blender/makesrna/intern/rna_shader_fx.c
+++ b/source/blender/makesrna/intern/rna_shader_fx.c
@@ -381,6 +381,14 @@ static void rna_def_shader_fx_rim(BlenderRNA *brna)
RNA_def_property_int_default(prop, 4);
RNA_def_property_ui_text(prop, "Samples", "Number of Blur Samples (zero, disable blur)");
RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update");
+
+ prop = RNA_def_property(srna, "blurrines", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "blur_pixels");
+ RNA_def_property_range(prop, 1, 32);
+ RNA_def_property_ui_range(prop, 1, 32, 1, -1);
+ RNA_def_property_int_default(prop, 4);
+ RNA_def_property_ui_text(prop, "Blurrines", "Factor of blurriness");
+ RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update");
}
static void rna_def_shader_fx_swirl(BlenderRNA *brna)
diff --git a/source/blender/shader_fx/intern/FX_shader_rim.c b/source/blender/shader_fx/intern/FX_shader_rim.c
index 611e6f91bf7..fc4601579a2 100644
--- a/source/blender/shader_fx/intern/FX_shader_rim.c
+++ b/source/blender/shader_fx/intern/FX_shader_rim.c
@@ -44,6 +44,7 @@ static void initData(ShaderFxData *fx)
ARRAY_SET_ITEMS(gpfx->mask_rgb, 0.0f, 0.0f, 0.0f, 1.0f);
gpfx->mode = eShaderFxRimMode_Multiply;
ARRAY_SET_ITEMS(gpfx->blur, 0, 0);
+ gpfx->blur_pixels = 2;
}
static void copyData(const ShaderFxData *md, ShaderFxData *target)
More information about the Bf-blender-cvs
mailing list