Files
2026-03-08 15:37:55 -05:00

65 lines
2.4 KiB
Plaintext

// __multiversion__
// This signals the loading code to prepend either #version 100 or #version 300 es as apropriate.
// To use centroid sampling we need to have version 300 es shaders, which requires changing:
// attribute to in
// varying to out when in vertex shaders or in when in fragment shaders
// defining an out vec4 FragColor and replacing uses of gl_FragColor with FragColor
// texture2D to texture
#if __VERSION__ >= 300
// version 300 code
#ifdef MSAA_FRAMEBUFFER_ENABLED
#define _centroid centroid
#else
#define _centroid
#endif
_centroid in vec2 uv;
#define varying in
#define texture2D texture
out vec4 FragColor;
#define gl_FragColor FragColor
#else
// version 100 code
varying vec2 uv;
#endif
uniform sampler2D TEXTURE_0;
varying vec3 uBlurIncrement;
void main()
{
vec2 imageCoord = uv;
vec4 sum = vec4(0.0);
vec2 blurSize = uBlurIncrement.xy * uBlurIncrement.z;
sum += texture2D(TEXTURE_0, imageCoord - blurSize * 9.0) * 0.0014794516787135662;
sum += texture2D(TEXTURE_0, imageCoord - blurSize * 8.0) * 0.003804239018665086;
sum += texture2D(TEXTURE_0, imageCoord - blurSize * 7.0) * 0.00875346226514214;
sum += texture2D(TEXTURE_0, imageCoord - blurSize * 6.0) * 0.018023411141080636;
sum += texture2D(TEXTURE_0, imageCoord - blurSize * 5.0) * 0.03320772876259043;
sum += texture2D(TEXTURE_0, imageCoord - blurSize * 4.0) * 0.05475028876252328;
sum += texture2D(TEXTURE_0, imageCoord - blurSize * 3.0) * 0.0807753247211904;
sum += texture2D(TEXTURE_0, imageCoord - blurSize * 2.0) * 0.10663900118033988;
sum += texture2D(TEXTURE_0, imageCoord - blurSize * 1.0) * 0.12597909446198644;
sum += texture2D(TEXTURE_0, imageCoord) * 0.1331759960155365;
sum += texture2D(TEXTURE_0, imageCoord + blurSize * 1.0) * 0.12597909446198644;
sum += texture2D(TEXTURE_0, imageCoord + blurSize * 2.0) * 0.10663900118033988;
sum += texture2D(TEXTURE_0, imageCoord + blurSize * 3.0) * 0.0807753247211904;
sum += texture2D(TEXTURE_0, imageCoord + blurSize * 4.0) * 0.05475028876252328;
sum += texture2D(TEXTURE_0, imageCoord + blurSize * 5.0) * 0.03320772876259043;
sum += texture2D(TEXTURE_0, imageCoord + blurSize * 6.0) * 0.018023411141080636;
sum += texture2D(TEXTURE_0, imageCoord + blurSize * 7.0) * 0.00875346226514214;
sum += texture2D(TEXTURE_0, imageCoord + blurSize * 8.0) * 0.003804239018665086;
sum += texture2D(TEXTURE_0, imageCoord + blurSize * 9.0) * 0.0014794516787135662;
gl_FragColor = sum;
}