From 9df79a4b2d68979c3e15797d518d957787ba4e21 Mon Sep 17 00:00:00 2001 From: x2048 Date: Thu, 29 Sep 2022 20:34:05 +0200 Subject: Bloom (#12791) Adds configurable light exposure control and bloom effect (light bleeding) with client-side settings. --- client/shaders/extract_bloom/opengl_fragment.glsl | 21 +++++++++++++++++++++ client/shaders/extract_bloom/opengl_vertex.glsl | 11 +++++++++++ 2 files changed, 32 insertions(+) create mode 100644 client/shaders/extract_bloom/opengl_fragment.glsl create mode 100644 client/shaders/extract_bloom/opengl_vertex.glsl (limited to 'client/shaders/extract_bloom') 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. +} diff --git a/client/shaders/extract_bloom/opengl_vertex.glsl b/client/shaders/extract_bloom/opengl_vertex.glsl new file mode 100644 index 000000000..12692c296 --- /dev/null +++ b/client/shaders/extract_bloom/opengl_vertex.glsl @@ -0,0 +1,11 @@ +#ifdef GL_ES +varying mediump vec2 varTexCoord; +#else +centroid varying vec2 varTexCoord; +#endif + +void main(void) +{ + varTexCoord.st = inTexCoord0.st; + gl_Position = inVertexPosition; +} -- cgit v1.2.3