When using a particle system in a dupli-group, and the group is in the
current scene but not visible, the particles are calculated on wrong
position. This is the recurring trouble with particle calculating... which
doesn't do despgraph stuff.

This commit fixes the error, but it will still display particles *once*
(one draw) on the wrong location. That's a lag in the system I cannot
solve quickly...

Note that this system does work OK when you put the group in another Scene,
or linked from another file. That's what it was coded for...
This commit is contained in:
Ton Roosendaal
2006-09-17 13:12:57 +00:00
parent 3eb8262cb5
commit 0d4f5335bf
2 changed files with 4 additions and 3 deletions

View File

@@ -3307,7 +3307,6 @@ void makeDispListMesh(Object *ob)
mesh_build_data(ob);
if(paf) {
printf("ob %s %d\n", ob->id.name, ob->recalc);
if((paf->flag & PAF_STATIC) || (ob->recalc & OB_RECALC_TIME)==0)
build_particle_system(ob);
}

View File

@@ -1559,8 +1559,10 @@ static pMatrixCache *cache_object_matrices(Object *ob, int start, int end)
/* all objects get tagged recalc that influence this object (does group too) */
/* another hack; while transform you cannot call this, it sets own recalc flags */
if(G.moving==0)
DAG_object_update_flags(G.scene, ob, G.scene->lay);
if(G.moving==0) {
ob->recalc |= OB_RECALC_OB; /* make sure a recalc gets flushed */
DAG_object_update_flags(G.scene, ob, -1);
}
for(G.scene->r.cfra= start; G.scene->r.cfra<=end; G.scene->r.cfra++, mc++) {