[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41933] branches/bmesh/blender: svn merge -r41926:41932 ^/trunk/blender
Campbell Barton
ideasman42 at gmail.com
Wed Nov 16 20:57:21 CET 2011
Revision: 41933
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41933
Author: campbellbarton
Date: 2011-11-16 19:57:20 +0000 (Wed, 16 Nov 2011)
Log Message:
-----------
svn merge -r41926:41932 ^/trunk/blender
Revision Links:
--------------
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41926
Modified Paths:
--------------
branches/bmesh/blender/source/blender/blenkernel/BKE_dynamicpaint.h
branches/bmesh/blender/source/blender/blenkernel/intern/BME_Customdata.c
branches/bmesh/blender/source/blender/blenkernel/intern/BME_mesh.c
branches/bmesh/blender/source/blender/blenkernel/intern/customdata.c
branches/bmesh/blender/source/blender/blenkernel/intern/dynamicpaint.c
branches/bmesh/blender/source/blender/blenlib/intern/BLI_cellalloc.c
branches/bmesh/blender/source/blender/blenlib/intern/BLI_ghash.c
branches/bmesh/blender/source/blender/blenlib/intern/edgehash.c
branches/bmesh/blender/source/blender/bmesh/intern/bmesh_mesh.c
branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c
branches/bmesh/blender/source/blender/bmesh/intern/bmesh_walkers.c
branches/bmesh/blender/source/blender/bmesh/operators/createops.c
branches/bmesh/blender/source/blender/editors/animation/anim_channels_edit.c
branches/bmesh/blender/source/blender/editors/animation/anim_markers.c
branches/bmesh/blender/source/blender/editors/mesh/knifetool.c
branches/bmesh/blender/source/blender/editors/space_action/action_select.c
branches/bmesh/blender/source/blender/editors/space_clip/tracking_ops.c
branches/bmesh/blender/source/blender/editors/space_file/file_ops.c
branches/bmesh/blender/source/blender/editors/space_graph/graph_select.c
branches/bmesh/blender/source/blender/editors/space_info/info_report.c
branches/bmesh/blender/source/blender/editors/space_nla/nla_select.c
branches/bmesh/blender/source/blender/editors/space_node/node_select.c
branches/bmesh/blender/source/blender/editors/space_sequencer/sequencer_select.c
branches/bmesh/blender/source/blender/editors/uvedit/uvedit_ops.c
branches/bmesh/blender/source/blender/imbuf/intern/moviecache.c
branches/bmesh/blender/source/blender/makesdna/DNA_dynamicpaint_types.h
branches/bmesh/blender/source/blender/makesrna/intern/rna_dynamicpaint.c
Property Changed:
----------------
branches/bmesh/blender/
branches/bmesh/blender/release/
branches/bmesh/blender/source/blender/editors/space_outliner/
Property changes on: branches/bmesh/blender
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/blender:39992-41926
+ /trunk/blender:39992-41932
Property changes on: branches/bmesh/blender/release
___________________________________________________________________
Modified: svn:mergeinfo
- /trunk/blender/release:31524-41926
+ /trunk/blender/release:31524-41932
Modified: branches/bmesh/blender/source/blender/blenkernel/BKE_dynamicpaint.h
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/BKE_dynamicpaint.h 2011-11-16 19:31:42 UTC (rev 41932)
+++ branches/bmesh/blender/source/blender/blenkernel/BKE_dynamicpaint.h 2011-11-16 19:57:20 UTC (rev 41933)
@@ -46,6 +46,7 @@
float height;
float velocity;
+ float brush_isect;
short state;
} PaintWavePoint;
@@ -82,6 +83,7 @@
#define DPAINT_PAINT_NEW 2
/* PaintWavePoint state */
+#define DPAINT_WAVE_ISECT_CHANGED -1
#define DPAINT_WAVE_NONE 0
#define DPAINT_WAVE_OBSTACLE 1
#define DPAINT_WAVE_REFLECT_ONLY 2
Modified: branches/bmesh/blender/source/blender/blenkernel/intern/BME_Customdata.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/BME_Customdata.c 2011-11-16 19:31:42 UTC (rev 41932)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/BME_Customdata.c 2011-11-16 19:57:20 UTC (rev 41933)
@@ -87,7 +87,7 @@
if(data->totlayer){
/*alloc memory*/
data->layers = MEM_callocN(sizeof(BME_CustomDataLayer)*data->totlayer, "BMesh Custom Data Layers");
- data->pool = BLI_mempool_create(data->totsize, initalloc, initalloc, 1);
+ data->pool = BLI_mempool_create(data->totsize, initalloc, initalloc, TRUE);
/*initialize layer data*/
for(i=0; i < BME_CD_NUMTYPES; i++){
if(init->layout[i]){
Modified: branches/bmesh/blender/source/blender/blenkernel/intern/BME_mesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/BME_mesh.c 2011-11-16 19:31:42 UTC (rev 41932)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/BME_mesh.c 2011-11-16 19:57:20 UTC (rev 41933)
@@ -56,10 +56,10 @@
/*allocate the structure*/
BME_Mesh *bm = MEM_callocN(sizeof(BME_Mesh),"BMesh");
/*allocate the memory pools for the mesh elements*/
- bm->vpool = BLI_mempool_create(sizeof(BME_Vert), allocsize[0], allocsize[0], 1, 0);
- bm->epool = BLI_mempool_create(sizeof(BME_Edge), allocsize[1], allocsize[1], 1, 0);
- bm->lpool = BLI_mempool_create(sizeof(BME_Loop), allocsize[2], allocsize[2], 1, 0);
- bm->ppool = BLI_mempool_create(sizeof(BME_Poly), allocsize[3], allocsize[3], 1, 0);
+ bm->vpool = BLI_mempool_create(sizeof(BME_Vert), allocsize[0], allocsize[0], TRUE, FALSE);
+ bm->epool = BLI_mempool_create(sizeof(BME_Edge), allocsize[1], allocsize[1], TRUE, FALSE);
+ bm->lpool = BLI_mempool_create(sizeof(BME_Loop), allocsize[2], allocsize[2], TRUE, FALSE);
+ bm->ppool = BLI_mempool_create(sizeof(BME_Poly), allocsize[3], allocsize[3], TRUE, FALSE);
return bm;
}
/*
Modified: branches/bmesh/blender/source/blender/blenkernel/intern/customdata.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/customdata.c 2011-11-16 19:31:42 UTC (rev 41932)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/customdata.c 2011-11-16 19:57:20 UTC (rev 41933)
@@ -2360,7 +2360,7 @@
/* If there are no layers, no pool is needed just yet */
if (data->totlayer) {
- data->pool = BLI_mempool_create(data->totsize, allocsize, allocsize, 1, 0);
+ data->pool = BLI_mempool_create(data->totsize, allocsize, allocsize, TRUE, FALSE);
}
}
Modified: branches/bmesh/blender/source/blender/blenkernel/intern/dynamicpaint.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/dynamicpaint.c 2011-11-16 19:31:42 UTC (rev 41932)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/dynamicpaint.c 2011-11-16 19:57:20 UTC (rev 41933)
@@ -98,7 +98,8 @@
/* paint effect default movement per frame in global units */
#define EFF_MOVEMENT_PER_FRAME 0.05f
/* initial wave time factor */
-#define WAVE_TIME_FAC 0.1
+#define WAVE_TIME_FAC (1.0f/24.f)
+#define WAVE_INIT_SIZE 5.0f
/* drying limits */
#define MIN_WETNESS 0.001f
/* dissolve macro */
@@ -149,6 +150,7 @@
int *s_num; /* num of realCoord samples */
Vec3f *realCoord; /* current pixel center world-space coordinates for each sample
* ordered as (s_pos+s_num)*/
+ Bounds3D mesh_bounds;
/* adjacency info */
BakeNeighPoint *bNeighs; /* current global neighbour distances and directions, if required */
@@ -969,7 +971,7 @@
surface->color_spread_speed = 1.0f;
surface->shrink_speed = 1.0f;
- surface->wave_damping = 0.05f;
+ surface->wave_damping = 0.04f;
surface->wave_speed = 1.0f;
surface->wave_timescale = 1.0f;
surface->wave_spring = 0.20f;
@@ -1037,6 +1039,7 @@
brush->particle_radius = 0.2f;
brush->particle_smooth = 0.05f;
+ brush->wave_type = MOD_DPAINT_WAVEB_CHANGE;
brush->wave_factor = 1.0f;
brush->wave_clamp = 0.0f;
brush->smudge_strength = 0.3f;
@@ -2070,7 +2073,6 @@
PaintUVPoint *tempPoints = NULL;
Vec3f *tempWeights = NULL;
- /* MVert *mvert = NULL; */ /* UNUSED */
MFace *mface = NULL;
MTFace *tface = NULL;
Bounds2D *faceBB = NULL;
@@ -2081,7 +2083,6 @@
if (surface->format != MOD_DPAINT_SURFACE_F_IMAGESEQ) return setError(canvas, "Can't bake non-\"image sequence\" formats.");
numOfFaces = dm->getNumFaces(dm);
- /* mvert = dm->getVertArray(dm); */ /* UNUSED */
mface = dm->getTessFaceArray(dm);
/* get uv layer */
@@ -2859,7 +2860,12 @@
/* applies given brush intersection value for wave surface */
static void dynamicPaint_mixWaveHeight(PaintWavePoint *wPoint, DynamicPaintBrushSettings *brush, float isect_height)
{
+ float isect_change = isect_height - wPoint->brush_isect;
int hit = 0;
+ /* intersection marked regardless of brush type or hit */
+ wPoint->brush_isect = isect_height;
+ wPoint->state = DPAINT_WAVE_ISECT_CHANGED;
+
isect_height *= brush->wave_factor;
/* determine hit depending on wave_factor */
@@ -2878,6 +2884,10 @@
wPoint->velocity = isect_height;
else if (brush->wave_type == MOD_DPAINT_WAVEB_REFLECT)
wPoint->state = DPAINT_WAVE_REFLECT_ONLY;
+ else if (brush->wave_type == MOD_DPAINT_WAVEB_CHANGE) {
+ if (isect_change < 0.0f)
+ wPoint->height += isect_change*brush->wave_factor;
+ }
}
}
@@ -4292,6 +4302,9 @@
float dt, min_dist, damp_factor;
float wave_speed = surface->wave_speed;
double average_dist = 0.0f;
+ Bounds3D *mb = &sData->bData->mesh_bounds;
+ float canvas_size = MAX3((mb->max[0]-mb->min[0]), (mb->max[1]-mb->min[1]), (mb->max[2]-mb->min[2]));
+ float wave_scale = WAVE_INIT_SIZE/canvas_size;
/* allocate memory */
PaintWavePoint *prevPoint = MEM_mallocN(sData->total_points*sizeof(PaintWavePoint), "Temp previous points for wave simulation");
@@ -4307,11 +4320,11 @@
average_dist += bNeighs[sData->adj_data->n_index[index]+i].dist;
}
}
- average_dist /= sData->adj_data->total_targets;
+ average_dist *= wave_scale/sData->adj_data->total_targets;
/* determine number of required steps */
steps = (int)ceil((WAVE_TIME_FAC*timescale*surface->wave_timescale) / (average_dist/wave_speed/3));
- CLAMP(steps, 1, 15);
+ CLAMP(steps, 1, 20);
timescale /= steps;
/* apply simulation values for final timescale */
@@ -4332,12 +4345,12 @@
int numOfN = 0, numOfRN = 0;
int i;
- if (wPoint->state) continue;
+ if (wPoint->state > 0) continue;
/* calculate force from surrounding points */
for (i=0; i<numOfNeighs; i++) {
int n_index = sData->adj_data->n_index[index]+i;
- float dist = bNeighs[n_index].dist;
+ float dist = bNeighs[n_index].dist*wave_scale;
PaintWavePoint *tPoint = &prevPoint[sData->adj_data->n_target[n_index]];
if (!dist || tPoint->state>0) continue;
@@ -4381,6 +4394,10 @@
#pragma omp parallel for schedule(static)
for (index = 0; index < sData->total_points; index++) {
PaintWavePoint *wPoint = &((PaintWavePoint*)sData->type_data)[index];
+ /* if there wasnt any brush intersection, clear isect height */
+ if (wPoint->state == DPAINT_WAVE_NONE) {
+ wPoint->brush_isect = 0.0f;
+ }
wPoint->state = DPAINT_WAVE_NONE;
}
@@ -4594,10 +4611,11 @@
/*
* Make a transformed copy of canvas derived mesh vertices to avoid recalculation.
*/
- #pragma omp parallel for schedule(static)
+ bData->mesh_bounds.valid = 0;
for (index=0; index<canvasNumOfVerts; index++) {
copy_v3_v3(canvas_verts[index].v, mvert[index].co);
mul_m4_v3(ob->obmat, canvas_verts[index].v);
+ boundInsert(&bData->mesh_bounds, canvas_verts[index].v);
}
/*
Modified: branches/bmesh/blender/source/blender/blenlib/intern/BLI_cellalloc.c
===================================================================
--- branches/bmesh/blender/source/blender/blenlib/intern/BLI_cellalloc.c 2011-11-16 19:31:42 UTC (rev 41932)
+++ branches/bmesh/blender/source/blender/blenlib/intern/BLI_cellalloc.c 2011-11-16 19:57:20 UTC (rev 41933)
@@ -99,7 +99,7 @@
}
if (!pools[slot]) {
- pools[slot] = BLI_mempool_create(slot, 1, 128, 1, 0);
+ pools[slot] = BLI_mempool_create(slot, 1, 128, TRUE, FALSE);
}
memh = BLI_mempool_alloc(pools[slot]);
Modified: branches/bmesh/blender/source/blender/blenlib/intern/BLI_ghash.c
===================================================================
--- branches/bmesh/blender/source/blender/blenlib/intern/BLI_ghash.c 2011-11-16 19:31:42 UTC (rev 41932)
+++ branches/bmesh/blender/source/blender/blenlib/intern/BLI_ghash.c 2011-11-16 19:57:20 UTC (rev 41933)
@@ -60,7 +60,7 @@
GHash *gh= MEM_mallocN(sizeof(*gh), info);
gh->hashfp= hashfp;
gh->cmpfp= cmpfp;
- gh->entrypool = BLI_mempool_create(sizeof(Entry), 64, 64, 1, 0);
+ gh->entrypool = BLI_mempool_create(sizeof(Entry), 64, 64, TRUE, FALSE);
gh->cursize= 0;
gh->nentries= 0;
Modified: branches/bmesh/blender/source/blender/blenlib/intern/edgehash.c
===================================================================
--- branches/bmesh/blender/source/blender/blenlib/intern/edgehash.c 2011-11-16 19:31:42 UTC (rev 41932)
+++ branches/bmesh/blender/source/blender/blenlib/intern/edgehash.c 2011-11-16 19:57:20 UTC (rev 41933)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list