// Made with Amplify Shader Editor // Available at the Unity Asset Store - http://u3d.as/y3X Shader "ASE_Base" { Properties { _Texture("Texture", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) _ShaowColor("ShaowColor", Color) = (0.5711552,0.6109352,0.8018868,1) _Boundry("Boundry", Range( 0 , 1)) = 0.5 _Smooth("Smooth", Range( 0 , 1)) = 0.5 _HLColor("HLColor", Color) = (0,0,0,1) _HLBoundry("HLBoundry", Range( 0 , 1)) = 0.2 _HLSmooth("HLSmooth", Range( 0 , 1)) = 0.2 [HDR]_FreColor("FreColor", Color) = (0,0,0,1) _FreBoundry("FreBoundry", Range( 0 , 1)) = 0.3494399 _FreSmooth("FreSmooth", Range( 0 , 1)) = 0.4470588 _EmissionColor("EmissionColor", Color) = (0,0,0,0) _EmissionTex("EmissionTex", 2D) = "white" {} [HideInInspector] _texcoord( "", 2D ) = "white" {} [HideInInspector] __dirty( "", Int ) = 1 } SubShader { Tags{ "RenderType" = "Opaque" "Queue" = "Geometry+0" } Cull Back CGINCLUDE #include "UnityPBSLighting.cginc" #include "UnityCG.cginc" #include "Lighting.cginc" #pragma target 4.6 struct Input { float2 uv_texcoord; float3 worldPos; float3 worldNormal; }; struct SurfaceOutputCustomLightingCustom { half3 Albedo; half3 Normal; half3 Emission; half Metallic; half Smoothness; half Occlusion; half Alpha; Input SurfInput; UnityGIInput GIData; }; uniform sampler2D _Texture; uniform float4 _Texture_ST; uniform float4 _Color; uniform float4 _ShaowColor; uniform float _Boundry; uniform float _Smooth; uniform float4 _HLColor; uniform float _HLBoundry; uniform float _HLSmooth; uniform sampler2D _EmissionTex; uniform float4 _EmissionTex_ST; uniform float4 _EmissionColor; uniform float _FreBoundry; uniform float _FreSmooth; uniform float4 _FreColor; inline half4 LightingStandardCustomLighting( inout SurfaceOutputCustomLightingCustom s, half3 viewDir, UnityGI gi ) { UnityGIInput data = s.GIData; Input i = s.SurfInput; half4 c = 0; #ifdef UNITY_PASS_FORWARDBASE float ase_lightAtten = data.atten; if( _LightColor0.a == 0) ase_lightAtten = 0; #else float3 ase_lightAttenRGB = gi.light.color / ( ( _LightColor0.rgb ) + 0.000001 ); float ase_lightAtten = max( max( ase_lightAttenRGB.r, ase_lightAttenRGB.g ), ase_lightAttenRGB.b ); #endif #if defined(HANDLE_SHADOWS_BLENDING_IN_GI) half bakedAtten = UnitySampleBakedOcclusion(data.lightmapUV.xy, data.worldPos); float zDist = dot(_WorldSpaceCameraPos - data.worldPos, UNITY_MATRIX_V[2].xyz); float fadeDist = UnityComputeShadowFadeDistance(data.worldPos, zDist); ase_lightAtten = UnityMixRealtimeAndBakedShadows(data.atten, bakedAtten, UnityComputeShadowFade(fadeDist)); #endif float2 uv_Texture = i.uv_texcoord * _Texture_ST.xy + _Texture_ST.zw; float temp_output_11_0 = (-1.0 + (_Boundry - 0.0) * (1.0 - -1.0) / (1.0 - 0.0)); float3 ase_worldPos = i.worldPos; #if defined(LIGHTMAP_ON) && UNITY_VERSION < 560 //aseld float3 ase_worldlightDir = 0; #else //aseld float3 ase_worldlightDir = normalize( UnityWorldSpaceLightDir( ase_worldPos ) ); #endif //aseld float3 ase_worldNormal = i.worldNormal; float dotResult3 = dot( ase_worldlightDir , ase_worldNormal ); float smoothstepResult6 = smoothstep( ( temp_output_11_0 - _Smooth ) , ( temp_output_11_0 + _Smooth ) , dotResult3); float4 lerpResult12 = lerp( _ShaowColor , float4( 1,1,1,0 ) , ( ase_lightAtten * smoothstepResult6 )); float temp_output_24_0 = (1.0 + (_HLBoundry - 0.0) * (0.0 - 1.0) / (1.0 - 0.0)); float smoothstepResult27 = smoothstep( ( temp_output_24_0 - _HLSmooth ) , ( temp_output_24_0 + _HLSmooth ) , dotResult3); float4 lerpResult21 = lerp( float4( 0,0,0,0 ) , _HLColor , smoothstepResult27); float2 uv_EmissionTex = i.uv_texcoord * _EmissionTex_ST.xy + _EmissionTex_ST.zw; float temp_output_61_0 = ( 1.0 - (-0.2 + (_FreBoundry - 0.0) * (1.0 - -0.2) / (1.0 - 0.0)) ); float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) ); float fresnelNdotV63 = dot( ase_worldNormal, ase_worldViewDir ); float fresnelNode63 = ( 0.0 + 1.0 * pow( 1.0 - fresnelNdotV63, 1.0 ) ); float smoothstepResult57 = smoothstep( ( temp_output_61_0 - _FreSmooth ) , ( temp_output_61_0 + _FreSmooth ) , fresnelNode63); c.rgb = ( ( tex2D( _Texture, uv_Texture ) * _Color * lerpResult12 ) + lerpResult21 + ( tex2D( _EmissionTex, uv_EmissionTex ) * _EmissionColor ) + ( smoothstepResult57 * _FreColor * _FreColor.a ) ).rgb; c.a = 1; return c; } inline void LightingStandardCustomLighting_GI( inout SurfaceOutputCustomLightingCustom s, UnityGIInput data, inout UnityGI gi ) { s.GIData = data; } void surf( Input i , inout SurfaceOutputCustomLightingCustom o ) { o.SurfInput = i; } ENDCG CGPROGRAM #pragma surface surf StandardCustomLighting keepalpha fullforwardshadows exclude_path:deferred noambient novertexlights nolightmap nodirlightmap noforwardadd ENDCG Pass { Name "ShadowCaster" Tags{ "LightMode" = "ShadowCaster" } ZWrite On CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma target 4.6 #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" struct v2f { V2F_SHADOW_CASTER; float2 customPack1 : TEXCOORD1; float3 worldPos : TEXCOORD2; float3 worldNormal : TEXCOORD3; 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; float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz; half3 worldNormal = UnityObjectToWorldNormal( v.normal ); o.worldNormal = worldNormal; 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 ) ); surfIN.worldPos = worldPos; surfIN.worldNormal = IN.worldNormal; SurfaceOutputCustomLightingCustom o; UNITY_INITIALIZE_OUTPUT( SurfaceOutputCustomLightingCustom, o ) surf( surfIN, o ); #if defined( CAN_SKIP_VPOS ) float2 vpos = IN.pos; #endif SHADOW_CASTER_FRAGMENT( IN ) } ENDCG } } Fallback "Diffuse" CustomEditor "ASEMaterialInspector" } /*ASEBEGIN Version=18935 0;23;1680;1006;2187.127;858.7775;1;True;False Node;AmplifyShaderEditor.CommentaryNode;30;-2377.125,-19.53829;Inherit;False;1307.155;489.8301;;10;9;10;11;8;7;6;16;12;50;49;暗面颜色;1,1,1,1;0;0 Node;AmplifyShaderEditor.CommentaryNode;68;-2408.139,-1233.686;Inherit;False;1371.999;687.4324;;12;63;57;67;61;56;60;59;58;62;64;66;65;菲涅尔;1,1,1,1;0;0 Node;AmplifyShaderEditor.RangedFloatNode;9;-2325.614,225.5459;Inherit;False;Property;_Boundry;Boundry;3;0;Create;True;0;0;0;False;0;False;0.5;0.3348311;0;1;0;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode;65;-2376.298,-891.4084;Inherit;False;Property;_FreBoundry;FreBoundry;9;0;Create;True;0;0;0;False;0;False;0.3494399;0.43;0;1;0;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode;59;-2234.234,-815.5146;Inherit;False;Constant;_Float0;Float 0;6;0;Create;True;0;0;0;False;0;False;-0.2;0;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode;58;-2230.074,-739.8148;Inherit;False;Constant;_Float1;Float 1;6;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode;10;-2329.338,368.7005;Inherit;False;Property;_Smooth;Smooth;4;0;Create;True;0;0;0;False;0;False;0.5;0;0;1;0;1;FLOAT;0 Node;AmplifyShaderEditor.CommentaryNode;29;-2405.569,543.4531;Inherit;False;1357.935;485.3673;;8;22;24;25;26;23;28;21;27;高光颜色;1,1,1,1;0;0 Node;AmplifyShaderEditor.WorldSpaceLightDirHlpNode;4;-3127.512,153.6649;Inherit;False;False;1;0;FLOAT;0;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3 Node;AmplifyShaderEditor.WorldNormalVector;5;-3112.226,298.5156;Inherit;False;False;1;0;FLOAT3;0,0,1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3 Node;AmplifyShaderEditor.TFHCRemapNode;11;-2023.304,230.1501;Inherit;False;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;-1;False;4;FLOAT;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleSubtractOpNode;7;-1812.609,230.0951;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode;25;-2367.857,731.3438;Inherit;False;Property;_HLBoundry;HLBoundry;6;0;Create;True;0;0;0;False;0;False;0.2;0;0;1;0;1;FLOAT;0 Node;AmplifyShaderEditor.DotProductOpNode;3;-2849.644,243.4528;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleAddOpNode;8;-1801.609,357.0945;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.TFHCRemapNode;60;-2060.016,-865.6745;Inherit;False;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;0;False;4;FLOAT;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode;26;-2371.581,879.7299;Inherit;False;Property;_HLSmooth;HLSmooth;7;0;Create;True;0;0;0;False;0;False;0.2;0;0;1;0;1;FLOAT;0 Node;AmplifyShaderEditor.OneMinusNode;61;-1869.831,-858.3264;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode;66;-2355.759,-647.4057;Inherit;False;Property;_FreSmooth;FreSmooth;10;0;Create;True;0;0;0;False;0;False;0.4470588;0.41;0;1;0;1;FLOAT;0 Node;AmplifyShaderEditor.SmoothstepOpNode;6;-1642.693,235.246;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.TFHCRemapNode;24;-2069.54,741.1089;Inherit;False;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;1;False;4;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.LightAttenuation;49;-1891.191,28.72976;Inherit;True;0;1;FLOAT;0 Node;AmplifyShaderEditor.ColorNode;16;-1626.399,46.31538;Inherit;False;Property;_ShaowColor;ShaowColor;2;0;Create;True;0;0;0;False;0;False;0.5711552,0.6109352,0.8018868,1;0.5711552,0.6109352,0.8018868,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.SimpleSubtractOpNode;62;-1715.786,-864.3632;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleAddOpNode;23;-1847.844,869.1172;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.FresnelNode;63;-2067.737,-1171.816;Inherit;True;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;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.CommentaryNode;52;-925.3538,551.858;Inherit;False;503.5979;462.1639;;3;55;54;53;自发光;1,1,1,1;0;0 Node;AmplifyShaderEditor.SimpleAddOpNode;64;-1680.891,-670.3875;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode;50;-1367.444,31.28841;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleSubtractOpNode;22;-1858.844,742.1176;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.SamplerNode;18;-1541.82,-465.0019;Inherit;True;Property;_Texture;Texture;0;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;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;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.SmoothstepOpNode;57;-1527.296,-1165.479;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0.24;False;2;FLOAT;0.87;False;1;FLOAT;0 Node;AmplifyShaderEditor.ColorNode;54;-820.0568,824.948;Inherit;False;Property;_EmissionColor;EmissionColor;11;0;Create;True;0;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.SamplerNode;53;-888.6049,621.8937;Inherit;True;Property;_EmissionTex;EmissionTex;12;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;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;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.ColorNode;67;-1522.664,-922.9005;Inherit;False;Property;_FreColor;FreColor;8;1;[HDR];Create;True;0;0;0;False;0;False;0,0,0,1;0,0.7120419,2,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.SmoothstepOpNode;27;-1627.407,792.4022;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.ColorNode;19;-1495.523,-254.429;Inherit;False;Property;_Color;Color;1;0;Create;True;0;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.LerpOp;12;-1317.251,252.4689;Inherit;True;3;0;COLOR;0,0,0,0;False;1;COLOR;1,1,1,0;False;2;FLOAT;0;False;1;COLOR;0 Node;AmplifyShaderEditor.ColorNode;28;-1618.597,618.7781;Inherit;False;Property;_HLColor;HLColor;5;0;Create;True;0;0;0;False;0;False;0,0,0,1;0,0,0,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.LerpOp;21;-1312.717,792.11;Inherit;True;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode;17;-768.0537,145.4096;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.SimpleMultiplyOpNode;55;-566.6182,625.5836;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode;56;-1264.532,-1165.946;Inherit;True;3;3;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0 Node;AmplifyShaderEditor.SimpleAddOpNode;31;-563.4424,145.3145;Inherit;False;4;4;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;1;COLOR;0 Node;AmplifyShaderEditor.StandardSurfaceOutputNode;1;336.4745,-96.85273;Float;False;True;-1;6;ASEMaterialInspector;0;0;CustomLighting;ASE_Base;False;False;False;False;True;True;True;False;True;False;False;True;False;False;False;False;False;False;False;False;False;Back;0;False;-1;0;False;-1;False;0;False;-1;0;False;-1;False;0;Opaque;0.5;True;True;0;False;Opaque;;Geometry;ForwardOnly;18;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;0;0;False;-1;0;False;-1;0;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;0.44;0,0,0,0;VertexOffset;True;False;Cylindrical;False;True;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;False;15;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;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;11;0;9;0 WireConnection;7;0;11;0 WireConnection;7;1;10;0 WireConnection;3;0;4;0 WireConnection;3;1;5;0 WireConnection;8;0;11;0 WireConnection;8;1;10;0 WireConnection;60;0;65;0 WireConnection;60;3;59;0 WireConnection;60;4;58;0 WireConnection;61;0;60;0 WireConnection;6;0;3;0 WireConnection;6;1;7;0 WireConnection;6;2;8;0 WireConnection;24;0;25;0 WireConnection;62;0;61;0 WireConnection;62;1;66;0 WireConnection;23;0;24;0 WireConnection;23;1;26;0 WireConnection;64;0;61;0 WireConnection;64;1;66;0 WireConnection;50;0;49;0 WireConnection;50;1;6;0 WireConnection;22;0;24;0 WireConnection;22;1;26;0 WireConnection;57;0;63;0 WireConnection;57;1;62;0 WireConnection;57;2;64;0 WireConnection;27;0;3;0 WireConnection;27;1;22;0 WireConnection;27;2;23;0 WireConnection;12;0;16;0 WireConnection;12;2;50;0 WireConnection;21;1;28;0 WireConnection;21;2;27;0 WireConnection;17;0;18;0 WireConnection;17;1;19;0 WireConnection;17;2;12;0 WireConnection;55;0;53;0 WireConnection;55;1;54;0 WireConnection;56;0;57;0 WireConnection;56;1;67;0 WireConnection;56;2;67;4 WireConnection;31;0;17;0 WireConnection;31;1;21;0 WireConnection;31;2;55;0 WireConnection;31;3;56;0 WireConnection;1;13;31;0 ASEEND*/ //CHKSM=CD0CF203F0C6A1A529B599990CF7402C12B356FF