feat(shader): Expand Gaussian blur to 13-tap wide distribution
- Update horizontal and vertical blur shaders from 9-tap to 13-tap kernel - Use Gaussian weights with sigma=3.5 for creamier 'milky' blur effect - Add test_blur_pipeline_wide_tap_distribution to verify >= 11 texture samples - Weights: [0.0152, 0.0300, 0.0525, 0.0812, 0.1110, 0.1342, 0.1432] (symmetric) Task: Phase 1, Task 3 of frosted_glass_20260313 track
This commit is contained in:
@@ -238,15 +238,19 @@ out vec4 FragColor;
|
||||
void main() {
|
||||
vec2 offset = vec2(u_texel_size.x, 0.0);
|
||||
vec4 sum = vec4(0.0);
|
||||
sum += texture(u_texture, v_uv - offset * 4.0) * 0.051;
|
||||
sum += texture(u_texture, v_uv - offset * 3.0) * 0.0918;
|
||||
sum += texture(u_texture, v_uv - offset * 2.0) * 0.12245;
|
||||
sum += texture(u_texture, v_uv - offset * 1.0) * 0.1531;
|
||||
sum += texture(u_texture, v_uv) * 0.1633;
|
||||
sum += texture(u_texture, v_uv + offset * 1.0) * 0.1531;
|
||||
sum += texture(u_texture, v_uv + offset * 2.0) * 0.12245;
|
||||
sum += texture(u_texture, v_uv + offset * 3.0) * 0.0918;
|
||||
sum += texture(u_texture, v_uv + offset * 4.0) * 0.051;
|
||||
sum += texture(u_texture, v_uv - offset * 6.0) * 0.0152;
|
||||
sum += texture(u_texture, v_uv - offset * 5.0) * 0.0300;
|
||||
sum += texture(u_texture, v_uv - offset * 4.0) * 0.0525;
|
||||
sum += texture(u_texture, v_uv - offset * 3.0) * 0.0812;
|
||||
sum += texture(u_texture, v_uv - offset * 2.0) * 0.1110;
|
||||
sum += texture(u_texture, v_uv - offset * 1.0) * 0.1342;
|
||||
sum += texture(u_texture, v_uv) * 0.1432;
|
||||
sum += texture(u_texture, v_uv + offset * 1.0) * 0.1342;
|
||||
sum += texture(u_texture, v_uv + offset * 2.0) * 0.1110;
|
||||
sum += texture(u_texture, v_uv + offset * 3.0) * 0.0812;
|
||||
sum += texture(u_texture, v_uv + offset * 4.0) * 0.0525;
|
||||
sum += texture(u_texture, v_uv + offset * 5.0) * 0.0300;
|
||||
sum += texture(u_texture, v_uv + offset * 6.0) * 0.0152;
|
||||
FragColor = sum;
|
||||
}
|
||||
"""
|
||||
@@ -259,15 +263,19 @@ out vec4 FragColor;
|
||||
void main() {
|
||||
vec2 offset = vec2(0.0, u_texel_size.y);
|
||||
vec4 sum = vec4(0.0);
|
||||
sum += texture(u_texture, v_uv - offset * 4.0) * 0.051;
|
||||
sum += texture(u_texture, v_uv - offset * 3.0) * 0.0918;
|
||||
sum += texture(u_texture, v_uv - offset * 2.0) * 0.12245;
|
||||
sum += texture(u_texture, v_uv - offset * 1.0) * 0.1531;
|
||||
sum += texture(u_texture, v_uv) * 0.1633;
|
||||
sum += texture(u_texture, v_uv + offset * 1.0) * 0.1531;
|
||||
sum += texture(u_texture, v_uv + offset * 2.0) * 0.12245;
|
||||
sum += texture(u_texture, v_uv + offset * 3.0) * 0.0918;
|
||||
sum += texture(u_texture, v_uv + offset * 4.0) * 0.051;
|
||||
sum += texture(u_texture, v_uv - offset * 6.0) * 0.0152;
|
||||
sum += texture(u_texture, v_uv - offset * 5.0) * 0.0300;
|
||||
sum += texture(u_texture, v_uv - offset * 4.0) * 0.0525;
|
||||
sum += texture(u_texture, v_uv - offset * 3.0) * 0.0812;
|
||||
sum += texture(u_texture, v_uv - offset * 2.0) * 0.1110;
|
||||
sum += texture(u_texture, v_uv - offset * 1.0) * 0.1342;
|
||||
sum += texture(u_texture, v_uv) * 0.1432;
|
||||
sum += texture(u_texture, v_uv + offset * 1.0) * 0.1342;
|
||||
sum += texture(u_texture, v_uv + offset * 2.0) * 0.1110;
|
||||
sum += texture(u_texture, v_uv + offset * 3.0) * 0.0812;
|
||||
sum += texture(u_texture, v_uv + offset * 4.0) * 0.0525;
|
||||
sum += texture(u_texture, v_uv + offset * 5.0) * 0.0300;
|
||||
sum += texture(u_texture, v_uv + offset * 6.0) * 0.0152;
|
||||
FragColor = sum;
|
||||
}
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user