root / CCV-HAND / apps / addonsExamples / Codeblocks_8_linux / bin / data / shaders / gaussH.fs @ 59

View | Annotate | Download (645 Bytes)

1
uniform sampler2D	tex;
2
uniform float direction;
3
uniform float kernel_size;
4
uniform float size_cx;
5
uniform float size_cy;
6
7
void main (void) {
8
9
    float rho = 20.0;
10
11
12
    vec2 dir = direction < 0.5 ? vec2(1.0,0.0) : vec2(0.0,1.0);
13
14
	float dx = 1.0 / size_cx;
15
16
	float dy = 1.0 / size_cy;
17
	vec2  st = gl_TexCoord [0].st;
18
	
19
	vec4	color = vec4 (0.0, 0.0, 0.0, 0.0);
20
	float	weight = 0.0;
21
	for (float i = -1.0*kernel_size ; i <= kernel_size ; i+=1.0) {
22
		float fac = exp (-(i * i) / (2.0 * rho * rho));
23
		weight += fac;
24
		color += texture2D (tex, st + vec2 (dx*i, dy*i) * dir) * fac;
25
	}
26
	
27
	gl_FragColor =  color / weight;
28
}