FireFly.shader 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. Shader "Unlit/FireFlyNew"
  2. {
  3. Properties
  4. {
  5. _MainTex ("Albedo (Emissive)", 2D) = "white" {}
  6. _Wings ("Wings", 2D) = "white" {}
  7. _EmissiveAmount ("_EmissiveAmount", Float) =2.0
  8. }
  9. SubShader
  10. {
  11. Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
  12. LOD 100
  13. Pass
  14. {
  15. CGPROGRAM
  16. #pragma vertex vert alpha:fade
  17. #pragma fragment frag
  18. #include "UnityCG.cginc"
  19. struct appdata
  20. {
  21. float4 vertex : POSITION;
  22. float4 uv : TEXCOORD0;
  23. float4 color : COLOR;
  24. };
  25. struct v2f
  26. {
  27. float4 uv : TEXCOORD0;
  28. float4 vertex : SV_POSITION;
  29. float4 color : COLOR;
  30. };
  31. sampler2D _MainTex;
  32. float _EmissiveAmount;
  33. //float4 _MainTex_ST;
  34. v2f vert (appdata v)
  35. {
  36. v2f o;
  37. o.vertex = UnityObjectToClipPos(v.vertex);
  38. //o.uv = TRANSFORM_TEX(v.uv, _MainTex);
  39. o.uv = v.uv;
  40. o.color.rgba = v.color.rgba;
  41. return o;
  42. }
  43. fixed4 frag (v2f i) : SV_Target
  44. {
  45. fixed4 col = tex2D(_MainTex, i.uv);
  46. float4 emissive = i.color * col.a;
  47. clip(i.color.a - 0.5);
  48. col += emissive * pow(_EmissiveAmount, 2.2);
  49. return col;
  50. }
  51. ENDCG
  52. }
  53. Pass
  54. {
  55. Cull Off
  56. Blend SrcAlpha OneMinusSrcAlpha
  57. CGPROGRAM
  58. #pragma vertex vert
  59. #pragma fragment frag
  60. #include "UnityCG.cginc"
  61. struct appdata
  62. {
  63. float4 vertex : POSITION;
  64. float4 uv : TEXCOORD0;
  65. float4 color : COLOR;
  66. };
  67. struct v2f
  68. {
  69. float4 uv : TEXCOORD0;
  70. float4 vertex : SV_POSITION;
  71. float4 color : COLOR;
  72. };
  73. sampler2D _Wings;
  74. //float4 _MainTex_ST;
  75. v2f vert (appdata v)
  76. {
  77. v2f o;
  78. o.vertex = UnityObjectToClipPos(v.vertex);
  79. //o.uv = TRANSFORM_TEX(v.uv, _MainTex);
  80. o.uv = v.uv;
  81. o.color.rgba = v.color.rgba;
  82. return o;
  83. }
  84. fixed4 frag (v2f i) : SV_Target
  85. {
  86. fixed4 wings = tex2D(_Wings, i.uv.zw);
  87. wings.a = lerp( wings.a, 0, i.color.a);
  88. return wings;
  89. }
  90. ENDCG
  91. }
  92. }
  93. }