View difference between Paste ID: Jg6tgJgv and udjQPVfs
SHOW: | | - or go back to the newest paste.
1
// gaussianTexCoordsX.vert
2
#version 120
3
4
attribute vec4 position;
5
attribute vec2 texCoord;
6
7
varying vec2 vertex;
8
varying vec2 blurCoords[7];
9
10
void main() {
11-
    gl_Position = position;
11+
    gl_Position = gl_ModelViewProjectionMatrix * position;
12
    gl_TexCoord[0]=gl_MultiTexCoord0;
13
14
    vertex = texCoord;
15
    blurCoords[0] = texCoord + vec2(-3, 0);
16
    blurCoords[1] = texCoord + vec2(-2, 0);
17
    blurCoords[2] = texCoord + vec2(-1, 0);
18
    blurCoords[3] = texCoord + vec2( 0, 0);
19
    blurCoords[4] = texCoord + vec2( 1, 0);
20
    blurCoords[5] = texCoord + vec2( 2, 0);
21
    blurCoords[6] = texCoord + vec2( 3, 0);
22
}
23
24
// gaussian.frag
25
#version 120
26
27
varying vec2 vertex;
28
varying vec2 blurCoords[7];
29
30
const float gaussD3 = 0.0044318;
31
const float gaussD2 = 0.0539910;
32
const float gaussD1 = 0.2419710;
33
const float gaussD0 = 0.3989423;
34
35
uniform sampler2D tex;
36
37
// Simple gaussian blur over the specified coordinates (blurCoords[blurCoords.length/2] is middle point)
38
// standard deviation is 1
39
void main() {
40
    vec4 sum = vec4(0.0);
41
42
    sum += texture2D(tex, blurCoords[0]) * gaussD3;
43
    sum += texture2D(tex, blurCoords[1]) * gaussD2;
44
    sum += texture2D(tex, blurCoords[2]) * gaussD1;
45
    sum += texture2D(tex, blurCoords[3]) * gaussD0;
46
    sum += texture2D(tex, blurCoords[4]) * gaussD1;
47
    sum += texture2D(tex, blurCoords[5]) * gaussD2;
48
    sum += texture2D(tex, blurCoords[6]) * gaussD3;
49
50
    gl_FragColor = sum;
51
}