diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-06-25 15:07:14 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-06-25 15:11:55 +0300 |
commit | 38d6e82d1a666c317118a5ebfda39e4a67639e1a (patch) | |
tree | 2cec82b4d04364f44439138e913a7deb31f21e4d /source/blender/blenkernel/intern/effect.c | |
parent | 817bf582c27d6aa2d19027bb97ed3f708cf6347c (diff) |
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.
Diffstat (limited to 'source/blender/blenkernel/intern/effect.c')
-rw-r--r-- | source/blender/blenkernel/intern/effect.c | 8 |
1 files changed, 7 insertions, 1 deletions
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) { |