[Bf-blender-cvs] [10df745] alembic: Revert 0d3da1343c16e1be6a6e6b78b77cf8b3354afe07

Lukas Tönne noreply at git.blender.org
Mon Apr 20 09:42:37 CEST 2015


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) {




More information about the Bf-blender-cvs mailing list