[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