Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2008-01-29 21:29:14 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2008-01-29 21:29:14 +0300
commit31ecc5cba00ebcd7eb02fec76c5fbf34825c8995 (patch)
tree7a3366706a0d9ec37ea68210b6fee7d8344b6a9f /source
parentfd9db17021064552cdecbcfadce4255257d71e17 (diff)
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.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/depsgraph.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index e1cecaa7a61..5133381ba9f 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -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);