From 9886ae63311da83d962a546bb2c252316ba63538 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 14 Feb 2019 19:03:59 +0100 Subject: Fix T61470: incorrect saturation clamping in recent bugfix. We should clamp the result after multiplication. --- intern/cycles/kernel/shaders/node_hsv.osl | 2 +- intern/cycles/kernel/svm/svm_hsv.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/cycles/kernel/shaders/node_hsv.osl b/intern/cycles/kernel/shaders/node_hsv.osl index 9d7b7cde23a..d72a87a951f 100644 --- a/intern/cycles/kernel/shaders/node_hsv.osl +++ b/intern/cycles/kernel/shaders/node_hsv.osl @@ -29,7 +29,7 @@ shader node_hsv( // remember: fmod doesn't work for negative numbers Color[0] = fmod(Color[0] + Hue + 0.5, 1.0); - Color[1] *= clamp(Saturation, 0.0, 1.0); + Color[1] = clamp(Color[1] * Saturation, 0.0, 1.0); Color[2] *= Value; Color = hsv_to_rgb(Color); diff --git a/intern/cycles/kernel/svm/svm_hsv.h b/intern/cycles/kernel/svm/svm_hsv.h index e69a4ee9154..6f3efa639e2 100644 --- a/intern/cycles/kernel/svm/svm_hsv.h +++ b/intern/cycles/kernel/svm/svm_hsv.h @@ -38,7 +38,7 @@ ccl_device void svm_node_hsv(KernelGlobals *kg, ShaderData *sd, float *stack, ui /* remember: fmod doesn't work for negative numbers here */ color.x = fmodf(color.x + hue + 0.5f, 1.0f); - color.y *= saturate(sat); + color.y = saturate(color.y * sat); color.z *= val; color = hsv_to_rgb(color); -- cgit v1.2.3