[Bf-blender-cvs] [9cf21e714a0] greasepencil-object: GPencil: Test new Smart Smooth parameter in UI

Antonio Vazquez noreply at git.blender.org
Thu Sep 26 23:29:38 CEST 2019


Commit: 9cf21e714a0883951fda02ddc1032e5510f526e3
Author: Antonio Vazquez
Date:   Thu Sep 26 23:29:07 2019 +0200
Branches: greasepencil-object
https://developer.blender.org/rB9cf21e714a0883951fda02ddc1032e5510f526e3

GPencil: Test new Smart Smooth parameter in UI

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

M	release/scripts/startup/bl_ui/space_view3d_toolbar.py
M	source/blender/blenkernel/intern/brush.c
M	source/blender/editors/gpencil/gpencil_paint.c
M	source/blender/editors/gpencil/gpencil_primitive.c
M	source/blender/makesdna/DNA_brush_types.h
M	source/blender/makesrna/intern/rna_brush.c

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

diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 3abeff6cb60..246e38b517b 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -1901,6 +1901,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_option(View3DPanel, Panel):
             col.prop(gp_settings, "input_samples")
             col.separator()
 
+            col.prop(gp_settings, "pen_smart_smooth_factor")
             col.prop(gp_settings, "active_smooth_factor")
             col.prop(gp_settings, "active_subdivide_steps")
             col.separator()
diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index 44853f74264..4edb9135c60 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -147,7 +147,6 @@ void BKE_brush_init_gpencil_settings(Brush *brush)
   brush->gpencil_settings->draw_smoothlvl = 1;
   brush->gpencil_settings->flag = 0;
   brush->gpencil_settings->flag |= GP_BRUSH_USE_PRESSURE;
-  brush->gpencil_settings->draw_sensitivity = 1.0f;
   brush->gpencil_settings->draw_strength = 1.0f;
   brush->gpencil_settings->draw_jitter = 0.0f;
   brush->gpencil_settings->flag |= GP_BRUSH_USE_JITTER_PRESSURE;
@@ -256,7 +255,6 @@ void BKE_brush_gpencil_presets(bContext *C)
   brush = BKE_brush_add_gpencil(bmain, ts, "Draw Pencil");
   brush->size = 25.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
-  brush->gpencil_settings->draw_sensitivity = 1.0f;
 
   brush->gpencil_settings->draw_strength = 0.6f;
   brush->gpencil_settings->flag |= GP_BRUSH_USE_STENGTH_PRESSURE;
@@ -291,7 +289,6 @@ void BKE_brush_gpencil_presets(bContext *C)
   deft = brush; /* save default brush */
   brush->size = 30.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
-  brush->gpencil_settings->draw_sensitivity = 1.0f;
 
   brush->gpencil_settings->draw_strength = 1.0f;
   brush->gpencil_settings->flag |= GP_BRUSH_USE_STENGTH_PRESSURE;
@@ -326,7 +323,6 @@ void BKE_brush_gpencil_presets(bContext *C)
   brush = BKE_brush_add_gpencil(bmain, ts, "Draw Ink");
   brush->size = 60.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
-  brush->gpencil_settings->draw_sensitivity = 1.6f;
 
   brush->gpencil_settings->draw_strength = 1.0f;
 
@@ -365,7 +361,6 @@ void BKE_brush_gpencil_presets(bContext *C)
   brush = BKE_brush_add_gpencil(bmain, ts, "Draw Noise");
   brush->size = 60.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
-  brush->gpencil_settings->draw_sensitivity = 1.0f;
 
   brush->gpencil_settings->draw_strength = 1.0f;
 
@@ -406,7 +401,6 @@ void BKE_brush_gpencil_presets(bContext *C)
   brush = BKE_brush_add_gpencil(bmain, ts, "Draw Block");
   brush->size = 150.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
-  brush->gpencil_settings->draw_sensitivity = 1.0f;
 
   brush->gpencil_settings->draw_strength = 1.0f;
 
@@ -438,7 +432,6 @@ void BKE_brush_gpencil_presets(bContext *C)
   brush = BKE_brush_add_gpencil(bmain, ts, "Draw Marker");
   brush->size = 80.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
-  brush->gpencil_settings->draw_sensitivity = 1.0f;
 
   brush->gpencil_settings->draw_strength = 1.0f;
 
@@ -479,7 +472,6 @@ void BKE_brush_gpencil_presets(bContext *C)
   deft = brush; /* save default brush */
   brush->size = 300.0f;
   brush->gpencil_settings->flag |= (GP_BRUSH_USE_PRESSURE | GP_BRUSH_ENABLE_CURSOR);
-  brush->gpencil_settings->draw_sensitivity = 1.0f;
 
   brush->gpencil_settings->draw_strength = 0.4f;
   brush->gpencil_settings->flag |= GP_BRUSH_USE_STENGTH_PRESSURE;
@@ -515,7 +507,6 @@ void BKE_brush_gpencil_presets(bContext *C)
   brush = BKE_brush_add_gpencil(bmain, ts, "Fill Area");
   brush->size = 20.0f;
   brush->gpencil_settings->flag |= GP_BRUSH_ENABLE_CURSOR;
-  brush->gpencil_settings->draw_sensitivity = 1.0f;
   brush->gpencil_settings->fill_leak = 3;
   brush->gpencil_settings->fill_threshold = 0.1f;
   brush->gpencil_settings->fill_simplylvl = 1;
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index f6233c16f0d..c23fe5848a6 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -493,8 +493,7 @@ static void gp_brush_jitter(bGPdata *gpd,
 {
   float tmp_pressure = pressure;
   if (brush->gpencil_settings->draw_jitter > 0.0f) {
-    float curvef = BKE_curvemapping_evaluateF(brush->gpencil_settings->curve_jitter, 0, pressure);
-    tmp_pressure = curvef * brush->gpencil_settings->draw_sensitivity;
+    tmp_pressure = BKE_curvemapping_evaluateF(brush->gpencil_settings->curve_jitter, 0, pressure);
   }
   /* exponential value */
   const float exfactor = (brush->gpencil_settings->draw_jitter + 2.0f) *
@@ -728,7 +727,7 @@ static void gp_smooth_fake_segments(tGPsdata *p)
         to_idx = i + (i - from_idx);
         /* Smooth this segments (need loop to get cumulative smooth). */
         for (int r = 0; r < 5; r++) {
-          gp_smooth_segment(gpd, 0.1f, from_idx, to_idx);
+          gp_smooth_segment(gpd, brush->gpencil_settings->smart_smooth, from_idx, to_idx);
         }
       }
       else {
@@ -900,9 +899,8 @@ static short gp_stroke_addpoint(
     /* store settings */
     /* pressure */
     if (brush->gpencil_settings->flag & GP_BRUSH_USE_PRESSURE) {
-      float curvef = BKE_curvemapping_evaluateF(
+      pt->pressure = BKE_curvemapping_evaluateF(
           brush->gpencil_settings->curve_sensitivity, 0, pressure);
-      pt->pressure = curvef * brush->gpencil_settings->draw_sensitivity;
     }
     else {
       pt->pressure = 1.0f;
@@ -924,9 +922,8 @@ static short gp_stroke_addpoint(
     /* apply randomness to pressure */
     if ((brush->gpencil_settings->flag & GP_BRUSH_GROUP_RANDOM) &&
         (brush->gpencil_settings->draw_random_press > 0.0f)) {
-      float curvef = BKE_curvemapping_evaluateF(
+      float tmp_pressure = BKE_curvemapping_evaluateF(
           brush->gpencil_settings->curve_sensitivity, 0, pressure);
-      float tmp_pressure = curvef * brush->gpencil_settings->draw_sensitivity;
       if (BLI_rng_get_float(p->rng) > 0.5f) {
         pt->pressure -= tmp_pressure * brush->gpencil_settings->draw_random_press *
                         BLI_rng_get_float(p->rng);
@@ -960,9 +957,8 @@ static short gp_stroke_addpoint(
 
     /* color strength */
     if (brush->gpencil_settings->flag & GP_BRUSH_USE_STENGTH_PRESSURE) {
-      float curvef = BKE_curvemapping_evaluateF(
+      float tmp_pressure = BKE_curvemapping_evaluateF(
           brush->gpencil_settings->curve_strength, 0, pressure);
-      float tmp_pressure = curvef * brush->gpencil_settings->draw_sensitivity;
 
       pt->strength = tmp_pressure * brush->gpencil_settings->draw_strength;
     }
diff --git a/source/blender/editors/gpencil/gpencil_primitive.c b/source/blender/editors/gpencil/gpencil_primitive.c
index e5b1a82630b..6a954a5ae0e 100644
--- a/source/blender/editors/gpencil/gpencil_primitive.c
+++ b/source/blender/editors/gpencil/gpencil_primitive.c
@@ -854,7 +854,6 @@ static void gp_primitive_update_strokes(bContext *C, tGPDprimitive *tgpi)
       if (brush->gpencil_settings->flag & GP_BRUSH_USE_JITTER_PRESSURE) {
         jitter = BKE_curvemapping_evaluateF(
             brush->gpencil_settings->curve_jitter, 0, curve_pressure);
-        jitter *= brush->gpencil_settings->draw_sensitivity;
       }
       else {
         jitter = brush->gpencil_settings->draw_jitter;
@@ -901,7 +900,7 @@ static void gp_primitive_update_strokes(bContext *C, tGPDprimitive *tgpi)
     if (brush->gpencil_settings->flag & GP_BRUSH_USE_STENGTH_PRESSURE) {
       float curvef = BKE_curvemapping_evaluateF(
           brush->gpencil_settings->curve_strength, 0, curve_pressure);
-      strength *= curvef * brush->gpencil_settings->draw_sensitivity;
+      strength *= curvef;
       strength *= brush->gpencil_settings->draw_strength;
     }
 
diff --git a/source/blender/makesdna/DNA_brush_types.h b/source/blender/makesdna/DNA_brush_types.h
index 690b3098ab4..f8596a79a1c 100644
--- a/source/blender/makesdna/DNA_brush_types.h
+++ b/source/blender/makesdna/DNA_brush_types.h
@@ -50,8 +50,8 @@ typedef struct BrushClone {
 typedef struct BrushGpencilSettings {
   /** Amount of smoothing to apply to newly created strokes. */
   float draw_smoothfac;
-  /** Amount of sensitivity to apply to newly created strokes. */
-  float draw_sensitivity;
+  /** Amount of smooth for very fast mouse/pen movements. */
+  float smart_smooth;
   /** Amount of alpha strength to apply to newly created strokes. */
   float draw_strength;
   /** Amount of jitter to apply to newly created strokes. */
@@ -515,7 +515,7 @@ typedef enum eBrushUVSculptTool {
         SCULPT_TOOL_ELASTIC_DEFORM, \
         SCULPT_TOOL_POSE, \
 \
-        /* These brushes could handle dynamic topology, \ \
+        /* These brushes could handle dynamic topology, \ \ \
          * but user feedback indicates it's better not to */ \
         SCULPT_TOOL_SMOOTH, \
         SCULPT_TOOL_MASK) == 0)
diff --git a/source/blender/makesrna/intern/rna_brush.c b/source/blender/makesrna/intern/rna_brush.c
index 82dfe74f79f..f2fcbd815ce 100644
--- a/source/blender/makesrna/intern/rna_brush.c
+++ b/source/blender/makesrna/intern/rna_brush.c
@@ -1065,11 +1065,11 @@ static void rna_def_gpencil_options(BlenderRNA *brna)
   RNA_def_struct_path_func(srna, "rna_BrushGpencilSettings_path");
   RNA_def_struct_ui_text(srna, "Grease Pencil Brush Settings", "Settings for grease pencil brush");
 
-  /* Sensitivity factor for new strokes */
-  prop = RNA_def_property(srna, "pen_sensitivity_factor", PROP_FLOAT, PROP_NONE);
-  RNA_def_property_float_sdna(prop, NULL, "draw_sensitivity");
-  RNA_def_property_range(prop, 0.1f, 3.0f);
-  RNA_def_property_ui_text(prop, "Sensitivity", "Pressure sensitivity factor for new strokes");
+  /* Smart Smooth factor for new strokes */
+  prop = RNA_def_property(sr

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list