[Bf-blender-cvs] [4887baf7d69] blender2.7: Fix T62145: Geometry.Backface Node Renders Black

Jeroen Bakker noreply at git.blender.org
Thu Mar 14 09:26:53 CET 2019


Commit: 4887baf7d69c6c44c265044600ec00c77e9aa406
Author: Jeroen Bakker
Date:   Thu Mar 14 09:20:11 2019 +0100
Branches: blender2.7
https://developer.blender.org/rB4887baf7d69c6c44c265044600ec00c77e9aa406

Fix T62145: Geometry.Backface Node Renders Black

The NODE_GROUP_LEVEL of the Geometry node should be bumped to 1
when Backface is connected. Backface uses `NODE_LIGHT_PATH` that
is part of NODE_GROUP_LEVEL1, the rest of the geometry ndoe is
NODE_GROUP_LEVEL_0.

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

M	intern/cycles/render/nodes.cpp
M	intern/cycles/render/nodes.h

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

diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index d32b1513e42..6ba98391a61 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -3384,6 +3384,20 @@ void GeometryNode::compile(OSLCompiler& compiler)
 	compiler.add(this, "node_geometry");
 }
 
+int GeometryNode::get_group()
+{
+	ShaderOutput *out;
+	int result = ShaderNode::get_group();
+
+	/* Backfacing uses NODE_LIGHT_PATH */
+	out = output("Backfacing");
+	if (!out->links.empty()) {
+		result = max(result, NODE_GROUP_LEVEL_1);
+	}
+
+	return result;
+}
+
 /* TextureCoordinate */
 
 NODE_DEFINE(TextureCoordinateNode)
diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h
index 429a1130a9b..5c27929719a 100644
--- a/intern/cycles/render/nodes.h
+++ b/intern/cycles/render/nodes.h
@@ -666,6 +666,7 @@ public:
 	void attributes(Shader *shader, AttributeRequestSet *attributes);
 	bool has_attribute_dependency() { return true; }
 	bool has_spatial_varying() { return true; }
+	int get_group();
 
 	float3 normal_osl;
 };



More information about the Bf-blender-cvs mailing list