[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