diff options
author | OmarSquircleArt <omar.squircleart@gmail.com> | 2019-10-04 16:18:08 +0300 |
---|---|---|
committer | OmarSquircleArt <omar.squircleart@gmail.com> | 2019-10-04 16:21:46 +0300 |
commit | 8afa93d82d7dd2519af667d85e1d87b19bf6f2c5 (patch) | |
tree | 433f1c677fa1f07328f6e1f2fe19e71c0a34b353 /intern | |
parent | f025b625f410ceb8a1edda584fe89acb5fff39d7 (diff) |
Fix: Clamping in Map Range node works incorrectly.
The clamp option in the Map Range node doesn't work correctly when the
inputs are linked. The code didn't put that into considration.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D5987
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/render/nodes.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 71f1863ea49..b58e10a7b52 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -5567,11 +5567,21 @@ void MapRangeNode::expand(ShaderGraph *graph) ShaderOutput *result_out = output("Result"); if (!result_out->links.empty()) { ClampNode *clamp_node = new ClampNode(); - clamp_node->min = to_min; - clamp_node->max = to_max; graph->add(clamp_node); graph->relink(result_out, clamp_node->output("Result")); graph->connect(result_out, clamp_node->input("Value")); + if (input("To Min")->link) { + graph->connect(input("To Min")->link, clamp_node->input("Min")); + } + else { + clamp_node->min = to_min; + } + if (input("To Max")->link) { + graph->connect(input("To Max")->link, clamp_node->input("Max")); + } + else { + clamp_node->max = to_max; + } } } } |