[Bf-blender-cvs] [2486346f6f0] master: Fix T94977: muted link is not ignored in eevee

Jacques Lucke noreply at git.blender.org
Tue Jan 18 13:06:58 CET 2022


Commit: 2486346f6f0418d90b714119466921ac1da477e4
Author: Jacques Lucke
Date:   Tue Jan 18 13:06:49 2022 +0100
Branches: master
https://developer.blender.org/rB2486346f6f0418d90b714119466921ac1da477e4

Fix T94977: muted link is not ignored in eevee

Add a preprocessing step that removes all muted links from
the localized node tree.

Differential Revision: https://developer.blender.org/D13864

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

M	source/blender/nodes/shader/node_shader_tree.cc

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

diff --git a/source/blender/nodes/shader/node_shader_tree.cc b/source/blender/nodes/shader/node_shader_tree.cc
index 8f1bb1dcd9a..5c3c5889c98 100644
--- a/source/blender/nodes/shader/node_shader_tree.cc
+++ b/source/blender/nodes/shader/node_shader_tree.cc
@@ -418,6 +418,22 @@ static void ntree_shader_groups_expand_inputs(bNodeTree *localtree)
   }
 }
 
+static void ntree_shader_groups_remove_muted_links(bNodeTree *ntree)
+{
+  LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
+    if (node->type == NODE_GROUP) {
+      if (node->id != nullptr) {
+        ntree_shader_groups_remove_muted_links(reinterpret_cast<bNodeTree *>(node->id));
+      }
+    }
+  }
+  LISTBASE_FOREACH_MUTABLE (bNodeLink *, link, &ntree->links) {
+    if (link->flag & NODE_LINK_MUTED) {
+      nodeRemLink(ntree, link);
+    }
+  }
+}
+
 static void flatten_group_do(bNodeTree *ntree, bNode *gnode)
 {
   LinkNode *group_interface_nodes = nullptr;
@@ -875,6 +891,7 @@ void ntreeGPUMaterialNodes(bNodeTree *localtree,
 
   bNode *output = ntreeShaderOutputNode(localtree, SHD_OUTPUT_EEVEE);
 
+  ntree_shader_groups_remove_muted_links(localtree);
   ntree_shader_groups_expand_inputs(localtree);
 
   ntree_shader_groups_flatten(localtree);



More information about the Bf-blender-cvs mailing list