[Bf-blender-cvs] [1965310] temp_merge_gooseberry_hair: To make gravity a true force vector, multiply by the mass.

Lukas Tönne noreply at git.blender.org
Mon Jan 19 20:48:17 CET 2015


Commit: 196531008416bd7e6c6cf06651fc2b858dd75f2b
Author: Lukas Tönne
Date:   Fri Sep 5 13:02:20 2014 +0200
Branches: temp_merge_gooseberry_hair
https://developer.blender.org/rB196531008416bd7e6c6cf06651fc2b858dd75f2b

To make gravity a true force vector, multiply by the mass.

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

M	source/blender/blenkernel/intern/implicit_eigen.cpp

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

diff --git a/source/blender/blenkernel/intern/implicit_eigen.cpp b/source/blender/blenkernel/intern/implicit_eigen.cpp
index 9bf31a3..19f7934 100644
--- a/source/blender/blenkernel/intern/implicit_eigen.cpp
+++ b/source/blender/blenkernel/intern/implicit_eigen.cpp
@@ -189,6 +189,7 @@ static void cloth_calc_force(ClothModifierData *clmd, lVector &F, lMatrix &dFdX,
 {
 	Cloth *cloth = clmd->clothObject;
 	unsigned int numverts = cloth->numverts;
+	ClothVertex *verts = cloth->verts;
 	float spring_air 	= clmd->sim_parms->Cvi * 0.01f; /* viscosity of air scaled in percent */
 	float gravity[3] = {0,0,0};
 //	lVector diagonal(3*numverts);
@@ -205,13 +206,15 @@ static void cloth_calc_force(ClothModifierData *clmd, lVector &F, lMatrix &dFdX,
 	/* global acceleration (gravitation) */
 	if (clmd->scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) {
 		/* scale gravity force
-		 * XXX this factor looks totally arbitrary ... what is this? lukas_t
+		 * XXX 0.001 factor looks totally arbitrary ... what is this? lukas_t
 		 */
 		mul_v3_v3fl(gravity, clmd->scene->physics_settings.gravity, 0.001f * clmd->sim_parms->effector_weights->global_gravity);
 	}
 	
+	/* initialize force with gravity */
 	for (int i = 0; i < numverts; ++i) {
-		copy_v3_v3(lVector_v3(F, i), gravity);
+		/* gravitational mass same as inertial mass */
+		mul_v3_v3(lVector_v3(F, i), gravity, verts[i].mass);
 	}
 
 #if 0




More information about the Bf-blender-cvs mailing list