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