From 8d7ec519dff93b04fdec548aeef4b90137d788c8 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 9 Nov 2017 09:46:50 +0100 Subject: [PATCH] Depsgraph: Add missing handlers of node IDs Worst thing was that point density did not pull object into dependency graph, which could lead to wrong render results. --- .../blender/depsgraph/intern/builder/deg_builder_nodes.cc | 8 ++++++++ .../depsgraph/intern/builder/deg_builder_relations.cc | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc index fdbd4100640..7ac94141f39 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc @@ -970,6 +970,14 @@ void DepsgraphNodeBuilder::build_nodetree(bNodeTree *ntree) else if (id_type == ID_IM) { build_image((Image *)id); } + else if (id_type == ID_OB) { + build_object(NULL, (Object *)id); + } + else if (id_type == ID_SCE) { + /* Scenes are used by compositor trees, and handled by render + * pipeline. No need to build dependencies for them here. + */ + } else if (bnode->type == NODE_GROUP) { bNodeTree *group_ntree = (bNodeTree *)id; if ((group_ntree->id.tag & LIB_TAG_DOIT) == 0) { diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index 883a756eef1..3448525a50d 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -1721,6 +1721,14 @@ void DepsgraphRelationBuilder::build_nodetree(bNodeTree *ntree) else if (id_type == ID_IM) { /* nothing for now. */ } + else if (id_type == ID_OB) { + build_object((Object *)id); + } + else if (id_type == ID_SCE) { + /* Scenes are used by compositor trees, and handled by render + * pipeline. No need to build dependencies for them here. + */ + } else if (bnode->type == NODE_GROUP) { bNodeTree *group_ntree = (bNodeTree *)id; if ((group_ntree->id.tag & LIB_TAG_DOIT) == 0) {