[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