[Bf-blender-cvs] [629b452] testbuild: ColorRamp: Use linear V for HSV/HSL blending

Campbell Barton noreply at git.blender.org
Fri Nov 14 04:29:52 CET 2014


Commit: 629b4524095f7f0a94efc4b38bafd9d7b8e2ff7d
Author: Campbell Barton
Date:   Fri Aug 22 09:50:10 2014 +1000
Branches: testbuild
https://developer.blender.org/rB629b4524095f7f0a94efc4b38bafd9d7b8e2ff7d

ColorRamp: Use linear V for HSV/HSL blending

This matches RGB blending black/white for eg.

===================================================================

M	source/blender/blenkernel/intern/texture.c

===================================================================

diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c
index 50aed50..76233a4 100644
--- a/source/blender/blenkernel/intern/texture.c
+++ b/source/blender/blenkernel/intern/texture.c
@@ -437,11 +437,16 @@ bool do_colorband(const ColorBand *coba, float in, float out[4])
 					rgb_to_hsv_v(col1, col1);
 					rgb_to_hsv_v(col2, col2);
 
+					col1[2] = srgb_to_linearrgb(col1[2]);
+					col2[2] = srgb_to_linearrgb(col2[2]);
+
 					out[0] = colorband_hue_interp(coba->ipotype_hue, mfac, fac, col1[0], col2[0]);
 					out[1] = mfac * col1[1] + fac * col2[1];
 					out[2] = mfac * col1[2] + fac * col2[2];
 					out[3] = mfac * cbd1->a + fac * cbd2->a;
 
+					out[2] = linearrgb_to_srgb(out[2]);
+
 					hsv_to_rgb_v(out, out);
 
 					srgb_to_linearrgb_v3_v3(out, out);
@@ -452,6 +457,9 @@ bool do_colorband(const ColorBand *coba, float in, float out[4])
 					linearrgb_to_srgb_v3_v3(col1, &cbd1->r);
 					linearrgb_to_srgb_v3_v3(col2, &cbd2->r);
 
+					col1[2] = srgb_to_linearrgb(col1[2]);
+					col2[2] = srgb_to_linearrgb(col2[2]);
+
 					rgb_to_hsl_v(col1, col1);
 					rgb_to_hsl_v(col2, col2);
 
@@ -460,6 +468,8 @@ bool do_colorband(const ColorBand *coba, float in, float out[4])
 					out[2] = mfac * col1[2] + fac * col2[2];
 					out[3] = mfac * cbd1->a + fac * cbd2->a;
 
+					out[2] = linearrgb_to_srgb(out[2]);
+
 					hsl_to_rgb_v(out, out);
 
 					srgb_to_linearrgb_v3_v3(out, out);




More information about the Bf-blender-cvs mailing list