[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26652] trunk/blender/source/blender/ blenkernel/intern/anim.c: Fix #20350: particles are offset from emittor in dupli-objects.

Brecht Van Lommel brecht at blender.org
Sat Feb 6 21:59:11 CET 2010


Revision: 26652
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26652
Author:   blendix
Date:     2010-02-06 21:59:09 +0100 (Sat, 06 Feb 2010)

Log Message:
-----------
Fix #20350: particles are offset from emittor in dupli-objects.

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

Modified: trunk/blender/source/blender/blenkernel/intern/anim.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/anim.c	2010-02-06 20:59:08 UTC (rev 26651)
+++ trunk/blender/source/blender/blenkernel/intern/anim.c	2010-02-06 20:59:09 UTC (rev 26652)
@@ -1083,7 +1083,7 @@
 	ParticleCacheKey *cache;
 	float ctime, pa_time, scale = 1.0f;
 	float tmat[4][4], mat[4][4], pamat[4][4], vec[3], size=0.0;
-	float (*obmat)[4], (*oldobmat)[4];
+	float (*obmat)[4], (*oldobmat)[4], recurs_mat[4][4];
 	int lay, a, b, counter, hair = 0;
 	int totpart, totchild, totgroup=0, pa_num;
 
@@ -1099,6 +1099,10 @@
 
 	if(!psys_check_enabled(par, psys))
 		return;
+	
+	/* particles are already in world space, don't want the object mat twice */
+	if(par_space_mat)
+		mul_m4_m4m4(recurs_mat, psys->imat, par_space_mat);
 
 	ctime = bsystem_time(scene, par, (float)scene->r.cfra, 0.0);
 
@@ -1243,7 +1247,7 @@
 					mul_m4_m4m4(tmat, oblist[b]->obmat, pamat);
 					mul_mat3_m4_fl(tmat, size*scale);
 					if(par_space_mat)
-						mul_m4_m4m4(mat, tmat, par_space_mat);
+						mul_m4_m4m4(mat, tmat, recurs_mat);
 					else
 						copy_m4_m4(mat, tmat);
 
@@ -1269,7 +1273,7 @@
 					VECADD(tmat[3], tmat[3], vec);
 
 				if(par_space_mat)
-					mul_m4_m4m4(mat, tmat, par_space_mat);
+					mul_m4_m4m4(mat, tmat, recurs_mat);
 				else
 					copy_m4_m4(mat, tmat);
 





More information about the Bf-blender-cvs mailing list