[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