shader_type canvas_item; render_mode unshaded; varying vec4 vertex_tint; void vertex() { vertex_tint=COLOR; } void fragment() { vec4 center=texture(TEXTURE,UV); vec2 dx=dFdx(UV), dy=dFdy(UV); vec3 neighbors=texture(TEXTURE,UV+dx).rgb+texture(TEXTURE,UV-dx).rgb+texture(TEXTURE,UV+dy).rgb+texture(TEXTURE,UV-dy).rgb; vec3 sharp=clamp(center.rgb*1.2-neighbors*0.05,vec3(0.0),vec3(1.0)); COLOR=vec4(mix(center.rgb,sharp,smoothstep(0.8,1.0,center.a)),center.a)*vertex_tint; }