36 lines
739 B
Plaintext
36 lines
739 B
Plaintext
shader_type canvas_item;
|
|
|
|
uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, filter_nearest;
|
|
|
|
uniform float kernelOffset = 1;
|
|
|
|
void fragment()
|
|
{
|
|
vec2 pixelSize = SCREEN_PIXEL_SIZE * kernelOffset;
|
|
|
|
vec4 blurred = vec4( 0, 0, 0, 0 );
|
|
int kernel = 2;
|
|
|
|
for ( int x = -kernel; x<= kernel; ++x )
|
|
{
|
|
for ( int y = -kernel; y<= kernel; ++y )
|
|
{
|
|
vec2 sampledUV = SCREEN_UV + pixelSize * vec2( float(x), float( y ) );
|
|
vec4 value = textureLod( screen_texture, sampledUV, 0 );
|
|
|
|
if ( ( value.r + value.g + value.b ) * 255.0 < 10.0 )
|
|
{
|
|
value.a = 0.0;
|
|
}
|
|
|
|
blurred += value;
|
|
}
|
|
}
|
|
|
|
blurred /= float( kernel * kernel );
|
|
|
|
|
|
COLOR = blurred;
|
|
;
|
|
}
|