diff options
author | Lukas Stockner <lukas.stockner@freenet.de> | 2016-10-30 02:33:10 +0300 |
---|---|---|
committer | Lukas Stockner <lukas.stockner@freenet.de> | 2016-10-30 03:16:22 +0300 |
commit | b2974d7ab79a257f8628c24c05d43da25791018d (patch) | |
tree | cd7b6376d8c5f5cd105bce74d82f991845d511e4 /intern/cycles/render/nodes.cpp | |
parent | 5aa6a2ec06bbfa9ddd255c90ee02da5f9be36f30 (diff) |
Cycles: Add smoothing option to the Brick Texture
This option allows to create a smoother transition between Bricks and Mortar - 0 applies no smoothing, and 1 smooths across the whole mortar width.
Mainly useful for displacement textures.
The new default value for the smoothing option is 0.1 to give some smoothing that helps with antialiasing, but existing nodes are loaded with smoothing 0 to preserve compatibility.
Reviewers: sergey, dingto, juicyfruit, brecht
Reviewed By: brecht
Subscribers: Blendify, nutel
Differential Revision: https://developer.blender.org/D2230
Diffstat (limited to 'intern/cycles/render/nodes.cpp')
-rw-r--r-- | intern/cycles/render/nodes.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 3b4aa389c13..f293af3c40a 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1257,6 +1257,7 @@ NODE_DEFINE(BrickTextureNode) SOCKET_IN_COLOR(mortar, "Mortar", make_float3(0.0f, 0.0f, 0.0f)); SOCKET_IN_FLOAT(scale, "Scale", 5.0f); SOCKET_IN_FLOAT(mortar_size, "Mortar Size", 0.02f); + SOCKET_IN_FLOAT(mortar_smooth, "Mortar Smooth", 0.0f); SOCKET_IN_FLOAT(bias, "Bias", 0.0f); SOCKET_IN_FLOAT(brick_width, "Brick Width", 0.5f); SOCKET_IN_FLOAT(row_height, "Row Height", 0.25f); @@ -1280,6 +1281,7 @@ void BrickTextureNode::compile(SVMCompiler& compiler) ShaderInput *mortar_in = input("Mortar"); ShaderInput *scale_in = input("Scale"); ShaderInput *mortar_size_in = input("Mortar Size"); + ShaderInput *mortar_smooth_in = input("Mortar Smooth"); ShaderInput *bias_in = input("Bias"); ShaderInput *brick_width_in = input("Brick Width"); ShaderInput *row_height_in = input("Row Height"); @@ -1303,7 +1305,8 @@ void BrickTextureNode::compile(SVMCompiler& compiler) compiler.encode_uchar4( compiler.stack_assign_if_linked(row_height_in), compiler.stack_assign_if_linked(color_out), - compiler.stack_assign_if_linked(fac_out))); + compiler.stack_assign_if_linked(fac_out), + compiler.stack_assign_if_linked(mortar_smooth_in))); compiler.add_node(compiler.encode_uchar4(offset_frequency, squash_frequency), __float_as_int(scale), @@ -1315,6 +1318,11 @@ void BrickTextureNode::compile(SVMCompiler& compiler) __float_as_int(offset), __float_as_int(squash)); + compiler.add_node(__float_as_int(mortar_smooth), + SVM_STACK_INVALID, + SVM_STACK_INVALID, + SVM_STACK_INVALID); + tex_mapping.compile_end(compiler, vector_in, vector_offset); } |