sprite_shaders.tscn 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. [gd_scene load_steps=20 format=1]
  2. [ext_resource path="res://cubio.png" type="Texture" id=1]
  3. [sub_resource type="CanvasItemShader" id=1]
  4. _code = { "fragment":"uniform float outline_width=2.0;\nuniform color outline_color=vec4(0,0,0,1);\n\nvec4 col = tex(TEXTURE,UV);\nvec2 ps = TEXTURE_PIXEL_SIZE;\nfloat a;\nfloat maxa=col.a;\nfloat mina=col.a;\na=tex(TEXTURE,UV+vec2(0,-outline_width)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\na=tex(TEXTURE,UV+vec2(0,outline_width)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\na=tex(TEXTURE,UV+vec2(-outline_width,0)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\na=tex(TEXTURE,UV+vec2(outline_width,0)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\n\nCOLOR=mix(col,outline_color,maxa-mina);", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 }
  5. [sub_resource type="CanvasItemMaterial" id=2]
  6. shader/shader = SubResource( 1 )
  7. shader/shading_mode = 0
  8. shader_param/outline_width = 2.0
  9. shader_param/outline_color = Color( 0, 0, 0, 1 )
  10. [sub_resource type="CanvasItemShader" id=3]
  11. _code = { "fragment":"//this shader only works properly with premultiplied alpha blend mode\nuniform float aura_width=2.0;\nuniform color aura_color=vec4(0.4,0.7,0.3,1);\n\nvec4 col = tex(TEXTURE,UV);\nvec2 ps = TEXTURE_PIXEL_SIZE;\nfloat a;\nfloat maxa=col.a;\nfloat mina=col.a;\na=tex(TEXTURE,UV+vec2(0,-aura_width)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\na=tex(TEXTURE,UV+vec2(0,aura_width)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\na=tex(TEXTURE,UV+vec2(-aura_width,0)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\na=tex(TEXTURE,UV+vec2(aura_width,0)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\ncol.rgb*=col.a;\nCOLOR=col;//mix(col,aura_color,maxa-mina);\nfloat auraa=(maxa-mina);\n\nCOLOR.rgb+=aura_color.rgb*(maxa-mina);", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 }
  12. [sub_resource type="CanvasItemMaterial" id=4]
  13. shader/shader = SubResource( 3 )
  14. shader/shading_mode = 0
  15. shader_param/aura_width = 2.0
  16. shader_param/aura_color = Color( 0.4, 0.7, 0.3, 1 )
  17. [sub_resource type="CanvasItemShader" id=5]
  18. _code = { "fragment":"uniform float radius=2.0;\n\nvec4 col = tex(TEXTURE,UV);\nvec2 ps = TEXTURE_PIXEL_SIZE;\ncol+=tex(TEXTURE,UV+vec2(0,-radius)*ps);\ncol+=tex(TEXTURE,UV+vec2(0,radius)*ps);\ncol+=tex(TEXTURE,UV+vec2(-radius,0)*ps);\ncol+=tex(TEXTURE,UV+vec2(radius,0)*ps);\ncol/=5.0;\nCOLOR=col;", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 }
  19. [sub_resource type="CanvasItemMaterial" id=6]
  20. shader/shader = SubResource( 5 )
  21. shader/shading_mode = 0
  22. shader_param/radius = 4.0
  23. [sub_resource type="CanvasItemShader" id=7]
  24. _code = { "fragment":"uniform float fattyness=2.0;\n\nvec2 ruv=(UV-vec2(0.5,0.5));\nfloat len = length(ruv);\nvec2 dir = normalize(ruv);\nlen=pow(len*2.0,fattyness)*0.5;\nruv=len*dir;\nvec4 col = tex(TEXTURE,ruv+vec2(0.5,0.5));\nCOLOR=col;", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 }
  25. [sub_resource type="CanvasItemMaterial" id=8]
  26. shader/shader = SubResource( 7 )
  27. shader/shading_mode = 0
  28. shader_param/fattyness = 2.0
  29. [sub_resource type="CanvasItemShader" id=9]
  30. _code = { "fragment":"\nuniform float radius=5.0;\nuniform color modulate=color(0,0,0,0.7);\n\nvec2 ps = TEXTURE_PIXEL_SIZE;\n\nvec4 shadow = tex(TEXTURE,UV+vec2(-radius,-radius)*ps);\nshadow += tex(TEXTURE,UV+vec2(-radius,0)*ps);\nshadow += tex(TEXTURE,UV+vec2(-radius,radius)*ps);\nshadow += tex(TEXTURE,UV+vec2(0,-radius)*ps);\nshadow += tex(TEXTURE,UV+vec2(0,radius)*ps);\nshadow += tex(TEXTURE,UV+vec2(radius,-radius)*ps);\nshadow += tex(TEXTURE,UV+vec2(radius,0)*ps);\nshadow += tex(TEXTURE,UV+vec2(radius,radius)*ps);\nshadow/=8;\nshadow*=modulate;\n\nvec4 col = tex(TEXTURE,UV);\nCOLOR=mix(shadow,col,col.a);", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 }
  31. [sub_resource type="CanvasItemMaterial" id=10]
  32. shader/shader = SubResource( 9 )
  33. shader/shading_mode = 0
  34. shader_param/radius = 5.0
  35. shader_param/modulate = Color( 0, 0, 0, 0.7 )
  36. [sub_resource type="CanvasItemShader" id=11]
  37. _code = { "fragment":"\nuniform vec2 offset=vec2(8,8);\nuniform color modulate=color(0.5,0,0.1,0.5);\n\nvec2 ps = TEXTURE_PIXEL_SIZE;\n\nvec4 shadow = vec4(modulate.rgb,tex(TEXTURE,UV-offset*ps).a*modulate.a);\nvec4 col = tex(TEXTURE,UV);\n\nCOLOR=mix(shadow,col,col.a);", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 }
  38. [sub_resource type="CanvasItemMaterial" id=12]
  39. shader/shader = SubResource( 11 )
  40. shader/shading_mode = 0
  41. shader_param/offset = Vector2( 8, 8 )
  42. shader_param/modulate = Color( 0.5, 0, 0.1, 0.5 )
  43. [sub_resource type="CanvasItemShader" id=13]
  44. _code = { "fragment":"\nuniform color modulate=color(0.2,0.4,1.0,0.8);\nCOLOR = vec4(modulate.rgb,tex(TEXTURE,UV).a*modulate.a);\n\n\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 }
  45. [sub_resource type="CanvasItemMaterial" id=14]
  46. shader/shader = SubResource( 13 )
  47. shader/shading_mode = 0
  48. shader_param/modulate = Color( 0.013125, 0.194829, 0.406815, 0.818237 )
  49. [sub_resource type="CanvasItemShader" id=15]
  50. _code = { "fragment":"\nuniform float radius=2.0;\nuniform float amount=0.6;\nfloat r = radius;\nvec2 ps = TEXTURE_PIXEL_SIZE;\n\nvec4 col = tex(TEXTURE,UV);\n\nvec4 glow = col;\nglow += tex(TEXTURE,UV+vec2(-r,-r)*ps);\nglow += tex(TEXTURE,UV+vec2(-r,0)*ps);\nglow += tex(TEXTURE,UV+vec2(-r,r)*ps);\nglow += tex(TEXTURE,UV+vec2(0,-r)*ps);\nglow += tex(TEXTURE,UV+vec2(0,r)*ps);\nglow += tex(TEXTURE,UV+vec2(r,-r)*ps);\nglow += tex(TEXTURE,UV+vec2(r,0)*ps);\nglow += tex(TEXTURE,UV+vec2(r,r)*ps);\nr*=2.0;\nglow += tex(TEXTURE,UV+vec2(-r,-r)*ps);\nglow += tex(TEXTURE,UV+vec2(-r,0)*ps);\nglow += tex(TEXTURE,UV+vec2(-r,r)*ps);\nglow += tex(TEXTURE,UV+vec2(0,-r)*ps);\nglow += tex(TEXTURE,UV+vec2(0,r)*ps);\nglow += tex(TEXTURE,UV+vec2(r,-r)*ps);\nglow += tex(TEXTURE,UV+vec2(r,0)*ps);\nglow += tex(TEXTURE,UV+vec2(r,r)*ps);\n\nglow/=17.0;\nglow*=amount;\ncol.rgb*=col.a;\nCOLOR=glow+col;", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 }
  51. [sub_resource type="CanvasItemMaterial" id=16]
  52. shader/shader = SubResource( 15 )
  53. shader/shading_mode = 0
  54. shader_param/radius = 2.0
  55. shader_param/amount = 0.5
  56. [sub_resource type="CanvasItemShader" id=17]
  57. _code = { "fragment":"\nuniform float amount = 20;\nvec2 uv = UV*0.05;\nfloat a = fract(sin(dot(UV ,vec2(12.9898,78.233))) * 438.5453);\nvec4 col = tex(TEXTURE,UV);\ncol.a*=pow(a,amount);\nCOLOR = col;\n\n\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 }
  58. [sub_resource type="CanvasItemMaterial" id=18]
  59. shader/shader = SubResource( 17 )
  60. shader/shading_mode = 0
  61. shader_param/amount = 2.0
  62. [node name="shaders" type="Node2D"]
  63. [node name="normal" type="Sprite" parent="."]
  64. transform/pos = Vector2( 95.4559, 131.272 )
  65. texture = ExtResource( 1 )
  66. [node name="outline" type="Sprite" parent="."]
  67. material/material = SubResource( 2 )
  68. transform/pos = Vector2( 246.456, 128.272 )
  69. texture = ExtResource( 1 )
  70. [node name="aura" type="Sprite" parent="."]
  71. visibility/blend_mode = 4
  72. material/material = SubResource( 4 )
  73. transform/pos = Vector2( 398.185, 130.624 )
  74. texture = ExtResource( 1 )
  75. [node name="blur" type="Sprite" parent="."]
  76. material/material = SubResource( 6 )
  77. transform/pos = Vector2( 548.503, 123.04 )
  78. texture = ExtResource( 1 )
  79. [node name="fatty" type="Sprite" parent="."]
  80. material/material = SubResource( 8 )
  81. transform/pos = Vector2( 696.518, 125.393 )
  82. texture = ExtResource( 1 )
  83. [node name="dropshadow" type="Sprite" parent="."]
  84. material/material = SubResource( 10 )
  85. transform/pos = Vector2( 97.4079, 389.709 )
  86. texture = ExtResource( 1 )
  87. [node name="offsetshadow" type="Sprite" parent="."]
  88. material/material = SubResource( 12 )
  89. transform/pos = Vector2( 254.821, 384.238 )
  90. texture = ExtResource( 1 )
  91. [node name="silouette" type="Sprite" parent="."]
  92. material/material = SubResource( 14 )
  93. transform/pos = Vector2( 418.854, 387.184 )
  94. texture = ExtResource( 1 )
  95. [node name="glow" type="Sprite" parent="."]
  96. visibility/blend_mode = 4
  97. material/material = SubResource( 16 )
  98. transform/pos = Vector2( 563.75, 385.42 )
  99. texture = ExtResource( 1 )
  100. [node name="dissintegrate" type="Sprite" parent="."]
  101. material/material = SubResource( 18 )
  102. transform/pos = Vector2( 708.613, 385.444 )
  103. texture = ExtResource( 1 )