#version 330 uniform sampler2D tex; uniform float gamma, exposure; in vec2 fragPosScreen; out vec4 outputColor; void main() { vec4 texColor = texture(tex, fragPosScreen); if (texColor.a < 1e-4) discard; vec3 mapped = texColor.rgb; if (exposure < 1e-4) mapped = mapped / (mapped + vec3(1.0)); else mapped = vec3(1.0) - exp(-mapped * exposure); outputColor = vec4(pow(mapped, vec3(1.0/gamma)), 1.0f); }