infinite terrain experiments
[shady.git] / postprocess_blur_u.glsl
blob2d44ff60d7157562c40ee9f8c6f8c9d6ad509a6e
2 @@@ FRAGMENT SHADER
4 uniform sampler2D render;
6 uniform float radius;
7 uniform float var;
9 void main() {
10         
11         vec2 p = gl_TexCoord[0].st;
12         
13         const int n = 12;
14         float r = radius * 0.025;
15         
16         float w = var;
17         vec4 s = texture2D(render, p) * var;
18         
19         // float lt = (s.r + s.g + s.b) / 3;
20         
21         for(int i = -n; i <= n; i++) {
22                 vec2 off = vec2(r * i / n, 0);
23                 vec4 t = texture2D(render, p + off);
24                 float d = clamp(1.0 - (length(off) / r), 0.0, 1.0);
25                 //float l = (t.r + t.g + t.b) / 3;
26                 //l = clamp(l - lt, 0.0, 1.0);
27                 //float k = d * d * d * l * l * l;
28                 float k = d;
29                 s += t * k;
30                 w += k;
31         }
32         
33         gl_FragColor = s / w;