aboutsummaryrefslogtreecommitdiff
path: root/client/shaders/extract_bloom/opengl_fragment.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'client/shaders/extract_bloom/opengl_fragment.glsl')
-rw-r--r--client/shaders/extract_bloom/opengl_fragment.glsl21
1 files changed, 21 insertions, 0 deletions
diff --git a/client/shaders/extract_bloom/opengl_fragment.glsl b/client/shaders/extract_bloom/opengl_fragment.glsl
new file mode 100644
index 000000000..8c25328ac
--- /dev/null
+++ b/client/shaders/extract_bloom/opengl_fragment.glsl
@@ -0,0 +1,21 @@
+#define rendered texture0
+
+uniform sampler2D rendered;
+uniform mediump float exposureFactor = 2.5;
+uniform float bloomLuminanceThreshold = 1.0;
+
+#ifdef GL_ES
+varying mediump vec2 varTexCoord;
+#else
+centroid varying vec2 varTexCoord;
+#endif
+
+
+void main(void)
+{
+ vec2 uv = varTexCoord.st;
+ vec4 color = texture2D(rendered, uv).rgba;
+ // translate to linear colorspace (approximate)
+ color.rgb = pow(color.rgb, vec3(2.2)) * exposureFactor;
+ gl_FragColor = vec4(color.rgb, 1.0); // force full alpha to avoid holes in the image.
+}