Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Dobarro <pablodp606@gmail.com>2019-10-04 00:46:29 +0300
committerPablo Dobarro <pablodp606@gmail.com>2019-10-04 16:28:00 +0300
commitd590db83705b9bfbb663c9aa388f5bf6fff09116 (patch)
tree7d125df35e0049aa542aec6848b2a650eb03864b
parent2b55a1da50d213b34993a00b6b4459970e82a5aa (diff)
Sculpt: Clay Strips brush tweaks
- Fix accumulate by allowing normal radius greater than one. Now it works as it should and it should be enabled by default - Make the square test sharper. This gives a lot more definition to the brush, even when working with fewer polygons Reviewed By: brecht Differential Revision: https://developer.blender.org/D5984
-rw-r--r--source/blender/blenkernel/intern/brush.c7
-rw-r--r--source/blender/editors/sculpt_paint/sculpt.c7
-rw-r--r--source/blender/makesrna/intern/rna_brush.c4
3 files changed, 13 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index f80d262ee47..39a12a997ef 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -909,6 +909,13 @@ void BKE_brush_sculpt_reset(Brush *br)
case SCULPT_TOOL_CLAY:
br->flag |= BRUSH_FRONTFACE;
break;
+ case SCULPT_TOOL_CLAY_STRIPS:
+ br->flag |= BRUSH_ACCUMULATE;
+ br->alpha = 0.7f;
+ br->normal_radius_factor = 1.7f;
+ br->curve_preset = BRUSH_CURVE_SPHERE;
+ br->spacing = 6;
+ break;
case SCULPT_TOOL_CREASE:
br->flag |= BRUSH_DIR_IN;
br->alpha = 0.25;
diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c
index 6e9f62b980c..64674ecd0a1 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -1098,9 +1098,8 @@ bool sculpt_brush_test_cube(SculptBrushTest *test, const float co[3], float loca
local_co[1] = fabsf(local_co[1]);
local_co[2] = fabsf(local_co[2]);
+ const float p = 8.0f;
if (local_co[0] <= side && local_co[1] <= side && local_co[2] <= side) {
- float p = 4.0f;
-
test->dist = ((powf(local_co[0], p) + powf(local_co[1], p) + powf(local_co[2], p)) /
powf(side, p));
@@ -1740,11 +1739,13 @@ static float brush_strength(const Sculpt *sd,
switch (brush->sculpt_tool) {
case SCULPT_TOOL_CLAY:
- case SCULPT_TOOL_CLAY_STRIPS:
case SCULPT_TOOL_DRAW:
case SCULPT_TOOL_DRAW_SHARP:
case SCULPT_TOOL_LAYER:
return alpha * flip * pressure * overlap * feather;
+ case SCULPT_TOOL_CLAY_STRIPS:
+ /* Clay Strips needs extra strength to compensate for its default normal radius */
+ return alpha * flip * pressure * overlap * feather * 1.3f;
case SCULPT_TOOL_MASK:
overlap = (1 + overlap) / 2;
diff --git a/source/blender/makesrna/intern/rna_brush.c b/source/blender/makesrna/intern/rna_brush.c
index d64970d03ab..2aaa9e7855e 100644
--- a/source/blender/makesrna/intern/rna_brush.c
+++ b/source/blender/makesrna/intern/rna_brush.c
@@ -1885,8 +1885,8 @@ static void rna_def_brush(BlenderRNA *brna)
prop = RNA_def_property(srna, "normal_radius_factor", PROP_FLOAT, PROP_FACTOR);
RNA_def_property_float_sdna(prop, NULL, "normal_radius_factor");
- RNA_def_property_range(prop, 0.0f, 1.0f);
- RNA_def_property_ui_range(prop, 0.0f, 1.0f, 0.001, 3);
+ RNA_def_property_range(prop, 0.0f, 2.0f);
+ RNA_def_property_ui_range(prop, 0.0f, 2.0f, 0.001, 3);
RNA_def_property_ui_text(prop,
"Normal Radius",
"Ratio between the brush radius and the radius that is going to be "