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
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2018-02-06 00:01:25 +0300
committerDalai Felinto <dfelinto@gmail.com>2018-02-06 00:01:27 +0300
commite75c04898f4938daebfacf1814f554d0320f1dbb (patch)
treec3c2fad97dbf807092803bdebfb7a64905f9872a /source/blender/blenkernel/intern/object_dupli.c
parent354f92a49458795c69f857de927c5b1531cd3618 (diff)
Fix duplicator visibility logic
Cycles old behaviour is to hide the duplicator on rendering at all times. We have since a few months an option in 2.8 to control the duplicator visibility on its own. However when the duplicator is also duplicated, things were not working properly. What we do now is, in addition to the duplicator visibility control, is to not have the source collection of the duplicator object to ever influence its visibility when the object is been duplicated. So if the user wants to reproduce Cycles old behaviour all that is required is to have different collections, one for the original to-be duplicated objects that you hide in for the view layer used in the final render. And another collection with only the first duplicator (which in turn duplicates other duplicators). I know this all may sound confusing, so please just give it a try, it's simpler than it sounds.
Diffstat (limited to 'source/blender/blenkernel/intern/object_dupli.c')
-rw-r--r--source/blender/blenkernel/intern/object_dupli.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/object_dupli.c b/source/blender/blenkernel/intern/object_dupli.c
index 13589866e48..f9f6b0aab40 100644
--- a/source/blender/blenkernel/intern/object_dupli.c
+++ b/source/blender/blenkernel/intern/object_dupli.c
@@ -267,7 +267,7 @@ static void make_child_duplis(const DupliContext *ctx, void *userdata, MakeChild
ViewLayer *view_layer = ctx->view_layer;
for (Base *base = view_layer->object_bases.first; base; base = base->next, baseid++) {
Object *ob = base->object;
- if ((base->flag & BASE_VISIBLED) && ob != obedit && is_child(ob, parent)) {
+ if (ob != obedit && is_child(ob, parent)) {
DupliContext pctx;
copy_dupli_context(&pctx, ctx, ctx->object, NULL, baseid, false);