[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29596] branches/soc-2010-nicolasbishop/ source/blender: More changes in prepping for mask layers:
Nicholas Bishop
nicholasbishop at gmail.com
Mon Jun 21 21:46:23 CEST 2010
Revision: 29596
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29596
Author: nicholasbishop
Date: 2010-06-21 21:46:23 +0200 (Mon, 21 Jun 2010)
Log Message:
-----------
More changes in prepping for mask layers:
* Reversed direction of mask strength
* Changed subsurf_make_derived_from_derived to take a gridkey parameter, or NULL for the default key (just coords + normals)
Modified Paths:
--------------
branches/soc-2010-nicolasbishop/source/blender/blenkernel/BKE_subsurf.h
branches/soc-2010-nicolasbishop/source/blender/blenkernel/intern/multires.c
branches/soc-2010-nicolasbishop/source/blender/blenkernel/intern/shrinkwrap.c
branches/soc-2010-nicolasbishop/source/blender/blenkernel/intern/subsurf_ccg.c
branches/soc-2010-nicolasbishop/source/blender/editors/sculpt_paint/paint_mask.c
branches/soc-2010-nicolasbishop/source/blender/editors/sculpt_paint/sculpt.c
branches/soc-2010-nicolasbishop/source/blender/gpu/intern/gpu_buffers.c
branches/soc-2010-nicolasbishop/source/blender/modifiers/intern/MOD_subsurf.c
Modified: branches/soc-2010-nicolasbishop/source/blender/blenkernel/BKE_subsurf.h
===================================================================
--- branches/soc-2010-nicolasbishop/source/blender/blenkernel/BKE_subsurf.h 2010-06-21 17:37:50 UTC (rev 29595)
+++ branches/soc-2010-nicolasbishop/source/blender/blenkernel/BKE_subsurf.h 2010-06-21 19:46:23 UTC (rev 29596)
@@ -68,12 +68,12 @@
#define GRIDELEM_NO_OFFSET(_key) (_key->no ? (3*_key->co + _key->mask) * sizeof(float) : -1)
#define GRIDELEM_INTERP_COUNT(_key) (3*_key->co + _key->mask)
-#define GRIDELEM_AT(_grid, _elem, _key) (struct DMGridData*)(((char*)(_grid)) + (_elem) * GRIDELEM_SIZE(_key))
+#define GRIDELEM_AT(_grid, _elem, _key) ((struct DMGridData*)(((char*)(_grid)) + (_elem) * GRIDELEM_SIZE(_key)))
#define GRIDELEM_INC(_grid, _inc, _key) ((_grid) = GRIDELEM_AT(_grid, _inc, _key))
-#define GRIDELEM_CO(_grid, _key) (float*)(_grid)
-#define GRIDELEM_NO(_grid, _key) (float*)((char*)(_grid) + GRIDELEM_NO_OFFSET(_key))
-#define GRIDELEM_MASK(_grid, _key) (float*)((char*)(_grid) + GRIDELEM_MASK_OFFSET(_key))
+#define GRIDELEM_CO(_grid, _key) ((float*)(_grid))
+#define GRIDELEM_NO(_grid, _key) ((float*)((char*)(_grid) + GRIDELEM_NO_OFFSET(_key)))
+#define GRIDELEM_MASK(_grid, _key) ((float*)((char*)(_grid) + GRIDELEM_MASK_OFFSET(_key)))
#define GRIDELEM_CO_AT(_grid, _elem, _key) GRIDELEM_CO(GRIDELEM_AT(_grid, _elem, _key), _key)
#define GRIDELEM_NO_AT(_grid, _elem, _key) GRIDELEM_NO(GRIDELEM_AT(_grid, _elem, _key), _key)
@@ -82,6 +82,7 @@
struct DerivedMesh *subsurf_make_derived_from_derived(
struct DerivedMesh *dm,
struct SubsurfModifierData *smd,
+ struct GridKey *gridkey,
int useRenderParams, float (*vertCos)[3],
int isFinalCalc, int editMode);
Modified: branches/soc-2010-nicolasbishop/source/blender/blenkernel/intern/multires.c
===================================================================
--- branches/soc-2010-nicolasbishop/source/blender/blenkernel/intern/multires.c 2010-06-21 17:37:50 UTC (rev 29595)
+++ branches/soc-2010-nicolasbishop/source/blender/blenkernel/intern/multires.c 2010-06-21 19:46:23 UTC (rev 29596)
@@ -447,6 +447,15 @@
return multires_dm_create_from_derived(&mmd, 1, dm, ob, 0, 0);
}
+static GridKey *create_gridkey(DerivedMesh *dm)
+{
+ GridKey *gridkey = MEM_callocN(sizeof(GridKey), "create_gridkey");
+
+ GRIDELEM_KEY_INIT(gridkey, 1, 1, 1);
+
+ return gridkey;
+}
+
static DerivedMesh *subsurf_dm_create_local(Object *ob, DerivedMesh *dm, int lvl, int simple, int optimal)
{
SubsurfModifierData smd;
@@ -459,7 +468,7 @@
if(optimal)
smd.flags |= eSubsurfModifierFlag_ControlEdges;
- return subsurf_make_derived_from_derived(dm, &smd, 0, NULL, 0, 0);
+ return subsurf_make_derived_from_derived(dm, &smd, create_gridkey(dm), 0, NULL, 0, 0);
}
static DMGridData **copy_grids(DMGridData **grids, int totgrid, int gridsize, GridKey *gridkey)
@@ -645,8 +654,6 @@
/* TODO: for now we just always have a paintmask layer */
if(!stored_mask_layer) {
stored_mask_layer = CustomData_add_layer(&stored_grids[i], CD_PAINTMASK, CD_CALLOC, NULL, dGridSize*dGridSize*numVerts);
- for(x = 0; x < dGridSize*dGridSize*numVerts; ++x)
- stored_mask_layer[x] = 1;
}
}
Modified: branches/soc-2010-nicolasbishop/source/blender/blenkernel/intern/shrinkwrap.c
===================================================================
--- branches/soc-2010-nicolasbishop/source/blender/blenkernel/intern/shrinkwrap.c 2010-06-21 17:37:50 UTC (rev 29595)
+++ branches/soc-2010-nicolasbishop/source/blender/blenkernel/intern/shrinkwrap.c 2010-06-21 19:46:23 UTC (rev 29596)
@@ -559,7 +559,7 @@
ssmd.subdivType = ME_CC_SUBSURF; //catmull clark
ssmd.levels = smd->subsurfLevels; //levels
- ss_mesh = subsurf_make_derived_from_derived(dm, &ssmd, FALSE, NULL, 0, 0);
+ ss_mesh = subsurf_make_derived_from_derived(dm, &ssmd, NULL, FALSE, NULL, 0, 0);
if(ss_mesh)
{
Modified: branches/soc-2010-nicolasbishop/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- branches/soc-2010-nicolasbishop/source/blender/blenkernel/intern/subsurf_ccg.c 2010-06-21 17:37:50 UTC (rev 29595)
+++ branches/soc-2010-nicolasbishop/source/blender/blenkernel/intern/subsurf_ccg.c 2010-06-21 19:46:23 UTC (rev 29596)
@@ -2644,6 +2644,7 @@
struct DerivedMesh *subsurf_make_derived_from_derived(
struct DerivedMesh *dm,
struct SubsurfModifierData *smd,
+ struct GridKey *gridkey,
int useRenderParams, float (*vertCos)[3],
int isFinalCalc, int editMode)
{
@@ -2652,11 +2653,12 @@
int useSubsurfUv = smd->flags & eSubsurfModifierFlag_SubsurfUv;
int drawInteriorEdges = !(smd->flags & eSubsurfModifierFlag_ControlEdges);
CCGDerivedMesh *result;
- GridKey *gridkey;
- /* TODO */
- gridkey = MEM_callocN(sizeof(GridKey), "subsurf_make_derived_from_derived.GridKey");
- GRIDELEM_KEY_INIT(gridkey, 1, 1, 1);
+ if(!gridkey) {
+ /* create default gridkey */
+ gridkey = MEM_callocN(sizeof(GridKey), "subsurf_make_derived_from_derived.GridKey");
+ GRIDELEM_KEY_INIT(gridkey, 1, 0, 1);
+ }
if(editMode) {
int levels= (smd->modifier.scene)? get_render_subsurf_level(&smd->modifier.scene->r, smd->levels): smd->levels;
Modified: branches/soc-2010-nicolasbishop/source/blender/editors/sculpt_paint/paint_mask.c
===================================================================
--- branches/soc-2010-nicolasbishop/source/blender/editors/sculpt_paint/paint_mask.c 2010-06-21 17:37:50 UTC (rev 29595)
+++ branches/soc-2010-nicolasbishop/source/blender/editors/sculpt_paint/paint_mask.c 2010-06-21 19:46:23 UTC (rev 29596)
@@ -29,8 +29,8 @@
static void set_mask_value(MaskSetMode mode, float *m)
{
- *m = (mode == MASKING_CLEAR ? 1 :
- mode == MASKING_FILL ? 0 :
+ *m = (mode == MASKING_CLEAR ? 0 :
+ mode == MASKING_FILL ? 1 :
mode == MASKING_INVERT ? (1 - *m) :
mode == MASKING_RANDOM ? (float)rand() / RAND_MAX : 0);
}
Modified: branches/soc-2010-nicolasbishop/source/blender/editors/sculpt_paint/sculpt.c
===================================================================
--- branches/soc-2010-nicolasbishop/source/blender/editors/sculpt_paint/sculpt.c 2010-06-21 17:37:50 UTC (rev 29595)
+++ branches/soc-2010-nicolasbishop/source/blender/editors/sculpt_paint/sculpt.c 2010-06-21 19:46:23 UTC (rev 29596)
@@ -745,7 +745,7 @@
avg*= brush_curve_strength(br, len, ss->cache->radius); /* Falloff curve */
if(mask)
- avg*= *mask;
+ avg*= 1 - (*mask);
return avg;
}
@@ -1426,7 +1426,7 @@
if(sculpt_brush_test(&test, vd.co)) {
float fade = tex_strength(ss, brush, vd.co, NULL, test.dist)*bstrength;
- *vd.mask -= fade;
+ *vd.mask += fade;
CLAMP(*vd.mask, 0, 1);
if(vd.mvert) vd.mvert->flag |= ME_VERT_PBVH_UPDATE;
Modified: branches/soc-2010-nicolasbishop/source/blender/gpu/intern/gpu_buffers.c
===================================================================
--- branches/soc-2010-nicolasbishop/source/blender/gpu/intern/gpu_buffers.c 2010-06-21 17:37:50 UTC (rev 29595)
+++ branches/soc-2010-nicolasbishop/source/blender/gpu/intern/gpu_buffers.c 2010-06-21 19:46:23 UTC (rev 29596)
@@ -431,7 +431,7 @@
convert the mask strength to RGB-bytes */
static void mask_to_gpu_colors(unsigned char out[3], float mask_strength)
{
- unsigned char v = (unsigned char)(mask_strength * 128.0f) + 64;
+ unsigned char v = (unsigned char)((1 - mask_strength) * 128.0f) + 64;
out[0] = v;
out[1] = v;
out[2] = v;
Modified: branches/soc-2010-nicolasbishop/source/blender/modifiers/intern/MOD_subsurf.c
===================================================================
--- branches/soc-2010-nicolasbishop/source/blender/modifiers/intern/MOD_subsurf.c 2010-06-21 17:37:50 UTC (rev 29595)
+++ branches/soc-2010-nicolasbishop/source/blender/modifiers/intern/MOD_subsurf.c 2010-06-21 19:46:23 UTC (rev 29596)
@@ -90,7 +90,7 @@
SubsurfModifierData *smd = (SubsurfModifierData*) md;
DerivedMesh *result;
- result = subsurf_make_derived_from_derived(derivedData, smd,
+ result = subsurf_make_derived_from_derived(derivedData, smd, NULL,
useRenderParams, NULL, isFinalCalc, 0);
if(useRenderParams || !isFinalCalc) {
@@ -109,7 +109,7 @@
SubsurfModifierData *smd = (SubsurfModifierData*) md;
DerivedMesh *result;
- result = subsurf_make_derived_from_derived(derivedData, smd, 0,
+ result = subsurf_make_derived_from_derived(derivedData, smd, NULL, 0,
NULL, 0, 1);
return result;
More information about the Bf-blender-cvs
mailing list