summaryrefslogtreecommitdiffstats
path: root/math.cginc
diff options
context:
space:
mode:
Diffstat (limited to 'math.cginc')
-rwxr-xr-xmath.cginc12
1 files changed, 12 insertions, 0 deletions
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