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
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-02-13 16:20:47 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-02-13 16:20:47 +0300
commit37f65e9dc4bcfa5225a114feabac753e342bb201 (patch)
tree0d5f08e60de8c40c940dcb806e20a97bafdff667 /intern/cycles/render/nodes.cpp
parentd640ce40aa9e472613cac22ecbc7655db9c27201 (diff)
Cycles: Implement index output for hair node
This is like the only way to add variety to hair which is created using simple children. Used here for the hair. Maybe not ideal, but the time will show.
Diffstat (limited to 'intern/cycles/render/nodes.cpp')
-rw-r--r--intern/cycles/render/nodes.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index cb884ba9231..d2a03ceb76a 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -3572,6 +3572,7 @@ NODE_DEFINE(HairInfoNode)
#if 0 /*output for minimum hair width transparency - deactivated */
SOCKET_OUT_FLOAT(fade, "Fade");
#endif
+ SOCKET_OUT_FLOAT(index, "Index");
return type;
}
@@ -3588,6 +3589,9 @@ void HairInfoNode::attributes(Shader *shader, AttributeRequestSet *attributes)
if(!intercept_out->links.empty())
attributes->add(ATTR_STD_CURVE_INTERCEPT);
+
+ if(!output("Index")->links.empty())
+ attributes->add(ATTR_STD_CURVE_INDEX);
}
ShaderNode::attributes(shader, attributes);
@@ -3623,6 +3627,11 @@ void HairInfoNode::compile(SVMCompiler& compiler)
compiler.add_node(NODE_HAIR_INFO, NODE_INFO_CURVE_FADE, compiler.stack_assign(out));
}*/
+ out = output("Index");
+ if(!out->links.empty()) {
+ int attr = compiler.attribute(ATTR_STD_CURVE_INDEX);
+ compiler.add_node(NODE_ATTR, attr, compiler.stack_assign(out), NODE_ATTR_FLOAT);
+ }
}
void HairInfoNode::compile(OSLCompiler& compiler)