blob: ca64470a72e7081d838c82cebc703ad29966ad44 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#version 120
uniform sampler2D DiffuseSampler;
varying vec2 texCoord;
varying vec2 oneTexel;
uniform vec2 InSize;
uniform vec2 BlurDir;
uniform float Radius;
uniform float AlphaMult;
void main() {
vec4 blurred = vec4(0.0);
float totalStrength = 0.0;
float totalAlpha = 0.0;
float totalSamples = 0.0;
for(float r = -Radius; r <= Radius; r += 1.0) {
vec4 sample = texture2D(DiffuseSampler, texCoord + oneTexel * r * BlurDir);
// Accumulate average alpha
totalAlpha = totalAlpha + sample.a;
totalSamples = totalSamples + 1.0;
// Accumulate smoothed blur
//float strength = (2.0 - abs(r / Radius))*sample.a;
float strength = sample.a;
totalStrength = totalStrength + strength;
blurred = blurred + sample;
}
float alpha = totalAlpha/totalSamples*AlphaMult;
gl_FragColor = vec4(blurred.rgb / totalStrength, alpha);
}
|