Commit: 8102646a9fc1b65975945017684200749423222d
Author: Antonio Vazquez
Date:   Thu Nov 23 18:23:13 2017 +0100
Branches: greasepencil-object
https://developer.blender.org/rB8102646a9fc1b65975945017684200749423222d

WIP: New smooth thickness parameter

These parameters are part of the smooth test and can be removed in the future.

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

M       release/scripts/startup/bl_ui/properties_grease_pencil_common.py
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 2e29c63419a..a9ba46d55c8 100644
--- a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
+++ b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
@@ -418,6 +418,11 @@ class GreasePencilBrushOptionsPanel:
             col.prop(brush, "pen_smooth_factor")
             col.prop(brush, "pen_smooth_steps")
 
+            row = layout.row(align=True)
+            col = row.column(align=True)
+            col.prop(brush, "pen_thick_smooth_factor")
+            col.prop(brush, "pen_thick_smooth_steps")
+
             col.separator()
             row = col.row(align=False)
             row.prop(brush, "pen_subdivision_steps")
diff --git a/source/blender/editors/gpencil/gpencil_paint.c 
b/source/blender/editors/gpencil/gpencil_paint.c
index ee5661eade1..c8261ef1102 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -984,14 +984,18 @@ static void gp_stroke_newfrombuffer(tGPsdata *p)
                                for (i = 0; i < gps->totpoints; i++) {
                                        BKE_gp_smooth_stroke(gps, i, 
brush->draw_smoothfac - reduce, false);
                                        BKE_gp_smooth_stroke_strength(gps, i, 
brush->draw_smoothfac);
-                                       /* thickness needs to repeat process 
several times */
-                                       for (int r2 = 0; r2 < 10; ++r2) {
-                                               
BKE_gp_smooth_stroke_thickness(gps, i, brush->draw_smoothfac);
-                                       }
                                }
                                reduce += 0.25f;  // reduce the factor
                        }
                }
+               /* smooth thickness */
+               if (brush->thick_smoothfac > 0.0f) {
+                       for (int r = 0; r < brush->thick_smoothlvl * 2; ++r) {
+                               for (i = 0; i < gps->totpoints; i++) {
+                                       BKE_gp_smooth_stroke_thickness(gps, i, 
brush->thick_smoothfac);
+                               }
+                       }
+               }
 
                /* reproject to plane (only in 3d space) */
                gp_reproject_toplane(p, gps);
diff --git a/source/blender/makesdna/DNA_gpencil_types.h 
b/source/blender/makesdna/DNA_gpencil_types.h
index 708de563521..109b352cfe6 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -120,7 +120,9 @@ typedef struct bGPDbrush {
        struct CurveMapping *cur_jitter;
 
        float curcolor[3];
-       char pad[4];
+       float thick_smoothfac;    /* amount of thickness smoothing to apply to 
newly created strokes */
+       short thick_smoothlvl;    /* number of times to apply thickness smooth 
factor to new strokes */
+       char pad[6];
 } bGPDbrush;
 
 /* bGPDbrush->flag */
diff --git a/source/blender/makesrna/intern/rna_scene.c 
b/source/blender/makesrna/intern/rna_scene.c
index 53573b10d50..1e42592257f 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -2226,6 +2226,22 @@ static void rna_def_gpencil_brush(BlenderRNA *brna)
                                 "Number of times to smooth newly created 
strokes");
        RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
 
+       /* Thickness smoothing factor for new strokes */
+       prop = RNA_def_property(srna, "pen_thick_smooth_factor", PROP_FLOAT, 
PROP_NONE);
+       RNA_def_property_float_sdna(prop, NULL, "thick_smoothfac");
+       RNA_def_property_range(prop, 0.0, 2.0f);
+       RNA_def_property_ui_text(prop, "Smooth Thickness",
+               "Amount of thickness smoothing to apply after finish newly 
created strokes, to reduce jitter/noise");
+       RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
+
+       /* Thickness iterations of the Smoothing factor */
+       prop = RNA_def_property(srna, "pen_thick_smooth_steps", PROP_INT, 
PROP_NONE);
+       RNA_def_property_int_sdna(prop, NULL, "thick_smoothlvl");
+       RNA_def_property_range(prop, 1, 3);
+       RNA_def_property_ui_text(prop, "Iterations Thickness",
+               "Number of times to smooth thickness for newly created 
strokes");
+       RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
+
        /* Subdivision level for new strokes */
        prop = RNA_def_property(srna, "pen_subdivision_steps", PROP_INT, 
PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "sublevel");

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to