Newer
Older
DungeonShooting / DungeonShooting_Godot / resource / shader / Outline.gdshader
@小李xl 小李xl on 21 Mar 2024 590 bytes 测试特效
  1. shader_type canvas_item;
  2.  
  3. //轮廓颜色
  4. uniform vec4 outline_color : source_color = vec4(0.0, 0.0, 0.0, 1.0);
  5.  
  6. void fragment() {
  7. float a = COLOR.a;
  8. //显示轮廓
  9. if (a == 0.0) {
  10. vec2 size = TEXTURE_PIXEL_SIZE;
  11. float outline;
  12. outline = texture(TEXTURE, UV + vec2(-size.x, 0)).a;
  13. outline += texture(TEXTURE, UV + vec2(0, size.y)).a;
  14. outline += texture(TEXTURE, UV + vec2(size.x, 0)).a;
  15. outline += texture(TEXTURE, UV + vec2(0, -size.y)).a;
  16. outline = min(outline, 1.0);
  17. if (outline > 0.0) {
  18. COLOR = mix(COLOR, outline_color , 1);
  19. COLOR.a = outline_color.a;
  20. }
  21. }
  22. }