diff options
-rw-r--r-- | source/blender/gpu/shaders/material/gpu_shader_material_clamp.glsl | 5 | ||||
-rw-r--r-- | source/blender/nodes/shader/nodes/node_shader_clamp.cc | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_clamp.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_clamp.glsl index b196aed690f..f89608feff1 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_clamp.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_clamp.glsl @@ -3,6 +3,11 @@ void clamp_value(float value, float min, float max, out float result) result = clamp(value, min, max); } +void clamp_minmax(float value, float min_allowed, float max_allowed, out float result) +{ + result = min(max(value, min_allowed), max_allowed); +} + void clamp_range(float value, float min, float max, out float result) { result = (max > min) ? clamp(value, min, max) : clamp(value, max, min); diff --git a/source/blender/nodes/shader/nodes/node_shader_clamp.cc b/source/blender/nodes/shader/nodes/node_shader_clamp.cc index d3a893e1d76..4f77421cfe0 100644 --- a/source/blender/nodes/shader/nodes/node_shader_clamp.cc +++ b/source/blender/nodes/shader/nodes/node_shader_clamp.cc @@ -46,8 +46,9 @@ static int gpu_shader_clamp(GPUMaterial *mat, GPUNodeStack *in, GPUNodeStack *out) { - return (node->custom1 == NODE_CLAMP_MINMAX) ? GPU_stack_link(mat, node, "clamp_value", in, out) : - GPU_stack_link(mat, node, "clamp_range", in, out); + return (node->custom1 == NODE_CLAMP_MINMAX) ? + GPU_stack_link(mat, node, "clamp_minmax", in, out) : + GPU_stack_link(mat, node, "clamp_range", in, out); } static void sh_node_clamp_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder) |