DamageFlash.shader 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. // Made with Amplify Shader Editor
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "AdonShader/DamageFlash"
  4. {
  5. Properties
  6. {
  7. _Bias("Bias", Float) = 0
  8. _Color0("Color 0", Color) = (1,0.4901493,0.1462264,0)
  9. _Scale("Scale", Float) = 0
  10. _Power("Power", Float) = 0
  11. [HideInInspector] __dirty( "", Int ) = 1
  12. }
  13. SubShader
  14. {
  15. Tags{ "RenderType" = "Transparent" "Queue" = "Transparent+0" "IgnoreProjector" = "True" "IsEmissive" = "true" }
  16. Cull Back
  17. CGINCLUDE
  18. #include "UnityPBSLighting.cginc"
  19. #include "Lighting.cginc"
  20. #pragma target 3.0
  21. struct Input
  22. {
  23. float3 worldPos;
  24. float3 worldNormal;
  25. };
  26. uniform float4 _Color0;
  27. uniform float _Bias;
  28. uniform float _Scale;
  29. uniform float _Power;
  30. void surf( Input i , inout SurfaceOutputStandard o )
  31. {
  32. float3 ase_worldPos = i.worldPos;
  33. float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) );
  34. float3 ase_worldNormal = i.worldNormal;
  35. float fresnelNdotV1 = dot( ase_worldNormal, ase_worldViewDir );
  36. float fresnelNode1 = ( _Bias + _Scale * pow( 1.0 - fresnelNdotV1, _Power ) );
  37. float4 temp_output_2_0 = ( _Color0 * fresnelNode1 );
  38. o.Emission = temp_output_2_0.rgb;
  39. o.Alpha = temp_output_2_0.r;
  40. }
  41. ENDCG
  42. CGPROGRAM
  43. #pragma surface surf Standard alpha:fade keepalpha fullforwardshadows
  44. ENDCG
  45. Pass
  46. {
  47. Name "ShadowCaster"
  48. Tags{ "LightMode" = "ShadowCaster" }
  49. ZWrite On
  50. CGPROGRAM
  51. #pragma vertex vert
  52. #pragma fragment frag
  53. #pragma target 3.0
  54. #pragma multi_compile_shadowcaster
  55. #pragma multi_compile UNITY_PASS_SHADOWCASTER
  56. #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
  57. #include "HLSLSupport.cginc"
  58. #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN )
  59. #define CAN_SKIP_VPOS
  60. #endif
  61. #include "UnityCG.cginc"
  62. #include "Lighting.cginc"
  63. #include "UnityPBSLighting.cginc"
  64. sampler3D _DitherMaskLOD;
  65. struct v2f
  66. {
  67. V2F_SHADOW_CASTER;
  68. float3 worldPos : TEXCOORD1;
  69. float3 worldNormal : TEXCOORD2;
  70. UNITY_VERTEX_INPUT_INSTANCE_ID
  71. UNITY_VERTEX_OUTPUT_STEREO
  72. };
  73. v2f vert( appdata_full v )
  74. {
  75. v2f o;
  76. UNITY_SETUP_INSTANCE_ID( v );
  77. UNITY_INITIALIZE_OUTPUT( v2f, o );
  78. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o );
  79. UNITY_TRANSFER_INSTANCE_ID( v, o );
  80. float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz;
  81. half3 worldNormal = UnityObjectToWorldNormal( v.normal );
  82. o.worldNormal = worldNormal;
  83. o.worldPos = worldPos;
  84. TRANSFER_SHADOW_CASTER_NORMALOFFSET( o )
  85. return o;
  86. }
  87. half4 frag( v2f IN
  88. #if !defined( CAN_SKIP_VPOS )
  89. , UNITY_VPOS_TYPE vpos : VPOS
  90. #endif
  91. ) : SV_Target
  92. {
  93. UNITY_SETUP_INSTANCE_ID( IN );
  94. Input surfIN;
  95. UNITY_INITIALIZE_OUTPUT( Input, surfIN );
  96. float3 worldPos = IN.worldPos;
  97. half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) );
  98. surfIN.worldPos = worldPos;
  99. surfIN.worldNormal = IN.worldNormal;
  100. SurfaceOutputStandard o;
  101. UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandard, o )
  102. surf( surfIN, o );
  103. #if defined( CAN_SKIP_VPOS )
  104. float2 vpos = IN.pos;
  105. #endif
  106. half alphaRef = tex3D( _DitherMaskLOD, float3( vpos.xy * 0.25, o.Alpha * 0.9375 ) ).a;
  107. clip( alphaRef - 0.01 );
  108. SHADOW_CASTER_FRAGMENT( IN )
  109. }
  110. ENDCG
  111. }
  112. }
  113. Fallback "Diffuse"
  114. CustomEditor "ASEMaterialInspector"
  115. }
  116. /*ASEBEGIN
  117. Version=17800
  118. 367;13;1318;1016;1795.588;421.5051;1.171942;True;False
  119. Node;AmplifyShaderEditor.RangedFloatNode;4;-886.7765,154.1687;Inherit;False;Property;_Bias;Bias;0;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0
  120. Node;AmplifyShaderEditor.RangedFloatNode;5;-890.2537,258.2266;Inherit;False;Property;_Scale;Scale;2;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0
  121. Node;AmplifyShaderEditor.RangedFloatNode;6;-884.6491,358.5008;Inherit;False;Property;_Power;Power;3;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0
  122. Node;AmplifyShaderEditor.FresnelNode;1;-590.3711,225.0107;Inherit;False;Standard;WorldNormal;ViewDir;False;False;5;0;FLOAT3;0,0,1;False;4;FLOAT3;0,0,0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;5;False;1;FLOAT;0
  123. Node;AmplifyShaderEditor.ColorNode;3;-578.3711,20.01065;Inherit;False;Property;_Color0;Color 0;1;0;Create;True;0;0;False;0;1,0.4901493,0.1462264,0;1,0.4901493,0.1462264,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  124. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;2;-271.3711,115.0107;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
  125. Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;0,0;Float;False;True;-1;2;ASEMaterialInspector;0;0;Standard;AdonShader/DamageFlash;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;False;False;False;False;False;False;Back;0;False;-1;0;False;-1;False;0;False;-1;0;False;-1;False;0;Transparent;0.5;True;True;0;False;Transparent;;Transparent;All;14;all;True;True;True;True;0;False;-1;False;0;False;-1;255;False;-1;255;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;False;2;15;10;25;False;0.5;True;2;5;False;-1;10;False;-1;0;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;;-1;-1;-1;-1;0;False;0;0;False;-1;-1;0;False;-1;0;0;0;False;0.1;False;-1;0;False;-1;16;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0;False;9;FLOAT;0;False;10;FLOAT;0;False;13;FLOAT3;0,0,0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0
  126. WireConnection;1;1;4;0
  127. WireConnection;1;2;5;0
  128. WireConnection;1;3;6;0
  129. WireConnection;2;0;3;0
  130. WireConnection;2;1;1;0
  131. WireConnection;0;2;2;0
  132. WireConnection;0;9;2;0
  133. ASEEND*/
  134. //CHKSM=FF5336D775A4C74AD156C0C6A4B9EC147CD8F245