diff options
Diffstat (limited to 'intern/cycles/render')
-rw-r--r-- | intern/cycles/render/nodes.cpp | 27 | ||||
-rw-r--r-- | intern/cycles/render/nodes.h | 7 |
2 files changed, 34 insertions, 0 deletions
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 06322fec820..4d9fc356d80 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -2891,6 +2891,33 @@ void LayerWeightNode::compile(OSLCompiler& compiler) compiler.add(this, "node_layer_weight"); } +/* Wireframe */ + +WireframeNode::WireframeNode() +: ShaderNode("Wireframe") +{ + add_input("Size", SHADER_SOCKET_FLOAT, 0.01f); + add_output("Fac", SHADER_SOCKET_FLOAT); + + use_pixel_size = false; +} + +void WireframeNode::compile(SVMCompiler& compiler) +{ + ShaderInput *size_in = input("Size"); + ShaderOutput *fac_out = output("Fac"); + + compiler.stack_assign(size_in); + compiler.stack_assign(fac_out); + compiler.add_node(NODE_WIREFRAME, size_in->stack_offset, fac_out->stack_offset, use_pixel_size); +} + +void WireframeNode::compile(OSLCompiler& compiler) +{ + compiler.parameter("use_pixel_size", use_pixel_size); + compiler.add(this, "node_wireframe"); +} + /* Output */ OutputNode::OutputNode() diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h index 41fa87a3859..8a34e4e0c40 100644 --- a/intern/cycles/render/nodes.h +++ b/intern/cycles/render/nodes.h @@ -442,6 +442,13 @@ public: SHADER_NODE_CLASS(LayerWeightNode) }; +class WireframeNode : public ShaderNode { +public: + SHADER_NODE_CLASS(WireframeNode) + + bool use_pixel_size; +}; + class MathNode : public ShaderNode { public: SHADER_NODE_CLASS(MathNode) |