#version 330 core

in VSOUT {
	vec2		texc;
} vsout;

out vec4		fcolor;

uniform sampler2D	hdrbuf;
uniform float		exposure;

void main(void)
{
	const float	gamma = 2.2;

	vec3		hdrcolor, mapped;

	hdrcolor = vec3(texture(hdrbuf, vsout.texc));

	/* NOTE(pryazha): Reinhard tone mapping */
	/* mapped = hdrcolor/(hdrcolor+vec3(1.0)); */

	/* NOTE(pryazha): Tone mapping with exposure (i guess) */
	mapped = vec3(1.0)-exp(-hdrcolor*exposure);

	mapped = pow(mapped, vec3(1.0/gamma));

	fcolor = vec4(mapped, 1.0);
}