#version 330 core uniform sampler2DRect colorSampler; uniform float exposition; uniform float gamma; layout(location = 0)out vec4 outColor; void main(void) { ivec2 pos = ivec2(gl_FragCoord.xy); vec3 color = texelFetch(colorSampler, pos).xyz; // Exposure tone mapping vec3 mapped = vec3(1.0) - exp(-color * 1); // Gamma correction mapped = pow(mapped, vec3(1.0 / gamma)); outColor = vec4(mapped, 1.0); }