[Bf-blender-cvs] [acad042fdfc] greasepencil-object: Remove Brush test parameters
Antonio Vazquez
noreply at git.blender.org
Thu Nov 23 18:23:34 CET 2017
Commit: acad042fdfc8a9226122bed602f11b65c67729da
Author: Antonio Vazquez
Date: Thu Nov 23 17:35:16 2017 +0100
Branches: greasepencil-object
https://developer.blender.org/rBacad042fdfc8a9226122bed602f11b65c67729da
Remove Brush test parameters
After doing some test, remove several parameters added to verify smooth stroke.
===================================================================
M release/scripts/startup/bl_ui/properties_grease_pencil_common.py
M source/blender/blenkernel/intern/gpencil.c
M source/blender/editors/gpencil/gpencil_data.c
M source/blender/editors/gpencil/gpencil_paint.c
M source/blender/makesdna/DNA_gpencil_types.h
M source/blender/makesrna/intern/rna_scene.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
index df125cc2ec7..2e29c63419a 100644
--- a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
+++ b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
@@ -418,17 +418,6 @@ class GreasePencilBrushOptionsPanel:
col.prop(brush, "pen_smooth_factor")
col.prop(brush, "pen_smooth_steps")
- row = col.row(align=True)
- row.prop(brush, "pen_stabilize_factor")
- row.prop(brush, "pen_pressure_threshold")
-
- row = col.row(align=True)
- row.prop(brush, "pen_density")
- row.prop(brush, "pen_noise_factor")
- row = col.row(align=True)
- row.prop(brush, "pen_smooth_thickness_factor")
- row.prop(brush, "pen_smooth_strength_factor")
-
col.separator()
row = col.row(align=False)
row.prop(brush, "pen_subdivision_steps")
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index 784ec4139c2..bd0ab3c0231 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -538,12 +538,6 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
brush->draw_random_sub = 0.0f;
copy_v3_v3(brush->curcolor, curcolor);
- brush->draw_stabifac = 1.0f;
- brush->draw_pxdensity = GP_MIN_STROKE_SEGMENT_PX;
- brush->draw_stabangle = GP_MIN_STROKE_SEGMENT_ANGLE;
- brush->draw_thicknesfac = GP_DEFAULT_SMOOTH_THICKNESS;
- brush->draw_strengthfac = GP_DEFAULT_SMOOTH_STRENGTH;
-
/* Pencil brush */
brush = BKE_gpencil_brush_addnew(ts, "Pencil", true);
brush->thickness = 15.0f;
@@ -570,12 +564,6 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
brush->draw_random_sub = 0.0f;
copy_v3_v3(brush->curcolor, curcolor);
- brush->draw_stabifac = 1.0f;
- brush->draw_pxdensity = GP_MIN_STROKE_SEGMENT_PX;
- brush->draw_stabangle = GP_MIN_STROKE_SEGMENT_ANGLE;
- brush->draw_thicknesfac = GP_DEFAULT_SMOOTH_THICKNESS;
- brush->draw_strengthfac = GP_DEFAULT_SMOOTH_STRENGTH;
-
/* Ink brush */
brush = BKE_gpencil_brush_addnew(ts, "Ink", false);
brush->thickness = 7.0f;
@@ -602,12 +590,6 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
brush->draw_random_sub = 0.0f;
copy_v3_v3(brush->curcolor, curcolor);
- brush->draw_stabifac = 1.0f;
- brush->draw_pxdensity = GP_MIN_STROKE_SEGMENT_PX;
- brush->draw_stabangle = GP_MIN_STROKE_SEGMENT_ANGLE;
- brush->draw_thicknesfac = GP_DEFAULT_SMOOTH_THICKNESS;
- brush->draw_strengthfac = GP_DEFAULT_SMOOTH_STRENGTH;
-
/* Ink Noise brush */
brush = BKE_gpencil_brush_addnew(ts, "Ink noise", false);
brush->thickness = 6.0f;
@@ -634,12 +616,6 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
brush->draw_random_sub = 0.0f;
copy_v3_v3(brush->curcolor, curcolor);
- brush->draw_stabifac = 1.0f;
- brush->draw_pxdensity = GP_MIN_STROKE_SEGMENT_PX;
- brush->draw_stabangle = GP_MIN_STROKE_SEGMENT_ANGLE;
- brush->draw_thicknesfac = GP_DEFAULT_SMOOTH_THICKNESS;
- brush->draw_strengthfac = GP_DEFAULT_SMOOTH_STRENGTH;
-
/* Marker brush */
brush = BKE_gpencil_brush_addnew(ts, "Marker", false);
brush->thickness = 10.0f;
@@ -666,12 +642,6 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
brush->draw_random_sub = 0.0f;
copy_v3_v3(brush->curcolor, curcolor);
- brush->draw_stabifac = 1.0f;
- brush->draw_pxdensity = GP_MIN_STROKE_SEGMENT_PX;
- brush->draw_stabangle = GP_MIN_STROKE_SEGMENT_ANGLE;
- brush->draw_thicknesfac = GP_DEFAULT_SMOOTH_THICKNESS;
- brush->draw_strengthfac = GP_DEFAULT_SMOOTH_STRENGTH;
-
/* Crayon brush */
brush = BKE_gpencil_brush_addnew(ts, "Crayon", false);
brush->thickness = 10.0f;
@@ -697,12 +667,6 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
brush->sublevel = 2;
brush->draw_random_sub = 0.5f;
copy_v3_v3(brush->curcolor, curcolor);
-
- brush->draw_stabifac = 1.0f;
- brush->draw_pxdensity = GP_MIN_STROKE_SEGMENT_PX;
- brush->draw_stabangle = GP_MIN_STROKE_SEGMENT_ANGLE;
- brush->draw_thicknesfac = GP_DEFAULT_SMOOTH_THICKNESS;
- brush->draw_strengthfac = GP_DEFAULT_SMOOTH_STRENGTH;
}
/* add a new gp-brush and make it the active */
@@ -731,12 +695,6 @@ bGPDbrush *BKE_gpencil_brush_addnew(ToolSettings *ts, const char *name, bool set
brush->draw_jitter = 0.0f;
brush->flag |= GP_BRUSH_USE_JITTER_PRESSURE;
- brush->draw_stabifac = 1.0f;
- brush->draw_pxdensity = GP_MIN_STROKE_SEGMENT_PX;
- brush->draw_stabangle = GP_MIN_STROKE_SEGMENT_ANGLE;
- brush->draw_thicknesfac = GP_DEFAULT_SMOOTH_THICKNESS;
- brush->draw_strengthfac = GP_DEFAULT_SMOOTH_STRENGTH;
-
/* curves */
brush->cur_sensitivity = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
brush->cur_strength = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
diff --git a/source/blender/editors/gpencil/gpencil_data.c b/source/blender/editors/gpencil/gpencil_data.c
index a44268c391c..1174527928c 100644
--- a/source/blender/editors/gpencil/gpencil_data.c
+++ b/source/blender/editors/gpencil/gpencil_data.c
@@ -1511,10 +1511,6 @@ static int gp_brush_copy_exec(bContext *C, wmOperator *op)
newbrush->draw_random_press = brush->draw_random_press;
newbrush->draw_random_sub = brush->draw_random_sub;
- newbrush->draw_stabifac = brush->draw_stabifac;
- newbrush->draw_pxdensity = brush->draw_pxdensity;
- newbrush->draw_stabangle = brush->draw_stabangle;
-
/* free automatic curves created by default (replaced by copy) */
curvemapping_free(newbrush->cur_sensitivity);
curvemapping_free(newbrush->cur_strength);
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 80c7fc8e92b..ee5661eade1 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -280,10 +280,6 @@ static bool gp_stroke_filtermval(tGPsdata *p, const int mval[2], int pmval[2])
int dx = abs(mval[0] - pmval[0]);
int dy = abs(mval[1] - pmval[1]);
- /* check a minimum amount of pressure (some tablets send very low values at the end of stroke) */
- if (p->pressure < p->brush->draw_threshold)
- return false;
-
/* if buffer is empty, just let this go through (i.e. so that dots will work) */
if (p->gpd->sbuffer_size == 0)
return true;
@@ -485,153 +481,6 @@ static void copy_v2float_v2int(float r[2], const int a[2])
r[1] = (float)a[1];
}
-/**
-* Apply smooth while drawing
-*
-* This smooth allows the artist to get a feedback of the smooth process and
-* reduces the stroke changes when apply the post stroke smooth.
-*
-* \param gpd Current gp datablock
-* \param brush Current brush
-*/
-static void gp_smooth_buffer_point(bGPdata *gpd, bGPDbrush *brush)
-{
- tGPspoint *ptc, *pta, *ptb;
- float fptc[2], fpta[2], fptb[2], vab[2], vac[2], vba[2], vbc[2];
- float estimated_co[2] = { 0.0f };
- float sco[3] = { 0.0f };
- float inf = brush->draw_stabifac;
- const float draw_stabangle = cos(brush->draw_stabangle);
- const float draw_pxdensity = brush->draw_pxdensity * brush->draw_pxdensity;
-
- /* the influence never can be 1. We keep the range between 0 and 1 on the UI for
- * consistency, but internally never can be 1 because then the estimated position
- * would be used always and this makes impossible to draw.
- * We adjust between 0 and 0.8 that gets good results
- */
- inf *= 0.8f;
-
- /* Do nothing if not enough points to smooth out */
- if (gpd->sbuffer_size < 3) {
- return;
- }
-
- int i = gpd->sbuffer_size - 1;
-
- /* points used as reference */
- pta = (tGPspoint *)gpd->sbuffer + i - 2;
- ptb = (tGPspoint *)gpd->sbuffer + i - 1;
-
- /* current point */
- ptc = (tGPspoint *)gpd->sbuffer + i;
-
- /* compute estimated position projecting over last two points vector the
- * vector to new point.
- */
- copy_v2float_v2int(fpta, &pta->x);
- copy_v2float_v2int(fptb, &ptb->x);
- copy_v2float_v2int(fptc, &ptc->x);
-
- /* verify the new point is not changing in oposite direction and return to avoid
- * that sharp corners can be cleared by smooth process
- */
- sub_v2_v2v2(vba, fpta, fptb);
- sub_v2_v2v2(vbc, fptc, fptb);
- normalize_v2(vba);
- normalize_v2(vbc);
- float angle_ba_bc = dot_v2v2(vba, vbc);
- if (angle_ba_bc >= 0.0f) {
- return;
- }
-
- float sqsize_ac = len_squared_v2v2(fpta, fptc);
- float lambda = closest_to_line_v2(estimated_co, fptc, fpta, fptb);
- /* need a minimum space between points to apply */
- if ((lambda > 0.0f) && (sqsize_ac > draw_pxdensity)) {
- /* blend between original and optimal smoothed coordinate */
- interp_v2_v2v2(fptc, fptc, estimated_co, inf);
- copy_v2int_v2float(&ptc->x, fptc);
- }
-
- /* smooth point-1 (previous) using an average of 20%-50%-30% between point-2,
- * point-1 and point to get smoother strokes. This reduces the jitter between
- * the previous point and the point that is being created.
- */
- madd_v2_v2fl(sco, fpta, 0.20f);
- madd_v2_v2fl(sco, fptb, 0.50f);
- madd_v2_v2fl(sco, fptc, 0.30f);
- interp_v2_v2v2(fptb, fptb, sco, inf);
- copy_v2int_v2float(&ptb->x, fptb);
-
- /* check if the previous point is relevant calculating the angle between vectors
- * to verify if the angle is too small and can be noise
- */
- sub_v2_v2v2(vab, fptb, fpta);
- sub_v2_v2v2(vac, fptc, fpta);
- float sqsize_ab = len_squared_v2v2(fptb, fpta);
- normalize_v2(vab);
- normalize_v2(vac);
-
- /* as the vectors are normalized, we can use dot product to calculate cosine */
- float angle = fabs(dot_v2v2(vab, vac));
- /* if the angle is below minimun, means the point can be removed, so rollback one point */
- if ((angle > draw_stabangle) && (sqsize_ab < draw_pxdensity * 3.0f)) {
- ptb->x = ptc->x;
- ptb->y = ptc->y;
- ptb->pressure = ptc->pressure;
- ptb->strength = ptc->strength;
- ptb->time = ptc->time;
- gpd->sbuffer_size--;
- }
-
- return;
-}
-
-/**
-* Apply smooth while drawing for thickness and strength (alpha)
-*
-* \param gpd Current gp datablock
-* \param brush Current brush
-*/
-static void gp_smooth_buffer_thickness(bGPdata *gpd, bGPDbrush *brush)
-{
- tGPspoint *ptc, *pta, *ptb;
- float fptc[2], fpta[2], fptb
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list