summaryrefslogtreecommitdiff
path: root/advanced_lighting/7.bloom/shaders/final.frag
blob: fe9f5d7080755bfbce268a1f7c7b608a5ccfda41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#version 330 core

in VS_OUT {
	vec2 tex_coords;
} vs_out;

out vec4 frag_color;

uniform sampler2D scene;
uniform sampler2D blur;
uniform bool bloom;
uniform float exposure;

void main()
{
	const float gamma = 2.2;
	vec3 scene_color = texture(scene, vs_out.tex_coords).rgb;
	vec3 blur_color = texture(blur, vs_out.tex_coords).rgb;
	if (bloom) {
		scene_color += blur_color;
	}
	vec3 result = vec3(1.0) - exp(-scene_color * exposure);
	result = pow(result, vec3(1.0 / gamma));
	frag_color = vec4(result, 1.0);
}