diff options
Diffstat (limited to 'intern/cycles/util/util_color.h')
-rw-r--r-- | intern/cycles/util/util_color.h | 44 |
1 files changed, 16 insertions, 28 deletions
diff --git a/intern/cycles/util/util_color.h b/intern/cycles/util/util_color.h index c73beab98dc..62a9bf8e47d 100644 --- a/intern/cycles/util/util_color.h +++ b/intern/cycles/util/util_color.h @@ -47,7 +47,7 @@ ccl_device_inline float3 color_byte_to_float(uchar4 c) return make_float3(c.x*(1.0f/255.0f), c.y*(1.0f/255.0f), c.z*(1.0f/255.0f)); } -ccl_device float color_srgb_to_scene_linear(float c) +ccl_device float color_srgb_to_linear(float c) { if(c < 0.04045f) return (c < 0.0f)? 0.0f: c * (1.0f/12.92f); @@ -55,7 +55,7 @@ ccl_device float color_srgb_to_scene_linear(float c) return powf((c + 0.055f) * (1.0f / 1.055f), 2.4f); } -ccl_device float color_scene_linear_to_srgb(float c) +ccl_device float color_linear_to_srgb(float c) { if(c < 0.0031308f) return (c < 0.0f)? 0.0f: c * 12.92f; @@ -150,13 +150,6 @@ ccl_device float3 xyY_to_xyz(float x, float y, float Y) return make_float3(X, Y, Z); } -ccl_device float3 xyz_to_rgb(float x, float y, float z) -{ - return make_float3(3.240479f * x + -1.537150f * y + -0.498535f * z, - -0.969256f * x + 1.875991f * y + 0.041556f * z, - 0.055648f * x + -0.204043f * y + 1.057311f * z); -} - #ifdef __KERNEL_SSE2__ /* * Calculate initial guess for arg^exp based on float representation @@ -204,7 +197,7 @@ ccl_device_inline ssef fastpow24(const ssef &arg) return x * (x * x); } -ccl_device ssef color_srgb_to_scene_linear(const ssef &c) +ccl_device ssef color_srgb_to_linear(const ssef &c) { sseb cmp = c < ssef(0.04045f); ssef lt = max(c * ssef(1.0f/12.92f), ssef(0.0f)); @@ -214,42 +207,37 @@ ccl_device ssef color_srgb_to_scene_linear(const ssef &c) } #endif /* __KERNEL_SSE2__ */ -ccl_device float3 color_srgb_to_scene_linear_v3(float3 c) +ccl_device float3 color_srgb_to_linear_v3(float3 c) { - return make_float3(color_srgb_to_scene_linear(c.x), - color_srgb_to_scene_linear(c.y), - color_srgb_to_scene_linear(c.z)); + return make_float3(color_srgb_to_linear(c.x), + color_srgb_to_linear(c.y), + color_srgb_to_linear(c.z)); } -ccl_device float3 color_scene_linear_to_srgb_v3(float3 c) +ccl_device float3 color_linear_to_srgb_v3(float3 c) { - return make_float3(color_scene_linear_to_srgb(c.x), - color_scene_linear_to_srgb(c.y), - color_scene_linear_to_srgb(c.z)); + return make_float3(color_linear_to_srgb(c.x), + color_linear_to_srgb(c.y), + color_linear_to_srgb(c.z)); } -ccl_device float4 color_srgb_to_scene_linear_v4(float4 c) +ccl_device float4 color_srgb_to_linear_v4(float4 c) { #ifdef __KERNEL_SSE2__ ssef r_ssef; float4 &r = (float4 &)r_ssef; r = c; - r_ssef = color_srgb_to_scene_linear(r_ssef); + r_ssef = color_srgb_to_linear(r_ssef); r.w = c.w; return r; #else - return make_float4(color_srgb_to_scene_linear(c.x), - color_srgb_to_scene_linear(c.y), - color_srgb_to_scene_linear(c.z), + return make_float4(color_srgb_to_linear(c.x), + color_srgb_to_linear(c.y), + color_srgb_to_linear(c.z), c.w); #endif } -ccl_device float linear_rgb_to_gray(float3 c) -{ - return c.x*0.2126f + c.y*0.7152f + c.z*0.0722f; -} - CCL_NAMESPACE_END #endif /* __UTIL_COLOR_H__ */ |