[Bf-blender-cvs] [de4dcda] master: Fix T43651: New pointiness attribute doesn't work with displacement
Sergey Sharybin
noreply at git.blender.org
Fri Feb 20 13:21:20 CET 2015
Commit: de4dcda545e80a09fdc4ad61091eb303e4a22e6f
Author: Sergey Sharybin
Date: Fri Feb 20 17:20:24 2015 +0500
Branches: master
https://developer.blender.org/rBde4dcda545e80a09fdc4ad61091eb303e4a22e6f
Fix T43651: New pointiness attribute doesn't work with displacement
Simple fix: just make pointiness aware of bump offset.
===================================================================
M intern/cycles/kernel/shaders/node_geometry.osl
M intern/cycles/render/nodes.cpp
===================================================================
diff --git a/intern/cycles/kernel/shaders/node_geometry.osl b/intern/cycles/kernel/shaders/node_geometry.osl
index 2bbaaff..b0bd769 100644
--- a/intern/cycles/kernel/shaders/node_geometry.osl
+++ b/intern/cycles/kernel/shaders/node_geometry.osl
@@ -60,5 +60,11 @@ shader node_geometry(
}
getattribute("geom:pointiness", Pointiness);
+ if (bump_offset == "dx") {
+ Pointiness += Dx(Pointiness);
+ }
+ else if (bump_offset == "dy") {
+ Pointiness += Dy(Pointiness);
+ }
}
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index 46c962b..e82dd54 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -2242,8 +2242,15 @@ void GeometryNode::compile(SVMCompiler& compiler)
out = output("Pointiness");
if(!out->links.empty()) {
+ NodeType attr_node = NODE_ATTR;
+ if(bump == SHADER_BUMP_DX) {
+ attr_node = NODE_ATTR_BUMP_DX;
+ }
+ else if(bump == SHADER_BUMP_DY) {
+ attr_node = NODE_ATTR_BUMP_DY;
+ }
compiler.stack_assign(out);
- compiler.add_node(NODE_ATTR,
+ compiler.add_node(attr_node,
ATTR_STD_POINTINESS,
out->stack_offset,
NODE_ATTR_FLOAT);
More information about the Bf-blender-cvs
mailing list