Files
HX_MapEditor/Assets/Shader/RoleShader2.0.shader
2025-06-14 13:46:24 +08:00

254 lines
14 KiB
Plaintext

// Made with Amplify Shader Editor
// Available at the Unity Asset Store - http://u3d.as/y3X
Shader "RoleShader"
{
Properties
{
_MainTex("MainTex", 2D) = "white" {}
_emissionpow("emissionpow", Range( 0 , 1)) = 0.5
_RoleNormal("Role Normal", 2D) = "white" {}
_RoleSpecular("Role Specular", 2D) = "gray" {}
_SpecularPow("SpecularPow", Range( 0 , 1)) = 0
_SpecularColor("SpecularColor", Color) = (0,0,0,0)
_OutLineColor("OutLineColor", Color) = (0,0,0,0)
_OutLineWidth("OutLineWidth", Float) = 0.01
_AddColor("AddColor", Color) = (1,1,1,1)
_StreamLight("StreamLight", 2D) = "black" {}
_StreamLightSpeed("StreamLightSpeed", Vector) = (0,0,0,0)
_StreamLightColor("StreamLightColor", Color) = (0,0,0,0)
_StreamLightPow("StreamLightPow", Range( 0 , 2)) = 0
[HideInInspector] _texcoord( "", 2D ) = "white" {}
[HideInInspector] __dirty( "", Int ) = 1
}
SubShader
{
Pass
{
ColorMask 0
ZWrite On
}
Tags{ "RenderType" = "Transparent" "Queue" = "Transparent+0"}
ZWrite Off
Cull Off
CGPROGRAM
#pragma target 3.0
#pragma surface outlineSurf Outline nofog alpha:fade keepalpha noshadow noambient novertexlights nolightmap nodynlightmap nodirlightmap nometa noforwardadd vertex:outlineVertexDataFunc
void outlineVertexDataFunc( inout appdata_full v, out Input o )
{
UNITY_INITIALIZE_OUTPUT( Input, o );
float outlineVar = _OutLineWidth;
v.vertex.xyz += ( v.normal * outlineVar );
}
inline half4 LightingOutline( SurfaceOutput s, half3 lightDir, half atten ) { return half4 ( 0,0,0, s.Alpha); }
void outlineSurf( Input i, inout SurfaceOutput o )
{
o.Emission = _OutLineColor.rgb;
o.Alpha = _AddColor.a;
}
ENDCG
Tags{ "RenderType" = "Transparent" "Queue" = "Transparent+0" "IgnoreProjector" = "True" "IsEmissive" = "true" }
Cull Off
ZWrite Off
CGINCLUDE
#include "UnityShaderVariables.cginc"
#include "UnityPBSLighting.cginc"
#include "Lighting.cginc"
#pragma target 3.0
struct Input
{
float2 uv_texcoord;
};
uniform sampler2D _RoleNormal;
uniform float4 _RoleNormal_ST;
uniform sampler2D _MainTex;
uniform float4 _MainTex_ST;
uniform sampler2D _RoleSpecular;
uniform float4 _RoleSpecular_ST;
uniform float _SpecularPow;
uniform float4 _SpecularColor;
uniform sampler2D _StreamLight;
uniform float2 _StreamLightSpeed;
uniform float4 _StreamLightColor;
uniform float _StreamLightPow;
uniform float _emissionpow;
uniform float4 _AddColor;
uniform float _OutLineWidth;
uniform float4 _OutLineColor;
void vertexDataFunc( inout appdata_full v, out Input o )
{
UNITY_INITIALIZE_OUTPUT( Input, o );
v.vertex.xyz += 0;
}
void surf( Input i , inout SurfaceOutputStandard o )
{
float2 uv_RoleNormal = i.uv_texcoord * _RoleNormal_ST.xy + _RoleNormal_ST.zw;
o.Normal = tex2D( _RoleNormal, uv_RoleNormal ).rgb;
float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw;
float4 tex2DNode5 = tex2D( _MainTex, uv_MainTex );
float2 uv_RoleSpecular = i.uv_texcoord * _RoleSpecular_ST.xy + _RoleSpecular_ST.zw;
float2 panner63 = ( 1.0 * _Time.y * _StreamLightSpeed + i.uv_texcoord);
o.Albedo = ( ( tex2DNode5 + ( tex2D( _RoleSpecular, uv_RoleSpecular ) * _SpecularPow * _SpecularColor ) + ( tex2D( _StreamLight, panner63 ) * _StreamLightColor * _StreamLightPow ) ) * _emissionpow * _AddColor ).rgb;
o.Emission = tex2DNode5.rgb;
float temp_output_30_4 = _AddColor.a;
o.Alpha = temp_output_30_4;
}
ENDCG
CGPROGRAM
#pragma surface surf Standard alpha:fade keepalpha fullforwardshadows exclude_path:deferred vertex:vertexDataFunc
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_GLES || 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;
float4 tSpace0 : TEXCOORD3;
float4 tSpace1 : TEXCOORD4;
float4 tSpace2 : TEXCOORD5;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
v2f vert( appdata_full v )
{
v2f o;
UNITY_SETUP_INSTANCE_ID( v );
UNITY_INITIALIZE_OUTPUT( v2f, o );
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o );
UNITY_TRANSFER_INSTANCE_ID( v, o );
Input customInputData;
vertexDataFunc( v, customInputData );
float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz;
half3 worldNormal = UnityObjectToWorldNormal( v.normal );
half3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz );
half tangentSign = v.tangent.w * unity_WorldTransformParams.w;
half3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign;
o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x );
o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y );
o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z );
o.customPack1.xy = customInputData.uv_texcoord;
o.customPack1.xy = v.texcoord;
o.worldPos = worldPos;
TRANSFER_SHADOW_CASTER_NORMALOFFSET( o )
return o;
}
half4 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;
half3 worldViewDir = normalize( UnityWorldSpaceViewDir( 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 "Legacy Shaders/VertexLit"
CustomEditor "ASEMaterialInspector"
}
/*ASEBEGIN
Version=18100
157;254;1523;799;1387.104;409.3946;1.331298;True;True
Node;AmplifyShaderEditor.CommentaryNode;36;-1905.311,-304.1568;Inherit;False;904.4383;495.3427;流光;7;63;67;72;62;70;71;73;;1,1,1,1;0;0
Node;AmplifyShaderEditor.Vector2Node;71;-1884.227,-7.759783;Inherit;False;Property;_StreamLightSpeed;StreamLightSpeed;11;0;Create;True;0;0;False;0;False;0,0;-0.08,0.08;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
Node;AmplifyShaderEditor.TextureCoordinatesNode;70;-1896.697,-138.6991;Inherit;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.CommentaryNode;32;-1907.61,-866.2379;Inherit;False;900.9741;531.746;高光;4;9;6;8;28;;1,1,1,1;0;0
Node;AmplifyShaderEditor.PannerNode;63;-1642.506,-79.35115;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SamplerNode;62;-1456.992,-255.0508;Inherit;True;Property;_StreamLight;StreamLight;10;0;Create;True;0;0;False;0;False;-1;None;48c773fe278eb8c448db76ab8a829fc9;True;0;False;black;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.SamplerNode;6;-1800.515,-817.6223;Inherit;True;Property;_RoleSpecular;Role Specular;4;0;Create;True;0;0;False;0;False;-1;None;None;True;0;False;gray;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.ColorNode;28;-1761.836,-528.549;Inherit;False;Property;_SpecularColor;SpecularColor;6;0;Create;True;0;0;False;0;False;0,0,0,0;1,1,1,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;8;-1786.313,-620.6932;Inherit;False;Property;_SpecularPow;SpecularPow;5;0;Create;True;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.ColorNode;67;-1406.494,-63.585;Inherit;False;Property;_StreamLightColor;StreamLightColor;12;0;Create;True;0;0;False;0;False;0,0,0,0;1,0.8666667,0.4745098,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;73;-1408.385,110.9325;Inherit;False;Property;_StreamLightPow;StreamLightPow;13;0;Create;True;0;0;False;0;False;0;0.03;0;2;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;9;-1385.752,-681.4929;Inherit;False;3;3;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;2;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.CommentaryNode;35;-1184.254,197.5025;Inherit;False;728;288;勾边;3;2;4;3;;1,1,1,1;0;0
Node;AmplifyShaderEditor.CommentaryNode;33;-846.737,-165.0187;Inherit;False;383.1877;306.5938;自发光与加色;2;19;30;;1,1,1,1;0;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;72;-1145.978,-102.5352;Inherit;False;3;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
Node;AmplifyShaderEditor.SamplerNode;5;-1237.646,-1082.741;Inherit;True;Property;_MainTex;MainTex;0;0;Create;True;0;0;False;0;False;-1;None;052caf368f9808841b55a29093faa488;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.SimpleAddOpNode;7;-531.2498,-615.4205;Inherit;False;3;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.RangedFloatNode;19;-746.0376,-121.2981;Inherit;False;Property;_emissionpow;emissionpow;1;0;Create;True;0;0;False;0;False;0.5;0.8;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;4;-939.2929,317.2177;Inherit;False;Property;_OutLineWidth;OutLineWidth;8;0;Create;True;0;0;False;0;False;0.01;0.0007;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.ColorNode;3;-1154.782,240.1951;Inherit;False;Property;_OutLineColor;OutLineColor;7;0;Create;True;0;0;False;0;False;0,0,0,0;0,0,0,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.ColorNode;30;-679.365,-42.28132;Inherit;False;Property;_AddColor;AddColor;9;0;Create;True;0;0;False;0;False;1,1,1,1;1,1,1,1;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.CommentaryNode;34;-1646.018,-1397.328;Inherit;False;662.6036;255.2031;法线;2;1;25;;1,1,1,1;0;0
Node;AmplifyShaderEditor.CommentaryNode;74;-1186.816,499.111;Inherit;False;848.1315;394.2339;溶解;5;76;83;84;85;86;;1,1,1,1;0;0
Node;AmplifyShaderEditor.RangedFloatNode;25;-1623.876,-1305.833;Inherit;False;Property;_NormalScale;NormalScale;3;0;Create;True;0;0;False;0;False;1;4;0.2;10;0;1;FLOAT;0
Node;AmplifyShaderEditor.OutlineNode;2;-685.7327,240.9267;Inherit;False;0;True;Transparent;2;0;Off;3;0;FLOAT3;0,0,0;False;2;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.TFHCRemapNode;85;-657.8074,560.4135;Inherit;False;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;-0.6;False;4;FLOAT;0.6;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;83;-1165.319,575.7081;Float;False;Property;_DissolveAmount;Dissolve Amount;15;0;Create;True;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.OneMinusNode;84;-831.8074,605.4135;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SamplerNode;76;-1003.974,689.699;Inherit;True;Property;_NoiceTex;NoiceTex;14;0;Create;True;0;0;False;0;False;-1;None;None;True;0;False;black;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;20;-329.4018,-206.5606;Inherit;False;3;3;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;2;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.SamplerNode;1;-1303.415,-1347.328;Inherit;True;Property;_RoleNormal;Role Normal;2;0;Create;True;0;0;False;0;False;-1;None;26c8b246f927b294cb69077f35805c2e;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;2.5;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleAddOpNode;86;-449.8074,598.4135;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;164.3496,-241.6626;Float;False;True;-1;2;ASEMaterialInspector;0;0;Standard;RoleShader;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;False;False;False;False;False;False;Off;2;False;-1;0;False;-1;False;0;False;-1;0;False;-1;True;0;Transparent;0;True;True;0;False;Transparent;;Transparent;ForwardOnly;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;5;False;-1;10;False;-1;0;False;-1;0;False;-1;0;False;1;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;Legacy Shaders/VertexLit;-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
WireConnection;63;0;70;0
WireConnection;63;2;71;0
WireConnection;62;1;63;0
WireConnection;9;0;6;0
WireConnection;9;1;8;0
WireConnection;9;2;28;0
WireConnection;72;0;62;0
WireConnection;72;1;67;0
WireConnection;72;2;73;0
WireConnection;7;0;5;0
WireConnection;7;1;9;0
WireConnection;7;2;72;0
WireConnection;2;0;3;0
WireConnection;2;2;30;4
WireConnection;2;1;4;0
WireConnection;85;0;84;0
WireConnection;84;0;83;0
WireConnection;20;0;7;0
WireConnection;20;1;19;0
WireConnection;20;2;30;0
WireConnection;86;0;85;0
WireConnection;86;1;76;1
WireConnection;0;0;20;0
WireConnection;0;1;1;0
WireConnection;0;2;5;0
WireConnection;0;9;30;4
WireConnection;0;11;2;0
ASEEND*/
//CHKSM=F750E4B6C9E3C6A5CC3A59C7BCDA9E75D8ADA877