From 38d6e82d1a666c317118a5ebfda39e4a67639e1a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 25 Jun 2018 14:07:14 +0200 Subject: Fix use of non-evaluated collision and effector objects. Only enabled objects in the view layer should be used, while temporarily hidden objects should still have an effect. --- source/blender/blenkernel/intern/effect.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source/blender/blenkernel/intern/effect.c') diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index 2894ff4f1e7..a3a766b2d1d 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -228,11 +228,17 @@ ListBase *BKE_effector_relations_create( ViewLayer *view_layer, Collection *collection) { - const bool for_render = (DEG_get_mode(depsgraph) == DAG_EVAL_RENDER); Base *base = BKE_collection_or_layer_objects(NULL, NULL, view_layer, collection); + const bool for_render = (DEG_get_mode(depsgraph) == DAG_EVAL_RENDER); + const int base_flag = (for_render) ? BASE_ENABLED_RENDER : BASE_ENABLED_VIEWPORT; + ListBase *relations = MEM_callocN(sizeof(ListBase), "effector relations"); for (; base; base = base->next) { + if (!(base->flag & base_flag)) { + continue; + } + Object *ob = base->object; if (ob->pd && ob->pd->forcefield) { -- cgit v1.2.3