diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2015-04-20 10:39:08 +0300 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2015-04-20 10:39:08 +0300 |
commit | 10df745d2195d4c1904cd141f151ad0c3726df6e (patch) | |
tree | ce7de74e47e9e605c9b369cf08387ed6c3af745b | |
parent | ee04d04c0c9914bc2bdc221a9171882308893f4f (diff) |
Revert 0d3da1343c16e1be6a6e6b78b77cf8b3354afe07
Disabling group -> duplicator dependencies would in theory make caches
more attractive because the invisible objects don't have to be updated
just because of the group.
However, the viewport and render starts to behave unpredictably without
these updates, because the dupli cache relies in many ways on the
objects it is supposed to override.
-rw-r--r-- | source/blender/blenkernel/intern/depsgraph.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index 22f5effc5ac..9a5e3158234 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -627,8 +627,16 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Main *bmain, Sc * It is not a true dependency, the duplicator does not in any way depend on group objects or data! */ if (ob->transflag & OB_DUPLI) { + /* XXX In theory it would be possible to disable the visibility dependency when dupli groups are cached, + * since we use the results from the cache instead of the generated object data anyway. + * However, the caching system depends a lot on DNA objects currently and behaves unpredictably without this ... + */ +#if 0 bool is_cached = ob->cache_library && ob->cache_library->source_mode == CACHE_LIBRARY_SOURCE_CACHE; if (!is_cached && (ob->transflag & OB_DUPLIGROUP) && ob->dup_group) { +#else + if ((ob->transflag & OB_DUPLIGROUP) && ob->dup_group) { +#endif GroupObject *go; for (go = ob->dup_group->gobject.first; go; go = go->next) { if (go->ob) { |