[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13269] trunk/blender/source/blender:

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Jan 17 13:02:15 CET 2008


Revision: 13269
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13269
Author:   blendix
Date:     2008-01-17 13:02:15 +0100 (Thu, 17 Jan 2008)

Log Message:
-----------

Bugfix for "ghost feathers" trailing one frame behind the character.
The derivedmesh and particle system needed to be evaluated at render
level before creating dupliparticles.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/object.c
    trunk/blender/source/blender/render/intern/source/convertblender.c

Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c	2008-01-17 11:07:45 UTC (rev 13268)
+++ trunk/blender/source/blender/blenkernel/intern/object.c	2008-01-17 12:02:15 UTC (rev 13269)
@@ -2199,6 +2199,7 @@
 
 			if(ob->particlesystem.first) {
 				ParticleSystem *tpsys, *psys;
+				DerivedMesh *dm;
 				
 				psys= ob->particlesystem.first;
 				while(psys) {
@@ -2215,6 +2216,14 @@
 					else
 						psys= psys->next;
 				}
+
+				if(G.rendering && ob->transflag & OB_DUPLIPARTS) {
+					/* this is to make sure we get render level duplis in groups:
+					 * the derivedmesh must be created before init_render_mesh,
+					 * since object_duplilist does dupliparticles before that */
+					dm = mesh_create_derived_render(ob, CD_MASK_BAREMESH|CD_MASK_MTFACE|CD_MASK_MCOL);
+					dm->release(dm);
+				}
 			}
 		}
 

Modified: trunk/blender/source/blender/render/intern/source/convertblender.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/convertblender.c	2008-01-17 11:07:45 UTC (rev 13268)
+++ trunk/blender/source/blender/render/intern/source/convertblender.c	2008-01-17 12:02:15 UTC (rev 13269)
@@ -4136,18 +4136,11 @@
 		return;
 	
 	if(ob->transflag & OB_DUPLIPARTS) {
-		DerivedMesh *dm;
-
 		for(psys=ob->particlesystem.first; psys; psys=psys->next)
 			if(enable)
 				psys_render_set(ob, psys, re->viewmat, re->winmat, re->winx, re->winy);
 			else
 				psys_render_restore(ob, psys);
-
-		if(enable) {
-			dm = mesh_create_derived_render(ob,	CD_MASK_BAREMESH|CD_MASK_MTFACE|CD_MASK_MCOL);
-			dm->release(dm);
-		}
 	}
 
 	if(ob->dup_group==NULL) return;





More information about the Bf-blender-cvs mailing list