Fix for bug #8124: dupli particles were not rendering in some cases,

now added dependencies so they are passed to the render engine in
the right order to detect the duplis.
This commit is contained in:
2008-01-29 18:29:14 +00:00
parent fd9db17021
commit 31ecc5cba0
@@ -593,6 +593,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
psys= ob->particlesystem.first;
if(psys) {
ParticleEffectorCache *nec;
GroupObject *go;
for(; psys; psys=psys->next) {
ParticleSettings *part= psys->part;
@@ -605,6 +606,18 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA);
}
if(part->draw_as == PART_DRAW_OB && part->dup_ob) {
node2 = dag_get_node(dag, part->dup_ob);
dag_add_relation(dag, node, node2, DAG_RL_OB_OB);
}
if(part->draw_as == PART_DRAW_GR && part->dup_group) {
for(go=part->dup_group->gobject.first; go; go=go->next) {
node2 = dag_get_node(dag, go->ob);
dag_add_relation(dag, node, node2, DAG_RL_OB_OB);
}
}
if(psys->effectors.first)
psys_end_effectors(psys);
psys_init_effectors(ob,psys->part->eff_group,psys);