ColorRamp: remove linear/srgb conversions
Turns out these aren't needed
This commit is contained in:
parent
a4c5570aba
commit
38cd35c2ad
@ -431,48 +431,28 @@ bool do_colorband(const ColorBand *coba, float in, float out[4])
|
||||
if (UNLIKELY(coba->color_mode == COLBAND_BLEND_HSV)) {
|
||||
float col1[3], col2[3];
|
||||
|
||||
linearrgb_to_srgb_v3_v3(col1, &cbd1->r);
|
||||
linearrgb_to_srgb_v3_v3(col2, &cbd2->r);
|
||||
|
||||
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]);
|
||||
rgb_to_hsv_v(&cbd1->r, col1);
|
||||
rgb_to_hsv_v(&cbd2->r, col2);
|
||||
|
||||
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);
|
||||
}
|
||||
else if (UNLIKELY(coba->color_mode == COLBAND_BLEND_HSL)) {
|
||||
float col1[3], col2[3];
|
||||
|
||||
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);
|
||||
rgb_to_hsl_v(&cbd1->r, col1);
|
||||
rgb_to_hsl_v(&cbd2->r, col2);
|
||||
|
||||
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]);
|
||||
|
||||
hsl_to_rgb_v(out, out);
|
||||
|
||||
srgb_to_linearrgb_v3_v3(out, out);
|
||||
}
|
||||
else {
|
||||
/* COLBAND_BLEND_RGB */
|
||||
|
Loading…
Reference in New Issue
Block a user