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
diff options
context:
space:
mode:
authorLukas Stockner <lukas.stockner@freenet.de>2018-06-14 23:16:42 +0300
committerLukas Stockner <lukas.stockner@freenet.de>2018-06-14 23:16:42 +0300
commit064e701472ac430c8063ab5d577b5014eecf9ad5 (patch)
treedfff4b9cf441699218c73ab4cfd07e6d7f934d86 /intern/cycles/render
parent716e138a1b8cb81e13f7da2da5d16763d868743a (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.cpp11
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 {