// 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