mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
17 lines
557 B
GLSL
17 lines
557 B
GLSL
//https://gamedev.stackexchange.com/questions/92015/optimized-linear-to-srgb-glsl
|
|
vec3 srgb_to_linear(vec3 srgb) {
|
|
bvec3 cutoff = lessThan(srgb, vec3(0.04045));
|
|
vec3 higher = pow((srgb + vec3(0.055))/vec3(1.055), vec3(2.4));
|
|
vec3 lower = srgb/vec3(12.92);
|
|
|
|
return mix(higher, lower, cutoff);
|
|
}
|
|
|
|
vec3 linear_to_srgb(vec3 linear) {
|
|
bvec3 cutoff = lessThan(linear, vec3(0.0031308));
|
|
vec3 higher = vec3(1.055) * pow(linear, vec3(1.0 / 2.4)) - vec3(0.055);
|
|
vec3 lower = linear * vec3(12.92);
|
|
|
|
return mix(higher, lower, cutoff);
|
|
}
|