@@ -15,43 +15,43 @@ void main() {
15
15
// "0": "./shader-tutorials/09-gaussian-blur/mario.png",
16
16
// },
17
17
18
- // vec4 texture = texture2D(u_texture_0, uv);
19
- // color = texture.rgb;
20
-
21
- // // vec2 imageResolution = vec2(100, 100);
22
- // // vec2 imageResolution = vec2(2832, 2744);
23
- // vec2 imageResolution = vec2(283.2, 274.4);
24
- // vec2 texelSize = 1.0 / imageResolution;
25
-
26
- // // const float kernelSize = 0.0;
27
- // const float kernelSize = 1.0;
28
- // // const float kernelSize = 2.0;
29
- // // const float kernelSize = 3.0;
30
- // vec3 boxBlurColor = vec3(0.0);
31
- // // note: if kernelSize == 1.0, then boxBlurDivisor == 9.0
32
- // float boxBlurDivisor = pow(2.0 * kernelSize + 1.0, 2.0);
33
- // for (float i = -kernelSize; i <= kernelSize; i++) {
34
- // for (float j = -kernelSize; j <= kernelSize; j++) {
35
- // vec4 texture = texture2D(u_texture_0, uv + vec2(i, j) * texelSize);
36
- // boxBlurColor = boxBlurColor + texture.rgb;
37
- // }
38
- // }
39
- // boxBlurColor = boxBlurColor / boxBlurDivisor;
40
- // color = boxBlurColor;
41
-
42
- // float gaussianDivisor = 16.0;
43
- // vec3 gaussianBlurColor = vec3(0.0);
44
- // gaussianBlurColor += texture2D(u_texture_0, uv + vec2(-1, 1) * texelSize).rgb * 1.0;
45
- // gaussianBlurColor += texture2D(u_texture_0, uv + vec2(0, 1) * texelSize).rgb * 2.0;
46
- // gaussianBlurColor += texture2D(u_texture_0, uv + vec2(1, 1) * texelSize).rgb * 1.0;
47
- // gaussianBlurColor += texture2D(u_texture_0, uv + vec2(-1, 0) * texelSize).rgb * 2.0;
48
- // gaussianBlurColor += texture2D(u_texture_0, uv + vec2(0, 0) * texelSize).rgb * 4.0;
49
- // gaussianBlurColor += texture2D(u_texture_0, uv + vec2(1, 0) * texelSize).rgb * 2.0;
50
- // gaussianBlurColor += texture2D(u_texture_0, uv + vec2(-1, -1) * texelSize).rgb * 1.0;
51
- // gaussianBlurColor += texture2D(u_texture_0, uv + vec2(0, -1) * texelSize).rgb * 2.0;
52
- // gaussianBlurColor += texture2D(u_texture_0, uv + vec2(1, -1) * texelSize).rgb * 1.0;
53
- // gaussianBlurColor = gaussianBlurColor / gaussianDivisor;
54
- // color = gaussianBlurColor;
18
+ vec4 texture = texture2D (u_texture_0, uv);
19
+ color = texture.rgb;
20
+
21
+ // vec2 imageResolution = vec2(100, 100);
22
+ // vec2 imageResolution = vec2(2832, 2744);
23
+ vec2 imageResolution = vec2 (283.2 , 274.4 );
24
+ vec2 texelSize = 1.0 / imageResolution;
25
+
26
+ // const float kernelSize = 0.0;
27
+ const float kernelSize = 1.0 ;
28
+ // const float kernelSize = 2.0;
29
+ // const float kernelSize = 3.0;
30
+ vec3 boxBlurColor = vec3 (0.0 );
31
+ // note: if kernelSize == 1.0, then boxBlurDivisor == 9.0
32
+ float boxBlurDivisor = pow (2.0 * kernelSize + 1.0 , 2.0 );
33
+ for (float i = - kernelSize; i <= kernelSize; i++ ) {
34
+ for (float j = - kernelSize; j <= kernelSize; j++ ) {
35
+ vec4 texture = texture2D (u_texture_0, uv + vec2 (i, j) * texelSize);
36
+ boxBlurColor = boxBlurColor + texture.rgb;
37
+ }
38
+ }
39
+ boxBlurColor = boxBlurColor / boxBlurDivisor;
40
+ color = boxBlurColor;
41
+
42
+ float gaussianDivisor = 16.0 ;
43
+ vec3 gaussianBlurColor = vec3 (0.0 );
44
+ gaussianBlurColor += texture2D (u_texture_0, uv + vec2 (- 1 , 1 ) * texelSize).rgb * 1.0 ;
45
+ gaussianBlurColor += texture2D (u_texture_0, uv + vec2 (0 , 1 ) * texelSize).rgb * 2.0 ;
46
+ gaussianBlurColor += texture2D (u_texture_0, uv + vec2 (1 , 1 ) * texelSize).rgb * 1.0 ;
47
+ gaussianBlurColor += texture2D (u_texture_0, uv + vec2 (- 1 , 0 ) * texelSize).rgb * 2.0 ;
48
+ gaussianBlurColor += texture2D (u_texture_0, uv + vec2 (0 , 0 ) * texelSize).rgb * 4.0 ;
49
+ gaussianBlurColor += texture2D (u_texture_0, uv + vec2 (1 , 0 ) * texelSize).rgb * 2.0 ;
50
+ gaussianBlurColor += texture2D (u_texture_0, uv + vec2 (- 1 , - 1 ) * texelSize).rgb * 1.0 ;
51
+ gaussianBlurColor += texture2D (u_texture_0, uv + vec2 (0 , - 1 ) * texelSize).rgb * 2.0 ;
52
+ gaussianBlurColor += texture2D (u_texture_0, uv + vec2 (1 , - 1 ) * texelSize).rgb * 1.0 ;
53
+ gaussianBlurColor = gaussianBlurColor / gaussianDivisor;
54
+ color = gaussianBlurColor;
55
55
56
56
gl_FragColor = vec4 (color, 1.0 );
57
57
}
0 commit comments