diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-12-16 14:52:40 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-12-16 18:06:25 +0300 |
commit | 1549fea9995c348bc14a9105df5e460644e2b33a (patch) | |
tree | c09b24360f687dd4e382fedcff8c720f9784ceb1 /intern/cycles/kernel/shaders | |
parent | 137f55724606e07f1cdc829c730fc0c061d7af21 (diff) |
Fix T42888: Separate and Combine HSV distorts the hue value
These nodes were assuming sRGB input/output which is for sure wrong for the
shader pipeline which works in the linear space.
So now conversion to/from linear space happens in these nodes which makes them
making sence in the shader context but which might change look and feel of
existing scenes.
Diffstat (limited to 'intern/cycles/kernel/shaders')
-rw-r--r-- | intern/cycles/kernel/shaders/node_combine_hsv.osl | 3 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_separate_hsv.osl | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/intern/cycles/kernel/shaders/node_combine_hsv.osl b/intern/cycles/kernel/shaders/node_combine_hsv.osl index 010773acc5c..574bad30b14 100644 --- a/intern/cycles/kernel/shaders/node_combine_hsv.osl +++ b/intern/cycles/kernel/shaders/node_combine_hsv.osl @@ -15,6 +15,7 @@ */ #include "stdosl.h" +#include "node_color.h" shader node_combine_hsv( float H = 0.0, @@ -22,6 +23,6 @@ shader node_combine_hsv( float V = 0.0, output color Color = 0.8) { - Color = color("hsv", H, S, V); + Color = color_srgb_to_scene_linear(color("hsv", H, S, V)); } diff --git a/intern/cycles/kernel/shaders/node_separate_hsv.osl b/intern/cycles/kernel/shaders/node_separate_hsv.osl index 94fc5de9122..8bfb04aea1c 100644 --- a/intern/cycles/kernel/shaders/node_separate_hsv.osl +++ b/intern/cycles/kernel/shaders/node_separate_hsv.osl @@ -23,7 +23,7 @@ shader node_separate_hsv( output float S = 0.0, output float V = 0.0) { - color col = rgb_to_hsv(Color); + color col = rgb_to_hsv(color_scene_linear_to_srgb(Color)); H = col[0]; S = col[1]; |