SparrowRenderer/shaders/hdr.frag.glsl

21 lines
503 B
GLSL

uniform sampler2DRect colorSampler;
uniform vec3 minMaxMean;
uniform float gamma;
layout(location = 0)out vec4 outColor;
void main(void) {
ivec2 pos = ivec2(gl_FragCoord.xy);
vec3 color = texelFetch(colorSampler, pos).xyz;
//vec3 mapped = (color-minMaxMean.r)/(minMaxMean.g-minMaxMean.r);
// Exposure tone mapping
vec3 mapped = vec3(1.0) - exp(-color * 0.5/minMaxMean.b);
// Gamma correction
mapped = pow(mapped, vec3(1.0 / gamma));
outColor = vec4(mapped, 1.0);
}