PlanetEditor/grk/cw 6/shaders/shader_bloom_final.frag

23 lines
604 B
GLSL
Raw Normal View History

#version 430 core
2024-02-04 22:00:38 +01:00
out vec4 FragColor;
in vec2 TexCoords;
uniform sampler2D scene;
uniform sampler2D bloomBlur;
uniform bool bloom;
uniform float exposure;
void main()
{
2024-02-07 20:16:03 +01:00
const float gamma = 1.5;
2024-02-04 22:00:38 +01:00
vec3 hdrColor = texture(scene, TexCoords).rgb;
vec3 bloomColor = texture(bloomBlur, TexCoords).rgb;
if(bloom)
hdrColor += bloomColor; // additive blending
// tone mapping
vec3 result = vec3(1.0) - exp(-hdrColor * exposure);
// also gamma correct while we're at it
result = pow(result, vec3(1.0 / gamma));
FragColor = vec4(result, 1.0);
}