diff options
Diffstat (limited to 'intern/cycles/util/util_color.h')
-rw-r--r-- | intern/cycles/util/util_color.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/intern/cycles/util/util_color.h b/intern/cycles/util/util_color.h index 83410db13c6..6e61190de6b 100644 --- a/intern/cycles/util/util_color.h +++ b/intern/cycles/util/util_color.h @@ -257,6 +257,20 @@ ccl_device float4 color_srgb_to_linear_v4(float4 c) #endif } +ccl_device float3 color_highlight_compress(float3 color, float3 *variance) +{ + color += make_float3(1.0f, 1.0f, 1.0f); + if (variance) { + *variance *= sqr3(make_float3(1.0f, 1.0f, 1.0f) / color); + } + return log3(color); +} + +ccl_device float3 color_highlight_uncompress(float3 color) +{ + return exp3(color) - make_float3(1.0f, 1.0f, 1.0f); +} + CCL_NAMESPACE_END #endif /* __UTIL_COLOR_H__ */ |