Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2011-12-29 09:40:48 +0400
committerDalai Felinto <dfelinto@gmail.com>2011-12-29 09:40:48 +0400
commitb4c95833aba19750364c2ba1d442fc0fa80dc7ab (patch)
tree88a8372b6bbaab55933b6bf7fffaa057ff1c627f /intern
parentd14edecabff7dcae1833fe0288f1da33a7dbbd8c (diff)
bugfix: [#29711] Cycles - HSV Node - Hue Change Bug
* Adding hue instead of removing it. fmod doesn't work as % when it comes to negative numbers: fmod( 1.3, 1) == 1.3 % 1 == 0.3 fmod(-0.3, 1) != -0.3 % 1
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/kernel/osl/nodes/node_hsv.osl3
-rw-r--r--intern/cycles/kernel/svm/svm_hsv.h3
2 files changed, 4 insertions, 2 deletions
diff --git a/intern/cycles/kernel/osl/nodes/node_hsv.osl b/intern/cycles/kernel/osl/nodes/node_hsv.osl
index da776c8909e..8fd7a1612e8 100644
--- a/intern/cycles/kernel/osl/nodes/node_hsv.osl
+++ b/intern/cycles/kernel/osl/nodes/node_hsv.osl
@@ -30,7 +30,8 @@ shader node_hsv(
float t = clamp(Fac, 0.0, 1.0);
color Color = rgb_to_hsv(ColorIn);
- Color[0] += Hue - 0.5;
+ // remember: fmod doesn't work for negative numbers
+ Color[0] += Hue + 0.5;
Color[0] = fmod(Color[0], 1.0);
Color[1] *= Saturation;
Color[2] *= Value;
diff --git a/intern/cycles/kernel/svm/svm_hsv.h b/intern/cycles/kernel/svm/svm_hsv.h
index fc927f297f5..ed17d3fc985 100644
--- a/intern/cycles/kernel/svm/svm_hsv.h
+++ b/intern/cycles/kernel/svm/svm_hsv.h
@@ -110,7 +110,8 @@ __device void svm_node_hsv(KernelGlobals *kg, ShaderData *sd, float *stack, uint
color = rgb_to_hsv(color);
- color.x += hue - 0.5f;
+ // remember: fmod doesn't work for negative numbers
+ color.x += hue + 0.5f;
color.x = fmod(color.x, 1.0f);
color.y *= sat;
color.z *= val;