68 lines
1.3 KiB
GLSL
68 lines
1.3 KiB
GLSL
#version 330
|
|
|
|
// Input vertex attributes (from vertex shader)
|
|
in vec3 vertexPos;
|
|
in vec2 fragTexCoord;
|
|
in vec4 fragColor;
|
|
|
|
// Input uniform values
|
|
uniform sampler2D texture0;
|
|
uniform sampler2D texture1;
|
|
uniform vec4 colDiffuse;
|
|
|
|
uniform float divider = 0.5;
|
|
|
|
out vec4 finalColor;
|
|
|
|
float float_to_srgb(float l) {
|
|
if (l < 0.0031308) {
|
|
return l * 12.92;
|
|
} else {
|
|
return 1.055 * pow(l, 0.41666) - 0.055;
|
|
}
|
|
}
|
|
|
|
vec4 linear_to_srgb(vec4 linear) {
|
|
vec4 srgb;
|
|
|
|
if (linear.r < 0.0031308) {
|
|
srgb.r = linear.r * 12.92;
|
|
} else {
|
|
srgb.r = 1.055 * pow(linear.r, 0.41666) - 0.055;
|
|
}
|
|
|
|
if (linear.g < 0.0031308) {
|
|
srgb.g = linear.g * 12.92;
|
|
} else {
|
|
srgb.g = 1.055 * pow(linear.g, 0.41666) - 0.055;
|
|
}
|
|
|
|
if (linear.b < 0.0031308) {
|
|
srgb.b = linear.b * 12.92;
|
|
} else {
|
|
srgb.b = 1.055 * pow(linear.b, 0.41666) - 0.055;
|
|
}
|
|
|
|
srgb.a = linear.a;
|
|
|
|
return srgb;
|
|
}
|
|
|
|
float float_to_linear(float s) {
|
|
if (s <= 0.04045) {
|
|
return s / 12.92;
|
|
} else {
|
|
return pow((s + 0.055) / 1.055, 2.4);
|
|
}
|
|
}
|
|
|
|
vec4 srgb_to_linear(vec4 srgb) {
|
|
return vec4(float_to_linear(srgb.r), float_to_linear(srgb.g), float_to_linear(srgb.b), srgb.a);
|
|
}
|
|
|
|
void main()
|
|
{
|
|
finalColor = linear_to_srgb(vec4(1, 1, 1, 0.25));
|
|
finalColor = vec4(1);
|
|
}
|