18
assets/linear_srgb.fs
Normal file
18
assets/linear_srgb.fs
Normal file
@@ -0,0 +1,18 @@
|
||||
precision mediump float;
|
||||
|
||||
varying vec2 fragTexCoord;
|
||||
varying vec4 fragColor;
|
||||
uniform sampler2D texture0;
|
||||
|
||||
vec3 srgb_to_linear(vec3 c) {
|
||||
bvec3 cutoff = lessThanEqual(c, vec3(0.04045));
|
||||
vec3 low = c / 12.92;
|
||||
vec3 high = pow((c + 0.055) / 1.055, vec3(2.4));
|
||||
return mix(high, low, vec3(cutoff));
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 c = texture2D(texture0, fragTexCoord) * fragColor;
|
||||
c.rgb = srgb_to_linear(c.rgb); // decode to linear
|
||||
gl_FragColor = c;
|
||||
}
|
||||
Reference in New Issue
Block a user