Commit: 10df745d2195d4c1904cd141f151ad0c3726df6e
Author: Lukas Tönne
Date:   Mon Apr 20 09:39:08 2015 +0200
Branches: alembic
https://developer.blender.org/rB10df745d2195d4c1904cd141f151ad0c3726df6e

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.

===================================================================

M       source/blender/blenkernel/intern/depsgraph.c

===================================================================

diff --git a/source/blender/blenkernel/intern/depsgraph.c 
b/source/blender/blenkernel/intern/depsgraph.c
index 22f5eff..9a5e315 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) {

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to