TG9six 03a642d635 first push
first push
2025-09-06 17:17:39 +04:00

179 lines
9.0 KiB
Plaintext

// Made with Amplify Shader Editor
// Available at the Unity Asset Store - http://u3d.as/y3X
Shader "GPUInstancer/ImpactShield"
{
Properties
{
_ImpactPosition("Impact Position", Vector) = (0,0,0,0)
_ImpactTime("Impact Time", Float) = 0
_ImpactColor("Impact Color", Color) = (0.378244,0.6964117,0.7794118,1)
_ImpactSize("Impact Size", Float) = 0.2
_ShieldImpactTexture("Shield Impact Texture", 2D) = "white" {}
_IdleShieldTexture("Idle Shield Texture", 2D) = "white" {}
[HideInInspector] _texcoord( "", 2D ) = "white" {}
[HideInInspector] __dirty( "", Int ) = 1
}
SubShader
{
Tags{ "RenderType" = "Transparent" "Queue" = "Transparent+0" "IgnoreProjector" = "True" "IsEmissive" = "true" }
Cull Off
CGINCLUDE
#include "UnityShaderVariables.cginc"
#include "UnityPBSLighting.cginc"
#include "Lighting.cginc"
#pragma target 3.0
struct Input
{
float3 worldPos;
float2 uv_texcoord;
};
uniform float _ImpactTime;
uniform float3 _ImpactPosition;
uniform float _ImpactSize;
uniform sampler2D _IdleShieldTexture;
uniform float4 _IdleShieldTexture_ST;
uniform float4 _ImpactColor;
uniform sampler2D _ShieldImpactTexture;
uniform float4 _ShieldImpactTexture_ST;
void surf( Input i , inout SurfaceOutputStandard o )
{
float3 ase_vertex3Pos = mul( unity_WorldToObject, float4( i.worldPos , 1 ) );
float temp_output_22_0 = distance( ase_vertex3Pos , _ImpactPosition );
float2 uv_IdleShieldTexture = i.uv_texcoord * _IdleShieldTexture_ST.xy + _IdleShieldTexture_ST.zw;
float4 tex2DNode36 = tex2D( _IdleShieldTexture, uv_IdleShieldTexture );
float2 uv_ShieldImpactTexture = i.uv_texcoord * _ShieldImpactTexture_ST.xy + _ShieldImpactTexture_ST.zw;
float4 lerpResult23 = lerp( tex2DNode36 , ( ( _ImpactSize / temp_output_22_0 ) * ( _ImpactColor * tex2D( _ShieldImpactTexture, uv_ShieldImpactTexture ) ) ) , (0 + (_ImpactTime - 0) * (1 - 0) / (100 - 0)));
float4 temp_output_18_0 = (( _ImpactTime > 0 ) ? (( temp_output_22_0 < _ImpactSize ) ? lerpResult23 : tex2DNode36 ) : tex2DNode36 );
o.Emission = temp_output_18_0.rgb;
o.Alpha = temp_output_18_0.r;
}
ENDCG
CGPROGRAM
#pragma surface surf Standard alpha:fade keepalpha fullforwardshadows exclude_path:deferred
ENDCG
Pass
{
Name "ShadowCaster"
Tags{ "LightMode" = "ShadowCaster" }
ZWrite On
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 3.0
#pragma multi_compile_shadowcaster
#pragma multi_compile UNITY_PASS_SHADOWCASTER
#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
#include "HLSLSupport.cginc"
#if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN )
#define CAN_SKIP_VPOS
#endif
#include "UnityCG.cginc"
#include "Lighting.cginc"
#include "UnityPBSLighting.cginc"
sampler3D _DitherMaskLOD;
struct v2f
{
V2F_SHADOW_CASTER;
float2 customPack1 : TEXCOORD1;
float3 worldPos : TEXCOORD2;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
v2f vert( appdata_full v )
{
v2f o;
UNITY_SETUP_INSTANCE_ID( v );
UNITY_INITIALIZE_OUTPUT( v2f, o );
UNITY_TRANSFER_INSTANCE_ID( v, o );
Input customInputData;
float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz;
fixed3 worldNormal = UnityObjectToWorldNormal( v.normal );
o.customPack1.xy = customInputData.uv_texcoord;
o.customPack1.xy = v.texcoord;
o.worldPos = worldPos;
TRANSFER_SHADOW_CASTER_NORMALOFFSET( o )
return o;
}
fixed4 frag( v2f IN
#if !defined( CAN_SKIP_VPOS )
, UNITY_VPOS_TYPE vpos : VPOS
#endif
) : SV_Target
{
UNITY_SETUP_INSTANCE_ID( IN );
Input surfIN;
UNITY_INITIALIZE_OUTPUT( Input, surfIN );
surfIN.uv_texcoord = IN.customPack1.xy;
float3 worldPos = IN.worldPos;
fixed3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) );
surfIN.worldPos = worldPos;
SurfaceOutputStandard o;
UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandard, o )
surf( surfIN, o );
#if defined( CAN_SKIP_VPOS )
float2 vpos = IN.pos;
#endif
half alphaRef = tex3D( _DitherMaskLOD, float3( vpos.xy * 0.25, o.Alpha * 0.9375 ) ).a;
clip( alphaRef - 0.01 );
SHADOW_CASTER_FRAGMENT( IN )
}
ENDCG
}
}
Fallback "Diffuse"
//CustomEditor "ASEMaterialInspector"
}
/*ASEBEGIN
Version=14501
391;126;1653;883;3502.456;1009.494;2.337282;True;False
Node;AmplifyShaderEditor.PosVertexDataNode;2;-2313.826,-277.3042;Float;False;0;0;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.Vector3Node;21;-2305.219,-93.00385;Float;False;Property;_ImpactPosition;Impact Position;0;0;Create;True;0;0,0,0;0,0,0;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.SamplerNode;34;-2326.091,507.6712;Float;True;Property;_ShieldImpactTexture;Shield Impact Texture;4;0;Create;True;0;ec89eb58be74afb47a32870060361505;ec89eb58be74afb47a32870060361505;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.DistanceOpNode;22;-2102.865,-199.1562;Float;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0
Node;AmplifyShaderEditor.ColorNode;4;-2323.75,297.3729;Float;False;Property;_ImpactColor;Impact Color;2;0;Create;True;0;0.378244,0.6964117,0.7794118,1;0.1333333,0.3372549,0.1372549,1;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;35;-1900.948,480.7592;Float;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.WireNode;38;-2164.77,171.2971;Float;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;3;-1994.307,-57.90455;Float;False;Property;_ImpactSize;Impact Size;3;0;Create;True;0;0.2;0.4;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleDivideOpNode;8;-1355.407,455.6845;Float;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;17;-1599.909,5.330079;Float;False;Property;_ImpactTime;Impact Time;1;0;Create;True;0;0;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.WireNode;40;-1576.416,588.3773;Float;False;1;0;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.SamplerNode;36;-1608.653,-212.9055;Float;True;Property;_IdleShieldTexture;Idle Shield Texture;5;0;Create;True;0;c3283ecb9e4f9004d89cb59a8745bb27;c3283ecb9e4f9004d89cb59a8745bb27;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;10;-1119.384,475.0891;Float;False;2;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.TFHCRemapNode;9;-1264.276,290.6413;Float;False;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;100;False;3;FLOAT;0;False;4;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.WireNode;39;-1590.688,-442.429;Float;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.LerpOp;23;-869.5189,244.3457;Float;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
Node;AmplifyShaderEditor.WireNode;37;-1527.254,-491.5907;Float;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.TFHCCompareLower;13;-770.1561,-210.6235;Float;False;4;0;FLOAT;0;False;1;FLOAT;0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.TFHCCompareGreater;18;-470.6603,19.93088;Float;False;4;0;FLOAT;0;False;1;FLOAT;0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;-18.33554,-20.37283;Float;False;True;2;Float;ASEMaterialInspector;0;0;Standard;GPUInstancer/ImpactShield;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;False;False;False;False;Off;0;0;False;0;0;False;0;Transparent;0.5;True;True;0;False;Transparent;;Transparent;ForwardOnly;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;False;0;255;255;0;0;0;0;0;0;0;0;False;2;15;10;25;False;0.5;True;2;SrcAlpha;OneMinusSrcAlpha;0;Zero;Zero;OFF;OFF;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;;-1;-1;-1;-1;0;0;0;False;0;0;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
WireConnection;22;0;2;0
WireConnection;22;1;21;0
WireConnection;35;0;4;0
WireConnection;35;1;34;0
WireConnection;38;0;22;0
WireConnection;8;0;3;0
WireConnection;8;1;38;0
WireConnection;40;0;35;0
WireConnection;10;0;8;0
WireConnection;10;1;40;0
WireConnection;9;0;17;0
WireConnection;39;0;3;0
WireConnection;23;0;36;0
WireConnection;23;1;10;0
WireConnection;23;2;9;0
WireConnection;37;0;22;0
WireConnection;13;0;37;0
WireConnection;13;1;39;0
WireConnection;13;2;23;0
WireConnection;13;3;36;0
WireConnection;18;0;17;0
WireConnection;18;2;13;0
WireConnection;18;3;36;0
WireConnection;0;2;18;0
WireConnection;0;9;18;0
ASEEND*/
//CHKSM=50EF3279FA52B4A35623576F83F61B0CF7E347E3