uniform sampler2DRect colorSampler; uniform vec3 minMaxMean; uniform float gamma; layout(location = 0)out vec4 outColor; void main(void) { ivec2 pos = ivec2(gl_FragCoord.xy); vec3 color = texelFetch(colorSampler, pos).xyz; //vec3 mapped = (color-minMaxMean.r)/(minMaxMean.g-minMaxMean.r); // Exposure tone mapping vec3 mapped = vec3(1.0) - exp(-color * 0.5/minMaxMean.b); // Gamma correction mapped = pow(mapped, vec3(1.0 / gamma)); outColor = vec4(mapped, 1.0); }