Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-01-23 19:40:40 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-01-23 21:56:50 +0300
commitc2e21b23296335bbab6e9acbb59518929efcc8e7 (patch)
treef435cb42b6b0cf1ef2d496874b7da9e17640f5ad /source
parent39ae4804a80fe96472d8f3c269825ec82eeb90f7 (diff)
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.
Diffstat (limited to 'source')
-rw-r--r--source/blender/nodes/shader/node_shader_tree.c9
1 files changed, 9 insertions, 0 deletions
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;
}