- shader_type canvas_item;
-
- //轮廓颜色
- uniform vec4 outline_color : source_color = vec4(0.0, 0.0, 0.0, 1.0);
-
- void fragment() {
- float a = COLOR.a;
- //显示轮廓
- if (a == 0.0) {
- vec2 size = TEXTURE_PIXEL_SIZE;
- float outline;
- outline = texture(TEXTURE, UV + vec2(-size.x, 0)).a;
- outline += texture(TEXTURE, UV + vec2(0, size.y)).a;
- outline += texture(TEXTURE, UV + vec2(size.x, 0)).a;
- outline += texture(TEXTURE, UV + vec2(0, -size.y)).a;
- outline = min(outline, 1.0);
- if (outline > 0.0) {
- COLOR = mix(COLOR, outline_color , 1);
- COLOR.a = outline_color.a;
- }
- }
- }