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:
Diffstat (limited to 'intern/cycles/render/nodes.cpp')
-rw-r--r--intern/cycles/render/nodes.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index 30f51728e1b..70cb5613e61 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -1950,6 +1950,46 @@ void IsotropicVolumeNode::compile(OSLCompiler& compiler)
compiler.add(this, "node_isotropic_volume");
}
+/* Hair BSDF Closure */
+
+static ShaderEnum hair_component_init()
+{
+ ShaderEnum enm;
+
+ enm.insert("Reflection", CLOSURE_BSDF_HAIR_REFLECTION_ID);
+ enm.insert("Transmission", CLOSURE_BSDF_HAIR_TRANSMISSION_ID);
+
+
+ return enm;
+}
+
+ShaderEnum HairBsdfNode::component_enum = hair_component_init();
+
+HairBsdfNode::HairBsdfNode()
+{
+ component = ustring("Reflection");
+
+ add_input("Offset", SHADER_SOCKET_FLOAT);
+ add_input("RoughnessU", SHADER_SOCKET_FLOAT);
+ add_input("RoughnessV", SHADER_SOCKET_FLOAT);
+
+}
+
+void HairBsdfNode::compile(SVMCompiler& compiler)
+{
+ closure = (ClosureType)component_enum[component];
+
+ BsdfNode::compile(compiler, input("RoughnessU"), input("RoughnessV"), input("Offset"));
+}
+
+void HairBsdfNode::compile(OSLCompiler& compiler)
+{
+ compiler.parameter("component", component);
+
+ compiler.add(this, "node_hair_bsdf");
+
+}
+
/* Geometry */
GeometryNode::GeometryNode()