From b7c4d1bf622f057cf8e88754a089157300818ae3 Mon Sep 17 00:00:00 2001 From: yum Date: Sat, 28 Mar 2026 14:45:19 -0700 Subject: Finish implementing burley per-channel histogram preserving blending operator --- math.cginc | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'math.cginc') diff --git a/math.cginc b/math.cginc index 0f5f8f5..6bca086 100755 --- a/math.cginc +++ b/math.cginc @@ -251,4 +251,16 @@ float median(float3 x) { return (x.r + x.g + x.b) - (x_min + x_max); } +float3 linear_to_srgb(float3 linear_color) { + float3 lo = 12.92f * linear_color; + float3 hi = 1.055f * pow(linear_color, 1.0f / 2.4f) - 0.055f; + return lerp(lo, hi, step(0.0031308f, linear_color)); +} + +float3 srgb_to_linear(float3 srgb_color) { + float3 lo = srgb_color / 12.92f; + float3 hi = pow((srgb_color + 0.055f) / 1.055f, 2.4f); + return lerp(lo, hi, step(0.04045f, srgb_color)); +} + #endif // __MATH_INC -- cgit v1.2.3