]> git.lizzy.rs Git - minetest.git/blob - client/shaders/extract_bloom/opengl_fragment.glsl
Fix no color values on bloom texture (#13197)
[minetest.git] / client / shaders / extract_bloom / opengl_fragment.glsl
1 #define rendered texture0
2
3 struct ExposureParams {
4         float compensationFactor;
5 };
6
7 uniform sampler2D rendered;
8 uniform mediump float bloomStrength;
9 uniform ExposureParams exposureParams;
10
11 #ifdef GL_ES
12 varying mediump vec2 varTexCoord;
13 #else
14 centroid varying vec2 varTexCoord;
15 #endif
16
17 #ifdef ENABLE_AUTO_EXPOSURE
18 varying float exposure; // linear exposure factor, see vertex shader
19 #endif
20
21 void main(void)
22 {
23         vec2 uv = varTexCoord.st;
24         vec3 color = texture2D(rendered, uv).rgb;
25         // translate to linear colorspace (approximate)
26         color = pow(color, vec3(2.2));
27
28         color *= exposureParams.compensationFactor * bloomStrength;
29
30 #ifdef ENABLE_AUTO_EXPOSURE
31         color *= exposure;
32 #endif
33
34         gl_FragColor = vec4(color, 1.0); // force full alpha to avoid holes in the image.
35 }