Commit: 6346a50405e25f99b91160e2f79f43fdb4f64831
Author: Lukas Tönne
Date: Thu Sep 4 15:05:12 2014 +0200
Branches: hair_immediate_fixes
https://developer.blender.org/rB6346a50405e25f99b91160e2f79f43fdb4f64831
Fix for collision response, the impulse response was far too small.
===================================================================
M source/blender/blenkernel/intern/collision.c
M source/blender/blenkernel/intern/implicit.c
===================================================================
diff --git a/source/blender/blenkernel/intern/collision.c
b/source/blender/blenkernel/intern/collision.c
index f1b0908..c02f9dc 100644
--- a/source/blender/blenkernel/intern/collision.c
+++ b/source/blender/blenkernel/intern/collision.c
@@ -1020,7 +1020,7 @@ bool cloth_points_collpair_response(ClothModifierData
*clmd, CollisionModifierDa
repulse = -margin_distance / dt + dot_v3v3(v1,
collpair->normal);
if (margin_distance < -epsilon2) {
- bounce = -v_nor_new + v_nor_old * restitution;
+ bounce = -(v_nor_new + v_nor_old * restitution);
mul_v3_v3fl(r_impulse, collpair->normal,
max_ff(repulse, bounce));
}
else {
diff --git a/source/blender/blenkernel/intern/implicit.c
b/source/blender/blenkernel/intern/implicit.c
index 47c5bc07..356c887 100644
--- a/source/blender/blenkernel/intern/implicit.c
+++ b/source/blender/blenkernel/intern/implicit.c
@@ -1992,13 +1992,10 @@ static void setup_constraint_matrix(ClothModifierData
*clmd, ColliderContacts *c
continue;
/* calculate collision response */
-// if (!cloth_points_collpair_response(clmd, ct->collmd,
ct->ob->pd, collpair, dt, impulse))
-// continue;
- cloth_points_collpair_response(clmd, ct->collmd,
ct->ob->pd, collpair, dt, impulse);
+ if (!cloth_points_collpair_response(clmd, ct->collmd,
ct->ob->pd, collpair, dt, impulse))
+ continue;
-// add_v3_v3(z[v], impulse);
- negate_v3_v3(z[v], V[v]);
-// sub_v3_v3(z[v], verts[v].v);
+ add_v3_v3(z[v], impulse);
/* modify S to enforce velocity constraint in normal
direction */
mul_fvectorT_fvector(cmat, collpair->normal,
collpair->normal);
@@ -2007,7 +2004,8 @@ static void setup_constraint_matrix(ClothModifierData
*clmd, ColliderContacts *c
BKE_sim_debug_data_add_dot(clmd->debug_data,
collpair->pa, 0, 1, 0, "collision", hash_collpair(936, collpair));
BKE_sim_debug_data_add_dot(clmd->debug_data,
collpair->pb, 1, 0, 0, "collision", hash_collpair(937, collpair));
BKE_sim_debug_data_add_line(clmd->debug_data,
collpair->pa, collpair->pb, 0.7, 0.7, 0.7, "collision", hash_collpair(938,
collpair));
- {
+
+ { /* DEBUG */
// float nor[3];
// mul_v3_v3fl(nor, collpair->normal,
collpair->distance);
// BKE_sim_debug_data_add_vector(clmd->debug_data,
collpair->pb, nor, 1, 1, 0, "collision", hash_collpair(939, collpair));
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs