[Bf-blender-cvs] [f6924b23bf1] fracture_modifier: fix for loading bakes from official build (single objects)

Martin Felke noreply at git.blender.org
Mon May 22 19:29:07 CEST 2017


Commit: f6924b23bf125087f467de904ce9e6665913fc9e
Author: Martin Felke
Date:   Mon May 22 19:28:30 2017 +0200
Branches: fracture_modifier
https://developer.blender.org/rBf6924b23bf125087f467de904ce9e6665913fc9e

fix for loading bakes from official build (single objects)

also reverted from exact volume calculation of shards to bbox (faster)
removed some development printouts

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

M	source/blender/blenkernel/intern/rigidbody.c
M	source/blender/modifiers/intern/MOD_fracture.c

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

diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c
index ff6fb824d55..30b57de5e75 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -344,6 +344,8 @@ float BKE_rigidbody_calc_volume(DerivedMesh *dm, RigidBodyOb *rbo)
 		 * NOTE: this may overestimate the volume, but other methods are overkill
 		 */
 		case RB_SHAPE_BOX:
+		case RB_SHAPE_CONVEXH:
+		case RB_SHAPE_TRIMESH:
 			volume = size[0] * size[1] * size[2];
 			if (size[0] == 0) {
 				volume = size[1] * size[2];
@@ -356,7 +358,7 @@ float BKE_rigidbody_calc_volume(DerivedMesh *dm, RigidBodyOb *rbo)
 			}
 			break;
 
-		case RB_SHAPE_CONVEXH:
+		/*case RB_SHAPE_CONVEXH:
 		case RB_SHAPE_TRIMESH:
 		{
 			MVert *mvert = dm->getVertArray(dm);
@@ -369,8 +371,8 @@ float BKE_rigidbody_calc_volume(DerivedMesh *dm, RigidBodyOb *rbo)
 
 			if (volume == 0.0f)
 				volume = 0.00001f;
-			break;
-		}
+			break;*/
+		//}
 
 #if 0 // XXX: not defined yet
 		case RB_SHAPE_COMPOUND:
@@ -3306,7 +3308,7 @@ void BKE_rigidbody_update_ob_array(RigidBodyWorld *rbw, bool do_bake_correction)
 			continue;
 		}
 
-		if (do_bake_correction && (ob->rigidbody_object->meshisland_index != i)) {
+		if (do_bake_correction && (ob->rigidbody_object->meshisland_index != i) && n > 0) {
 			//pick the correct object in case it doesnt match (when we are baked
 			if (ob->rigidbody_object->meshisland_index < l && ob->rigidbody_object->meshisland_index > -1) {
 				ob = temp_obj[ob->rigidbody_object->meshisland_index];
@@ -3958,7 +3960,7 @@ static bool do_update_modifier(Scene* scene, Object* ob, RigidBodyWorld *rbw, bo
 			if (rebuild || is_zero_m4(fmd->passive_parent_mat))
 			{
 				copy_m4_m4(fmd->passive_parent_mat, ob->obmat);
-				print_m4("Passivemat: \n", fmd->passive_parent_mat);
+				//print_m4("Passivemat: \n", fmd->passive_parent_mat);
 			}
 
 			//print_m4("Obmat: \n", ob->obmat);
@@ -4419,6 +4421,7 @@ static bool do_sync_modifier(ModifierData *md, Object *ob, RigidBodyWorld *rbw,
 				}
 
 				if (ob->rigidbody_object->type == RBO_TYPE_ACTIVE) {
+#if 0
 					if (rbo->type == RBO_TYPE_PASSIVE)
 					{
 						printf("PASSIVE: %s\n", mi->name);
@@ -4426,6 +4429,7 @@ static bool do_sync_modifier(ModifierData *md, Object *ob, RigidBodyWorld *rbw,
 							printf("KINEMATIC: %s\n", mi->name);
 						}
 					}
+#endif
 					rigidbody_passive_fake_parenting(fmd, ob, rbo, imat);
 				}
 
diff --git a/source/blender/modifiers/intern/MOD_fracture.c b/source/blender/modifiers/intern/MOD_fracture.c
index c1fe2bbb84d..497b5897bec 100644
--- a/source/blender/modifiers/intern/MOD_fracture.c
+++ b/source/blender/modifiers/intern/MOD_fracture.c
@@ -2411,7 +2411,7 @@ static void halve(FractureModifierData *rmd, Object *ob, int minsize, BMesh **bm
 	orig_mod = MEM_callocN(sizeof(BMVert *) * bm_old->totvert - new_count, "orig_mod");
 	mesh_separate_selected(&bm_old, &bm_new, orig_old, &orig_new, &orig_mod);
 
-	printf("Old New: %d %d\n", bm_old->totvert, bm_new->totvert);
+	//printf("Old New: %d %d\n", bm_old->totvert, bm_new->totvert);
 	if ((bm_old->totvert <= minsize && bm_old->totvert > 0) || (bm_new->totvert == 0)) {
 		mesh_separate_loose_partition(rmd, ob, bm_old, orig_mod, dm, id);
 		separated = true;
@@ -2439,7 +2439,7 @@ static void halve(FractureModifierData *rmd, Object *ob, int minsize, BMesh **bm
 
 static void mesh_separate_loose(FractureModifierData *rmd, Object *ob, DerivedMesh *dm, ShardID id)
 {
-	int minsize = 100;
+	int minsize = 500;
 	BMesh *bm_work;
 	BMVert *vert, **orig_start;
 	BMIter iter;




More information about the Bf-blender-cvs mailing list