[Bf-blender-cvs] [c2e21b23296] blender-v2.82-release: Fix T71374 EEVEE: Fix Node group socket not converting inputs as in Cycles

Clément Foucault noreply at git.blender.org
Thu Jan 23 21:41:46 CET 2020


Commit: c2e21b23296335bbab6e9acbb59518929efcc8e7
Author: Clément Foucault
Date:   Thu Jan 23 17:40:40 2020 +0100
Branches: blender-v2.82-release
https://developer.blender.org/rBc2e21b23296335bbab6e9acbb59518929efcc8e7

Fix T71374 EEVEE: Fix Node group socket not converting inputs as in Cycles

Pretty straight Forward. Create a temp node during sockets expansion to
force the conversion to float.

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

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

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

diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c
index dfbc49577e3..612cd0c9293 100644
--- a/source/blender/nodes/shader/node_shader_tree.c
+++ b/source/blender/nodes/shader/node_shader_tree.c
@@ -332,7 +332,16 @@ static void ntree_shader_groups_expand_inputs(bNodeTree *localtree)
 
     bNodeSocket *group_socket = group_node->inputs.first;
     for (; group_socket; group_socket = group_socket->next) {
+
       if (group_socket->link != NULL) {
+        bNodeLink *link = group_socket->link;
+        /* Fix the case where the socket is actually converting the data. (see T71374)
+         * We only do the case of lossy conversion to float.*/
+        if ((group_socket->type == SOCK_FLOAT) && (link->fromsock->type != link->tosock->type)) {
+          bNode *node = nodeAddStaticNode(NULL, localtree, SH_NODE_RGBTOBW);
+          nodeAddLink(localtree, link->fromnode, link->fromsock, node, node->inputs.first);
+          nodeAddLink(localtree, node, node->outputs.first, group_node, group_socket);
+        }
         continue;
       }



More information about the Bf-blender-cvs mailing list