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
path: root/intern
diff options
context:
space:
mode:
authorJeroen Bakker <j.bakker@atmind.nl>2019-03-14 11:20:11 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2019-03-14 11:20:11 +0300
commit4887baf7d69c6c44c265044600ec00c77e9aa406 (patch)
treec49c1fb9fc11ee85f6b03a938c05b70f1f720ad2 /intern
parent6eeac735f2425ce4dffaee747b7e8823a793e464 (diff)
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.
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/render/nodes.cpp14
-rw-r--r--intern/cycles/render/nodes.h1
2 files changed, 15 insertions, 0 deletions
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;
};