[Bf-blender-cvs] [23a9504df1e] fracture_modifier: small fixes for acceleration map

Martin Felke noreply at git.blender.org
Fri Dec 29 02:07:38 CET 2017


Commit: 23a9504df1eb22c811eb466cdc3d75f301b58cd2
Author: Martin Felke
Date:   Fri Dec 29 02:07:29 2017 +0100
Branches: fracture_modifier
https://developer.blender.org/rB23a9504df1eb22c811eb466cdc3d75f301b58cd2

small fixes for acceleration map

===================================================================

M	source/blender/blenkernel/intern/fracture.c
M	source/blender/blenkernel/intern/pointcache.c

===================================================================

diff --git a/source/blender/blenkernel/intern/fracture.c b/source/blender/blenkernel/intern/fracture.c
index 751ea619f35..6092c396212 100644
--- a/source/blender/blenkernel/intern/fracture.c
+++ b/source/blender/blenkernel/intern/fracture.c
@@ -3677,9 +3677,6 @@ void BKE_update_acceleration_map(FractureModifierData *fmd, MeshIsland* mi, Obje
 	{
 		weight = (acc - fmd->min_acceleration) / denom;
 
-		if (ctime == mi->start_frame)
-			weight = 0.0f;
-
 		for (i = 0; i < mi->vertex_count; i++)
 		{
 			dv = dvert + mi->vertex_indices[i];
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c
index 14c481105fe..f29cde5f626 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -1347,12 +1347,18 @@ static int  ptcache_rigidbody_write(int index, void *rb_v, void **data, int cfra
 					if (cfra >= mi->start_frame + 1)
 					{
 						lastvel = mi->acc_sequence[cfra - mi->start_frame - 1];
+						acc = fabsf(vel - lastvel);
+						BKE_update_acceleration_map(fmd, mi, ob, cfra, acc);
 					}
+					else {
+						BKE_update_acceleration_map(fmd, mi, ob, cfra, 0.0f);
 
-					acc = fabsf(vel - lastvel);
+					}
 
-					mi->acc_sequence[cfra - mi->start_frame] = acc;
-					BKE_update_acceleration_map(fmd, mi, ob, cfra, acc);
+					mi->acc_sequence[cfra - mi->start_frame] = vel;
+				}
+				else {
+					BKE_update_acceleration_map(fmd, mi, ob, cfra, 0.0f);
 				}
 			}
 
@@ -1446,9 +1452,22 @@ static void ptcache_rigidbody_read(int index, void *rb_v, void **data, float cfr
 				int frame = (int)floor(cfra);
 				mi = find_meshisland(fmd, rbo->meshisland_index);
 				if (frame >= mi->start_frame && frame <= mi->frame_count) {
-					float acc = mi->acc_sequence[frame - mi->start_frame];
-					//printf("acc %f\n", acc);
-					BKE_update_acceleration_map(fmd, mi, ob, frame, acc);
+					float vel = mi->acc_sequence[frame - mi->start_frame];
+					float lastvel = 0.0f;
+					float acc = 0.0f;
+
+					if (frame >= mi->start_frame + 1)
+					{
+						lastvel = mi->acc_sequence[frame - mi->start_frame - 1];
+						acc = fabsf(vel - lastvel);
+						BKE_update_acceleration_map(fmd, mi, ob, frame, acc);
+					}
+					else {
+						BKE_update_acceleration_map(fmd, mi, ob, frame, 0.0f);
+					}
+				}
+				else {
+					BKE_update_acceleration_map(fmd, mi, ob, frame, 0.0f);
 				}
 			}
 		}



More information about the Bf-blender-cvs mailing list