29 lines
745 B
GLSL
29 lines
745 B
GLSL
#version 330 core
|
|
out vec4 FragColor;
|
|
|
|
in vec2 TexCoords;
|
|
|
|
uniform sampler2D screenTexture;
|
|
uniform float brightness = 0.0f;
|
|
uniform float colorContrast = 0.0f;
|
|
uniform float saturation = 1.0f;
|
|
|
|
void main()
|
|
{
|
|
vec3 originalcolor = texture(screenTexture, TexCoords).rgb;
|
|
vec3 finalcolor = originalcolor;
|
|
const float gamma = 2.2;
|
|
finalcolor = pow(finalcolor, vec3(1.0 / gamma));
|
|
|
|
vec3 contrast = vec3(1.0f) - finalcolor;
|
|
|
|
finalcolor = mix(finalcolor,vec3(1.0f) - finalcolor,colorContrast);
|
|
|
|
float average = (finalcolor[0]+finalcolor[1]+finalcolor[2])/3.0f;
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
finalcolor[i] = average + saturation * (finalcolor[i] - average);
|
|
}
|
|
|
|
FragColor = vec4(finalcolor,1.0f);
|
|
} |