From 064e701472ac430c8063ab5d577b5014eecf9ad5 Mon Sep 17 00:00:00 2001 From: Lukas Stockner Date: Thu, 14 Jun 2018 22:16:42 +0200 Subject: Cycles: Connect value inputs to Strength instead of Color when inserting an Emission node Same result, but saves an additional ConvertNode. --- intern/cycles/render/graph.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'intern/cycles/render') 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 { -- cgit v1.2.3