diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-06-21 16:56:06 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-06-21 16:57:24 +0300 |
commit | b350edc20750929ee132e5b78fa25221e893ffc3 (patch) | |
tree | 79046c498a2de3d8dcc5d81d71d60c3bd5450012 /source/blender | |
parent | a0f1bd8ed1d9222dfe827562d3bf7138a1098f24 (diff) |
Depsgraph: Add missing relation from proxy group
Transform evaluation does depend on that matrix, but relation was never
in dependency graph. It was not even in the old dependency graph, which
makes me wonder how this thing worked reliably to begin with.
Should fix flickering issue in the render farm.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_nodes.cc | 4 | ||||
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations.cc | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc index 127a3f45929..3354f85bf27 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc @@ -538,10 +538,10 @@ void DepsgraphNodeBuilder::build_object(int base_index, build_gpencil(object->gpd); } /* Proxy object to copy from. */ - if (object->proxy_from) { + if (object->proxy_from != NULL) { build_object(-1, object->proxy_from, DEG_ID_LINKED_INDIRECTLY); } - if (object->proxy_group) { + if (object->proxy_group != NULL) { build_object(-1, object->proxy_group, DEG_ID_LINKED_INDIRECTLY); } /* Object dupligroup. */ diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index ff3c9f9e426..0c7e13197a6 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -596,8 +596,12 @@ void DepsgraphRelationBuilder::build_object(Base *base, Object *object) ComponentKey proxy_transform_key(&object->id, DEG_NODE_TYPE_TRANSFORM); add_relation(ob_transform_key, proxy_transform_key, "Proxy Transform"); } - if (object->proxy_group) { + if (object->proxy_group != NULL) { build_object(NULL, object->proxy_group); + OperationKey proxy_group_ubereval_key(&object->proxy_group->id, + DEG_NODE_TYPE_TRANSFORM, + DEG_OPCODE_TRANSFORM_OBJECT_UBEREVAL); + add_relation(proxy_group_ubereval_key, final_transform_key, "Proxy Group Transform"); } /* Object dupligroup. */ if (object->dup_group != NULL) { |