18 lines
593 B
GLSL
18 lines
593 B
GLSL
extern vec2 direction; // (1.0, 0.0) для X, (0.0, 1.0) для Y
|
|
extern number radius; // радиус размытия
|
|
|
|
vec4 effect(vec4 vcolor, Image tex, vec2 texture_coords, vec2 screen_coords)
|
|
{
|
|
vec4 sum = vec4(0.0);
|
|
float weightTotal = 0.0;
|
|
|
|
for (int i = -10; i <= 10; i++) {
|
|
float offset = float(i);
|
|
float weight = exp(-offset * offset / (2.0 * radius * radius));
|
|
vec2 shift = direction * offset / love_ScreenSize.xy;
|
|
sum += Texel(tex, texture_coords + shift) * weight;
|
|
weightTotal += weight;
|
|
}
|
|
|
|
return sum / weightTotal;
|
|
} |