You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
951 B
39 lines
951 B
uniform sampler2D inputTex; |
|
|
|
varying vec2 samplePos1; |
|
varying vec2 samplePos2; |
|
varying vec2 samplePos3; |
|
varying vec2 samplePos4; |
|
varying vec2 samplePos5; |
|
|
|
|
|
// If defined, use five samples (blur radius = 5), otherwise 3 samples (radius = 3) |
|
#define FIVE_SAMPLES |
|
|
|
|
|
vec3 blurTex(vec2 pos, float strength) |
|
{ |
|
return texture2D(inputTex, pos).rgb * strength; |
|
} |
|
|
|
void main() |
|
{ |
|
// Do the gaussian blur |
|
// This blur actually has a radius of 4, but we take advantage of gpu's |
|
// linear texture filtering, so e.g. 1.5 actually gives us both texels |
|
// 1 and 2 |
|
#ifdef FIVE_SAMPLES |
|
vec3 tex = blurTex(samplePos1, 0.30); |
|
tex += blurTex(samplePos2, 0.25); |
|
tex += blurTex(samplePos3, 0.25); |
|
tex += blurTex(samplePos4, 0.1); |
|
tex += blurTex(samplePos5, 0.1); |
|
#else |
|
vec3 tex = blurTex(samplePos1, 0.40); |
|
tex += blurTex(samplePos2, 0.30); |
|
tex += blurTex(samplePos3, 0.30); |
|
#endif |
|
|
|
gl_FragColor = vec4(tex, 1.0); |
|
} |
|
|
|
|