[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15734] trunk/blender/source/blender/ blenkernel/intern/softbody.c: soft body bug fix own finding

Jens Ole Wund (bjornmose) bjornmose at gmx.net
Thu Jul 24 14:28:15 CEST 2008


Revision: 15734
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15734
Author:   bjornmose
Date:     2008-07-24 14:27:31 +0200 (Thu, 24 Jul 2008)

Log Message:
-----------
soft body bug fix own finding
left overs from new particles
-wind and force did not work if aero or edge collision was activated.
-force field had flipped sign compared to particles
tsk who thinks a attractive force should negative sign? well... i am passionless with that.
-adapted effect of wind and fields on softbodies such that softbody "particles" and particle "particles" behave consistently
note! 
effect of wind is 1/25 compared to before   
other forces 1/10

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/softbody.c

Modified: trunk/blender/source/blender/blenkernel/intern/softbody.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/softbody.c	2008-07-24 09:23:13 UTC (rev 15733)
+++ trunk/blender/source/blender/blenkernel/intern/softbody.c	2008-07-24 12:27:31 UTC (rev 15734)
@@ -1548,7 +1548,7 @@
 				/* note we don't use sb->mediafrict but use sb->aeroedge for magnitude of effect*/ 
 				if(sb->aeroedge){
 					float vel[3],sp[3],pr[3],force[3];
-					float f,windfactor  = 250.0f;   
+					float f,windfactor  = 10.0f;   
 					/*see if we have wind*/
 					if(do_effector) {
 						float speed[3]={0.0f,0.0f,0.0f};
@@ -2034,7 +2034,7 @@
 	BodySpring *bs;	
 	ListBase *do_effector;
 	float iks, ks, kd, gravity;
-	float fieldfactor = 1000.0f, windfactor  = 250.0f;   
+	float fieldfactor = -100.0f, windfactor  = 10.0f;   
 	float tune = sb->ballstiff;
 	int a, b,  do_deflector,do_selfcollision,do_springcollision,do_aero;
 
@@ -2053,7 +2053,6 @@
 	
 	/* check conditions for various options */
 	do_deflector= query_external_colliders(ob);
-	do_effector= pdInitEffectors(ob,NULL);
 	do_selfcollision=((ob->softflag & OB_SB_EDGES) && (sb->bspring)&& (ob->softflag & OB_SB_SELF));
 	do_springcollision=do_deflector && (ob->softflag & OB_SB_EDGES) &&(ob->softflag & OB_SB_EDGECOLL);
 	do_aero=((sb->aeroedge)&& (ob->softflag & OB_SB_EDGES));
@@ -2061,9 +2060,10 @@
 	iks  = 1.0f/(1.0f-sb->inspring)-1.0f ;/* inner spring constants function */
 	bproot= sb->bpoint; /* need this for proper spring addressing */
 	
+	if (do_springcollision || do_aero)  scan_for_ext_spring_forces(ob,timenow);
+	/* after spring scan because it uses Effoctors too */
+	do_effector= pdInitEffectors(ob,NULL);
 
-	
-	if (do_springcollision || do_aero)  scan_for_ext_spring_forces(ob,timenow);
 	if (do_deflector) {
 		float defforce[3];
 		do_deflector = sb_detect_aabb_collisionCached(defforce,ob->lay,ob,timenow);





More information about the Bf-blender-cvs mailing list