rj-action-library/Runtime/Shading/Shaders/Baking/Dilation.gdshader

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;
;
}