Merge branch 'blender2.7'
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Wed, 13 Feb 2019 18:02:43 +0000 (19:02 +0100)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Wed, 13 Feb 2019 18:02:43 +0000 (19:02 +0100)
intern/cycles/kernel/shaders/node_hsv.osl
intern/cycles/kernel/svm/svm_hsv.h
intern/cycles/render/nodes.cpp
source/blender/gpu/shaders/gpu_shader_material.glsl
source/blender/nodes/shader/nodes/node_shader_hueSatVal.c

index 8d9e50f..9d7b7cd 100644 (file)
@@ -28,9 +28,8 @@ shader node_hsv(
        color Color = rgb_to_hsv(ColorIn);
 
        // remember: fmod doesn't work for negative numbers
-       Color[0] += Hue + 0.5;
-       Color[0] = fmod(Color[0], 1.0);
-       Color[1] *= Saturation;
+       Color[0] = fmod(Color[0] + Hue + 0.5, 1.0);
+       Color[1] *= clamp(Saturation, 0.0, 1.0);
        Color[2] *= Value;
 
        Color = hsv_to_rgb(Color);
index 41538d1..e69a4ee 100644 (file)
@@ -37,9 +37,8 @@ ccl_device void svm_node_hsv(KernelGlobals *kg, ShaderData *sd, float *stack, ui
        color = rgb_to_hsv(color);
 
        /* remember: fmod doesn't work for negative numbers here */
-       color.x += hue + 0.5f;
-       color.x = fmodf(color.x, 1.0f);
-       color.y *= sat;
+       color.x = fmodf(color.x + hue + 0.5f, 1.0f);
+       color.y *= saturate(sat);
        color.z *= val;
 
        color = hsv_to_rgb(color);
index 727cbe2..b70bad8 100644 (file)
@@ -3530,7 +3530,7 @@ void TextureCoordinateNode::compile(OSLCompiler& compiler)
        if(compiler.output_type() == SHADER_TYPE_VOLUME)
                compiler.parameter("is_volume", true);
        compiler.parameter(this, "use_transform");
-       Transform ob_itfm = transform_transposed_inverse(ob_tfm);
+       Transform ob_itfm = transform_inverse(ob_tfm);
        compiler.parameter("object_itfm", ob_itfm);
 
        compiler.parameter(this, "from_dupli");
index 13b9808..d5bb157 100644 (file)
@@ -856,8 +856,8 @@ void hue_sat(float hue, float sat, float value, float fac, vec4 col, out vec4 ou
 
        rgb_to_hsv(col, hsv);
 
-       hsv[0] = fract(hsv[0] + (hue - 0.5));
-       hsv[1] = clamp(hsv[1] * sat, 0.0, 1.0);
+       hsv[0] = fract(hsv[0] + hue + 0.5);
+       hsv[1] = hsv[1] * clamp(sat, 0.0, 1.0);
        hsv[2] = hsv[2] * value;
 
        hsv_to_rgb(hsv, outcol);
index f30872c..af802e9 100644 (file)
@@ -45,9 +45,8 @@ static void do_hue_sat_fac(bNode *UNUSED(node), float *out, float hue, float sat
                float col[3], hsv[3], mfac = 1.0f - fac;
 
                rgb_to_hsv(in[0], in[1], in[2], hsv, hsv + 1, hsv + 2);
-               hsv[0] += (hue - 0.5f);
-               if (hsv[0] > 1.0f) hsv[0] -= 1.0f; else if (hsv[0] < 0.0f) hsv[0] += 1.0f;
-               hsv[1] *= sat;
+               hsv[0] = fmodf(hsv[0] + hue + 0.5f, 1.0f);
+               hsv[1] *= clamp_f(sat, 0.0f, 1.0f);
                hsv[2] *= val;
                hsv_to_rgb(hsv[0], hsv[1], hsv[2], col, col + 1, col + 2);