[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28994] branches/soc-2010-jwilkins/source/ blender: Tweaking Clay and Contrast Brush
Jason Wilkins
Jason.A.Wilkins at gmail.com
Wed May 26 06:46:26 CEST 2010
Revision: 28994
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28994
Author: jwilkins
Date: 2010-05-26 06:46:25 +0200 (Wed, 26 May 2010)
Log Message:
-----------
Tweaking Clay and Contrast Brush
Modified Paths:
--------------
branches/soc-2010-jwilkins/source/blender/editors/sculpt_paint/sculpt.c
branches/soc-2010-jwilkins/source/blender/makesdna/DNA_brush_types.h
branches/soc-2010-jwilkins/source/blender/makesrna/intern/rna_brush.c
Modified: branches/soc-2010-jwilkins/source/blender/editors/sculpt_paint/sculpt.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/editors/sculpt_paint/sculpt.c 2010-05-26 02:00:55 UTC (rev 28993)
+++ branches/soc-2010-jwilkins/source/blender/editors/sculpt_paint/sculpt.c 2010-05-26 04:46:25 UTC (rev 28994)
@@ -542,36 +542,42 @@
special multiplier found experimentally to scale the strength factor. */
static float brush_strength(Sculpt *sd, StrokeCache *cache)
{
- Brush *brush = paint_brush(&sd->paint);
- /* Primary strength input; square it to make lower values more sensitive */
- float alpha = brush->alpha * brush->alpha;
+ Brush *brush = paint_brush(&sd->paint);
- float dir= brush->flag & BRUSH_DIR_IN ? -1 : 1;
- float pressure= 1;
- float flip= cache->flip ? -1:1;
+ /* Primary strength input; square it to make lower values more sensitive */
+ float alpha = brush->alpha * brush->alpha;
- if(brush->flag & BRUSH_ALPHA_PRESSURE)
- pressure *= cache->pressure;
-
- switch(brush->sculpt_tool){
- case SCULPT_TOOL_DRAW:
- case SCULPT_TOOL_INFLATE:
- case SCULPT_TOOL_CLAY:
- case SCULPT_TOOL_FLATTEN:
- case SCULPT_TOOL_LAYER:
+ float dir = brush->flag & BRUSH_DIR_IN ? -1 : 1;
+ float pressure = 1;
+ float flip = cache->flip ? -1:1;
+
+ if(brush->flag & BRUSH_ALPHA_PRESSURE) pressure *= cache->pressure;
+
+ switch(brush->sculpt_tool){
+ case SCULPT_TOOL_DRAW:
+ case SCULPT_TOOL_INFLATE:
+ case SCULPT_TOOL_CLAY:
+ return alpha * dir * pressure * flip;
+
+ case SCULPT_TOOL_FLATTEN:
+ case SCULPT_TOOL_LAYER:
case SCULPT_TOOL_FILL:
case SCULPT_TOOL_SCRAPE:
case SCULPT_TOOL_CONTRAST:
- return alpha * dir * pressure * flip; /*XXX: not sure why? was multiplied by G.vd->grid */;
- case SCULPT_TOOL_SMOOTH:
- return alpha * 4 * pressure;
- case SCULPT_TOOL_PINCH:
- return alpha / 2 * dir * pressure * flip;
- case SCULPT_TOOL_GRAB:
- return 1;
- default:
- return 0;
- }
+ return alpha * pressure * flip;
+
+ case SCULPT_TOOL_SMOOTH:
+ return alpha * 4 * pressure;
+
+ case SCULPT_TOOL_PINCH:
+ return alpha / 2 * dir * pressure * flip;
+
+ case SCULPT_TOOL_GRAB:
+ return 1;
+
+ default:
+ return 0;
+ }
}
/* Uses symm to selectively flip any axis of a coordinate. */
@@ -1351,6 +1357,7 @@
Brush *brush = paint_brush(&sd->paint);
float bstrength = ss->cache->bstrength;
+ float displace;
float area_normal[3];
float center[3];
@@ -1365,8 +1372,12 @@
calc_flatten_center(sd, ss, nodes, totnode, center);
+ displace = MAX_BRUSH_PIXEL_RADIUS/2.0f;
+
+ if (displace > ss->cache->radius/2.0f) displace = ss->cache->radius/2.0f;
+
mul_v3_v3v3(temp, area_normal, ss->cache->scale);
- mul_v3_fl(temp, ss->cache->radius * bstrength);
+ mul_v3_fl(temp, displace * bstrength);
add_v3_v3(center, temp);
flip = bstrength < 0;
@@ -1387,7 +1398,7 @@
float intr[3];
float val[3];
- const float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist);
+ const float fade = tex_strength(ss, brush, vd.co, test.dist);
point_plane_project(intr, vd.co, area_normal, center);
sub_v3_v3v3(val, intr, vd.co);
Modified: branches/soc-2010-jwilkins/source/blender/makesdna/DNA_brush_types.h
===================================================================
--- branches/soc-2010-jwilkins/source/blender/makesdna/DNA_brush_types.h 2010-05-26 02:00:55 UTC (rev 28993)
+++ branches/soc-2010-jwilkins/source/blender/makesdna/DNA_brush_types.h 2010-05-26 04:46:25 UTC (rev 28994)
@@ -107,5 +107,7 @@
#define PAINT_TOOL_SMEAR 2
#define PAINT_TOOL_CLONE 3
+#define MAX_BRUSH_PIXEL_RADIUS 200
+
#endif
Modified: branches/soc-2010-jwilkins/source/blender/makesrna/intern/rna_brush.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/makesrna/intern/rna_brush.c 2010-05-26 02:00:55 UTC (rev 28993)
+++ branches/soc-2010-jwilkins/source/blender/makesrna/intern/rna_brush.c 2010-05-26 04:46:25 UTC (rev 28994)
@@ -166,7 +166,7 @@
/* number values */
prop= RNA_def_property(srna, "size", PROP_INT, PROP_NONE);
- RNA_def_property_range(prop, 1, 200);
+ RNA_def_property_range(prop, 1, MAX_BRUSH_PIXEL_RADIUS);
RNA_def_property_ui_text(prop, "Size", "Diameter of the brush");
RNA_def_property_update(prop, 0, "rna_Brush_update");
More information about the Bf-blender-cvs
mailing list