diff options
author | Lukas Stockner <lukas.stockner@freenet.de> | 2018-06-14 23:16:42 +0300 |
---|---|---|
committer | Lukas Stockner <lukas.stockner@freenet.de> | 2018-06-14 23:16:42 +0300 |
commit | 064e701472ac430c8063ab5d577b5014eecf9ad5 (patch) | |
tree | dfff4b9cf441699218c73ab4cfd07e6d7f934d86 /intern/cycles/render | |
parent | 716e138a1b8cb81e13f7da2da5d16763d868743a (diff) |
Cycles: Connect value inputs to Strength instead of Color when inserting an Emission node
Same result, but saves an additional ConvertNode.
Diffstat (limited to 'intern/cycles/render')
-rw-r--r-- | intern/cycles/render/graph.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/intern/cycles/render/graph.cpp b/intern/cycles/render/graph.cpp index dca168824d9..e1c09373004 100644 --- a/intern/cycles/render/graph.cpp +++ b/intern/cycles/render/graph.cpp @@ -243,18 +243,27 @@ void ShaderGraph::connect(ShaderOutput *from, ShaderInput *to) /* add automatic conversion node in case of type mismatch */ ShaderNode *convert; + ShaderInput *convert_in; if (to->type() == SocketType::CLOSURE) { EmissionNode *emission = new EmissionNode(); emission->color = make_float3(1.0f, 1.0f, 1.0f); emission->strength = 1.0f; convert = add(emission); + /* Connect float inputs to Strength to save an additional Falue->Color conversion. */ + if(from->type() == SocketType::FLOAT) { + convert_in = convert->input("Strength"); + } + else { + convert_in = convert->input("Color"); + } } else { convert = add(new ConvertNode(from->type(), to->type(), true)); + convert_in = convert->inputs[0]; } - connect(from, convert->inputs[0]); + connect(from, convert_in); connect(convert->outputs[0], to); } else { |