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
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-12-29 16:14:08 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2014-12-29 16:14:08 +0300
commitc5927cd97758baf3df30459d43dc7c6c488fc616 (patch)
treecd89cb5d5525eb5ac1c8c669e9c0ba8f02ece650
parentf392f563970a3cd7d904da622ed65e401fde933f (diff)
Revert "Fix T42888: Separate and Combine HSV distorts the hue value"
This reverts commit 1549fea9995c348bc14a9105df5e460644e2b33a. After some further discussion with other developers in the team it becomes clear there's no correct solution here. It is just more matter of what's more convenient in particular case. We're just going back to old code to avoid possible frustration with the older files in newer blenders. This also means all HSV/HSL is considered to be "linear" in the shading nodes. Would be ported to 2.73 final.
-rw-r--r--intern/cycles/kernel/shaders/node_combine_hsv.osl3
-rw-r--r--intern/cycles/kernel/shaders/node_separate_hsv.osl2
-rw-r--r--intern/cycles/kernel/svm/svm_sepcomb_hsv.h5
3 files changed, 4 insertions, 6 deletions
diff --git a/intern/cycles/kernel/shaders/node_combine_hsv.osl b/intern/cycles/kernel/shaders/node_combine_hsv.osl
index 8b3c3f0e839..6b922bf4e6b 100644
--- a/intern/cycles/kernel/shaders/node_combine_hsv.osl
+++ b/intern/cycles/kernel/shaders/node_combine_hsv.osl
@@ -15,7 +15,6 @@
*/
#include "stdosl.h"
-#include "node_color.h"
shader node_combine_hsv(
float H = 0.0,
@@ -23,6 +22,6 @@ shader node_combine_hsv(
float V = 0.0,
output color Color = 0.8)
{
- Color = color_srgb_to_scene_linear(color("hsv", H, S, V));
+ Color = 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 7eb58caa99d..2a804040294 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_scene_linear_to_srgb(Color));
+ color col = rgb_to_hsv(Color);
H = col[0];
S = col[1];
diff --git a/intern/cycles/kernel/svm/svm_sepcomb_hsv.h b/intern/cycles/kernel/svm/svm_sepcomb_hsv.h
index 5a48bbe56e7..68f9fea02f0 100644
--- a/intern/cycles/kernel/svm/svm_sepcomb_hsv.h
+++ b/intern/cycles/kernel/svm/svm_sepcomb_hsv.h
@@ -26,8 +26,7 @@ ccl_device void svm_node_combine_hsv(KernelGlobals *kg, ShaderData *sd, float *s
float value = stack_load_float(stack, value_in);
/* Combine, and convert back to RGB */
- float3 color = color_srgb_to_scene_linear(
- hsv_to_rgb(make_float3(hue, saturation, value)));
+ float3 color = hsv_to_rgb(make_float3(hue, saturation, value));
if (stack_valid(color_out))
stack_store_float3(stack, color_out, color);
@@ -41,7 +40,7 @@ ccl_device void svm_node_separate_hsv(KernelGlobals *kg, ShaderData *sd, float *
float3 color = stack_load_float3(stack, color_in);
/* Convert to HSV */
- color = rgb_to_hsv(color_scene_linear_to_srgb(color));
+ color = rgb_to_hsv(color);
if (stack_valid(hue_out))
stack_store_float(stack, hue_out, color.x);