[Bf-blender-cvs] [064e701472a] master: Cycles: Connect value inputs to Strength instead of Color when inserting an Emission node

Lukas Stockner noreply at git.blender.org
Thu Jun 14 22:30:56 CEST 2018


Commit: 064e701472ac430c8063ab5d577b5014eecf9ad5
Author: Lukas Stockner
Date:   Thu Jun 14 22:16:42 2018 +0200
Branches: master
https://developer.blender.org/rB064e701472ac430c8063ab5d577b5014eecf9ad5

Cycles: Connect value inputs to Strength instead of Color when inserting an Emission node

Same result, but saves an additional ConvertNode.

===================================================================

M	intern/cycles/render/graph.cpp

===================================================================

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 {



More information about the Bf-blender-cvs mailing list