Revision: 39141
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39141
Author:   jwilkins
Date:     2011-08-07 13:01:25 +0000 (Sun, 07 Aug 2011)
Log Message:
-----------
Revision: 30849
Author: nicholasbishop
Date: 2:43:48 PM, Wednesday, July 28, 2010
Message:
== Paint ==

* More texture refactoring; brush texture symmetry now works properly in sculpt 
mode again, also works in vpaint now.

TODO:
* Fixed texture mode doesn't work in vpaint
* Anchored brush needs updating

----
Modified : 
/branches/soc-2010-nicolasbishop/source/blender/blenloader/intern/writefile.c
Modified : 
/branches/soc-2010-nicolasbishop/source/blender/editors/sculpt_paint/paint_intern.h
Modified : 
/branches/soc-2010-nicolasbishop/source/blender/editors/sculpt_paint/paint_stroke.c
Modified : 
/branches/soc-2010-nicolasbishop/source/blender/editors/sculpt_paint/paint_vertex.c
Modified : 
/branches/soc-2010-nicolasbishop/source/blender/editors/sculpt_paint/sculpt.c

--
jwilkins:
Not really is left from Nick's work to apply here, even though texturing is not 
functional yet in Onion branch.  I moved paint_stroke_combined_strength to 
paint_dab.c and renamed it paint_combined_strength.  I had a function called 
paint_strength, but I liked the word 'combined' better because it describes 
what is happening more clearly.  Also, where a local static tex_strength 
function was used as a thin wrapper I just directly call 
paint_combined_strength as I do not think there will be any difference between 
modes that requires a wrapper.  

Modified Paths:
--------------
    branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_bspace.c
    branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_dab.c
    branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_intern.h
    branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_mask.c
    branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_texcache.c
    branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_vertex.c
    branches/soc-2011-onion/source/blender/editors/sculpt_paint/sculpt_tools.c

Modified: 
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_bspace.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_bspace.c  
2011-08-07 12:45:55 UTC (rev 39140)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_bspace.c  
2011-08-07 13:01:25 UTC (rev 39141)
@@ -499,7 +499,7 @@
 //                       float radius3d)
 //static float frontface(Brush *brush, float start, float range, float 
sculpt_normal[3], short no[3])
 //
-//float paint_strength(const Brush *brush, const BrushSpace *bspace, float 
co[3], short no[3], float mask, float dist)
+//float paint_combined_strength(const Brush *brush, const BrushSpace *bspace, 
float co[3], short no[3], float mask, float dist)
 //{
 //     return tex_strength(brush, bspace, co, mask, dist) * frontface(brush, 
bspace, no);
 //}

Modified: 
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_dab.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_dab.c     
2011-08-07 12:45:55 UTC (rev 39140)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_dab.c     
2011-08-07 13:01:25 UTC (rev 39141)
@@ -301,7 +301,34 @@
        }
 }
 
-float paint_strength(const Brush *brush, const BrushSpace *bspace, float 
co[3], short no[3], float mask, float dist)
+float paint_combined_strength(const Brush *brush, const BrushSpace *bspace, 
float co[3], short no[3], float mask, float dist)
 {
        return (1.0f-mask)*brush_curve_strength(brush, dist, bspace->radius3d);
 }
+
+#if 0 // SNIP, taken from Nick's work, I'm pasting it here for reference
+/* combines mask, curve, and texture strengths */
+float paint_combined_strength(PaintStroke *stroke, Brush *brush, float dist, 
float co[3], float mask, float special_rotation, float tex_mouse[2])
+{
+       float mco[3];
+
+       /* if the active area is being applied for symmetry, flip it
+          across the symmetry axis and rotate it back to the orignal
+          position in order to project it. This insures that the 
+          brush texture will be oriented correctly. */
+       if(brush->mtex.tex) {
+               paint_flip_coord(mco, co, stroke->mirror_symmetry_pass);
+               
+               if(stroke->radial_symmetry_pass)
+                       mul_m4_v3(stroke->symm_rot_mat_inv, mco);
+
+               co = mco;
+       }
+       
+       return brush_tex_strength(&stroke->vc,
+                                 stroke->project_mat, brush, co, mask, dist,
+                                 stroke->pixel_radius, stroke->radius,
+                                 special_rotation,
+                                 tex_mouse);
+}
+#endif

Modified: 
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_intern.h
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_intern.h  
2011-08-07 12:45:55 UTC (rev 39140)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_intern.h  
2011-08-07 13:01:25 UTC (rev 39141)
@@ -287,11 +287,13 @@
 
 struct MultiresModifierData *paint_mesh_get_active_multires(const struct 
bContext *C);
 
+#if 0 // SNIP
 float brush_tex_strength(const struct ViewContext *vc,
                         float pmat[4][4], float symm_brush_local_mat[4][4], 
int mirror_pass, struct Brush *br,
                         float co[3], float mask, const float len,
                         float pixel_radius, float radius3d,
                         float special_rotation, float tex_mouse[2], struct 
bglMats* mats);
+#endif
 
 void paint_cache_init(
        struct wmWindowManager *wm,
@@ -383,7 +385,6 @@
 void PAINT_OT_set_persistent_base(struct wmOperatorType *ot);
 
 /* paint_bspace.c*/
-float paint_strength(const struct Brush *brush, const struct BrushSpace 
*bspace, float co[3], short no[3], float mask, float dist);
 
 /* paint_texcache.c */
 void paint_tex_init(const struct bContext *C);
@@ -404,6 +405,14 @@
        const struct PaintStroke *stroke,
        const struct BrushSpace *bspace);
 
+float paint_combined_strength(
+       const struct Brush *brush,
+       const struct BrushSpace *bspace,
+       float co[3],
+       short no[3],
+       float mask,
+       float dist);
+
 int paint_tool_can_space_stroke(const struct Brush *brush);
 int paint_tool_can_smooth_stroke(const struct Brush *brush);
 

Modified: 
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_mask.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_mask.c    
2011-08-07 12:45:55 UTC (rev 39140)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_mask.c    
2011-08-07 13:01:25 UTC (rev 39141)
@@ -145,9 +145,16 @@
                        /* TODO: should add a mask layer if needed */
                        if(vd.mask_active) {
                                if(paint_stroke_test(&test, vd.co)) {
-                                       float fade;
+                                       float fade=
+                                               bstrength *
+                                               paint_combined_strength(
+                                                       brush,
+                                                       
paint->cache->bspace_symm_curr,
+                                                       vd.co,
+                                                       NULL,
+                                                       0,
+                                                       test.dist);
 
-                                       fade= bstrength*paint_strength(brush, 
paint->cache->bspace_symm_curr, vd.co, NULL, 0, test.dist);
                                                /* SNIP bstrength *
                                                brush_tex_strength(
                                                        vc,

Modified: 
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_texcache.c
===================================================================
--- 
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_texcache.c    
    2011-08-07 12:45:55 UTC (rev 39140)
+++ 
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_texcache.c    
    2011-08-07 13:01:25 UTC (rev 39141)
@@ -350,9 +350,9 @@
        return avg;
 }
 #else
+#if 0 // SNIP
 static float tex_strength(const struct PaintStroke *stroke, struct Brush *br, 
float *co, float mask, const float len)
 {
-#if 0 // SNIP
        const struct BrushSpace *bspace= ob->paint->bspace;
        float mco[3];
 
@@ -387,13 +387,11 @@
                        bspace->tex_angle,
                        bspace->tex_center2d,
                        &(bspace->mats));
-#else
-       return 1;
-#endif
 }
 #endif
+#endif
 
-
+#if 0 // SNIP
 /* return a multiplier for brush strength at a coordinate,
    incorporating texture, curve control, and masking
 
@@ -532,3 +530,4 @@
        return avg;
 }
 
+#endif

Modified: 
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_vertex.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_vertex.c  
2011-08-07 12:45:55 UTC (rev 39140)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_vertex.c  
2011-08-07 13:01:25 UTC (rev 39141)
@@ -1608,6 +1608,7 @@
        }
 }
 
+#if 0 // SNIP
 static float tex_strength(
        struct Brush *brush,
        struct BrushSpace *bspace,
@@ -1617,7 +1618,6 @@
        float len,
        float radius3d)
 {
-#if 0 // SNIP
        struct Object *ob= CTX_data_active_object(C);
        const ViewContext *vc = paint_stroke_view_context(stroke);
        /*float (*pmat)[4]; XXX: doesn't work */
@@ -1645,10 +1645,8 @@
                        special_rotation,
                        tex_mouse,
                        mats);
-#else
-       return paint_strength(brush, bspace, co, NULL, mask, len);
-#endif
 }
+#endif
 
 /* apply paint at specified coordinate
    returns 1 if paint was applied, 0 otherwise */
@@ -1672,7 +1670,7 @@
                dist = sqrtf(dist_squared);
 
                fac= vpd->fac *
-                       tex_strength(brush, bspace, stroke, co, mask, dist, 
radius);
+                       paint_combined_strength(brush, bspace, co, NULL, mask, 
dist);
 
                vpaint_blend(brush, col, col, vpd->color, fac);
 
@@ -1863,14 +1861,13 @@
 
                                strength=
                                        brush->alpha *
-                                       tex_strength(
+                                       paint_combined_strength(
                                                brush,
                                                bspace,
-                                               stroke,
                                                co,
+                                               NULL,
                                                mask,
-                                               dist,
-                                               radius);
+                                               dist);
 
                                act_col= GRIDELEM_COLOR(act_elem, 
gridkey)[active];
 
@@ -1948,14 +1945,13 @@
 
                                        strength =
                                                brush->alpha *
-                                               tex_strength(
+                                               paint_combined_strength(
                                                        brush,
                                                        bspace,
-                                                       stroke,
                                                        vd.co,
+                                                       NULL,
                                                        vd.mask_combined,
-                                                       test.dist,
-                                                       radius);
+                                                       test.dist);
 
                                        for(j = 0; j < 4; ++j) {
                                                unsigned char *c;

Modified: 
branches/soc-2011-onion/source/blender/editors/sculpt_paint/sculpt_tools.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/sculpt_tools.c  
2011-08-07 12:45:55 UTC (rev 39140)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/sculpt_tools.c  
2011-08-07 13:01:25 UTC (rev 39141)
@@ -197,7 +197,7 @@
 
                if(paint_stroke_test(&test, vd.co)) {
                        //const float fade = bstrength*tex_strength(stroke, 
brush, vd.co, vd.mask_combined, test.dist)*frontface(brush, 
bspace->frontface_start, bspace->frontface_range, bspace->symm_view_vector, 
orig_no[vd.i]);
-                       const float fade= bstrength*paint_strength(brush, 
bspace, vd.co, orig_no[vd.i], vd.mask_combined, test.dist);
+                       const float fade= 
bstrength*paint_combined_strength(brush, bspace, vd.co, orig_no[vd.i], 
vd.mask_combined, test.dist);
                        float avg[3], val[3];
 
                        paint_mesh_neighbor_average(ob->paint->meshcache, avg, 
vd.vert_indices[vd.i]);
@@ -302,7 +302,7 @@
                                        float mask = (gridkey->mask ?
                                                      *GRIDELEM_MASK_AT(data, x 
+ y*gridsize, gridkey) : 0);
                                        //float fade = 
bstrength*tex_strength(stroke, brush, co, mask, test.dist)*frontface(brush, 
bspace->frontface_start, bspace->frontface_range, bspace->symm_view_vector, 
orig_no[k]);
-                                       const float fade= 
bstrength*paint_strength(brush, bspace, co, orig_no[k], mask, test.dist);
+                                       const float fade= 
bstrength*paint_combined_strength(brush, bspace, co, orig_no[k], mask, 
test.dist);
                                        float *avg, val[3];
                                        float n;
 
@@ -410,7 +410,7 @@
                BLI_pbvh_vertex_iter_begin(pbvh, nodes[n], vd, 
PBVH_ITER_UNIQUE) {
                        if (paint_stroke_test(&test, vd.co)) {
                                const float fade=
-                                       paint_strength(
+                                       paint_combined_strength(
                                                brush,
                                                bspace,
                                                vd.co,
@@ -472,7 +472,7 @@
                        //if(paint_stroke_test_cyl(&test, vd.co, 
bspace->location, an)) {
                                /* offset vertex */
                                //float fade = tex_strength(stroke, brush, 
vd.co, vd.mask_combined, test.dist)*frontface(brush, bspace->frontface_start, 
bspace->frontface_range, an, orig_no[vd.i]);
-                               const float fade= paint_strength(brush, bspace, 
vd.co, orig_no[vd.i], vd.mask_combined, test.dist);
+                               const float fade= 
paint_combined_strength(brush, bspace, vd.co, orig_no[vd.i], vd.mask_combined, 
test.dist);
 
                                mul_v3_v3fl(proxy[vd.i], offset, fade);
 
@@ -543,7 +543,7 @@
                        if(paint_stroke_test(&test, vd.co)) {
                                /* offset vertex */
                                //const float fade = tex_strength(stroke, 
brush, vd.co, vd.mask_combined, test.dist)*frontface(brush, 
bspace->frontface_start, bspace->frontface_start, an, orig_no[vd.i]);

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to