Files
Fishing2/Assets/ForestLake/Shaders/M_WaterShader.shader
2025-06-05 07:33:02 +08:00

231 lines
13 KiB
Plaintext

// Made with Amplify Shader Editor v1.9.1.5
// Available at the Unity Asset Store - http://u3d.as/y3X
Shader "WaterShader"
{
Properties
{
_WaterNormal("Water Normal", 2D) = "bump" {}
_Distance("Distance", Float) = 0
_Normal2("Normal2", 2D) = "bump" {}
_NormalScale("Normal Scale", Float) = 0
_DeepColor("DeepColor", Color) = (0,0,0,0)
_SurfaceColor("SurfaceColor", Color) = (0,0,0,0)
_Waves_UV1("Waves_UV1", Range( 0 , 100)) = 0.5
_Waves_UV2("Waves_UV2", Range( 0 , 100)) = 0.5
_Smoothness("Smoothness", Range( 0 , 1)) = 0
_Metallic("Metallic", Range( 0 , 1)) = 0
_Opacity("Opacity", Float) = 1
_ShallowTransitionStart("Shallow Transition Start", Float) = 0
[HideInInspector] _texcoord( "", 2D ) = "white" {}
[HideInInspector] __dirty( "", Int ) = 1
}
SubShader
{
Tags{ "RenderType" = "Transparent" "Queue" = "Transparent+0" "IgnoreProjector" = "True" }
Cull Back
CGINCLUDE
#include "UnityStandardUtils.cginc"
#include "UnityShaderVariables.cginc"
#include "UnityCG.cginc"
#include "UnityPBSLighting.cginc"
#include "Lighting.cginc"
#pragma target 5.0
struct Input
{
float2 uv_texcoord;
float4 screenPosition8_g20;
};
uniform sampler2D _Normal2;
uniform float _Waves_UV1;
uniform float _NormalScale;
uniform sampler2D _WaterNormal;
uniform float _Waves_UV2;
uniform float4 _DeepColor;
uniform float4 _SurfaceColor;
UNITY_DECLARE_DEPTH_TEXTURE( _CameraDepthTexture );
uniform float4 _CameraDepthTexture_TexelSize;
uniform float _Distance;
uniform float _Metallic;
uniform float _Smoothness;
uniform float _ShallowTransitionStart;
uniform float _Opacity;
void vertexDataFunc( inout appdata_full v, out Input o )
{
UNITY_INITIALIZE_OUTPUT( Input, o );
float4 ase_vertex4Pos = v.vertex;
float3 vertexPos8_g20 = ase_vertex4Pos.xyz;
float4 ase_screenPos8_g20 = ComputeScreenPos( UnityObjectToClipPos( vertexPos8_g20 ) );
o.screenPosition8_g20 = ase_screenPos8_g20;
}
void surf( Input i , inout SurfaceOutputStandard o )
{
float2 panner169 = ( 1.0 * _Time.y * float2( -0.03,0 ) + ( i.uv_texcoord * _Waves_UV1 ));
float2 panner170 = ( 1.0 * _Time.y * float2( 0.04,0.04 ) + ( i.uv_texcoord * _Waves_UV2 ));
float3 lerpResult174 = lerp( BlendNormals( UnpackScaleNormal( tex2D( _Normal2, panner169 ), _NormalScale ) , UnpackScaleNormal( tex2D( _WaterNormal, panner170 ), _NormalScale ) ) , float3(0,0,1) , float3( 0,0,0 ));
o.Normal = lerpResult174;
float4 ase_screenPos8_g20 = i.screenPosition8_g20;
float4 ase_screenPosNorm8 = ase_screenPos8_g20 / ase_screenPos8_g20.w;
ase_screenPosNorm8.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm8.z : ase_screenPosNorm8.z * 0.5 + 0.5;
float screenDepth8_g20 = LinearEyeDepth(SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, ase_screenPosNorm8.xy ));
float distanceDepth8_g20 = abs( ( screenDepth8_g20 - LinearEyeDepth( ase_screenPosNorm8.z ) ) / ( _Distance ) );
float temp_output_163_0 = ( 1.0 - saturate( distanceDepth8_g20 ) );
float4 lerpResult29 = lerp( _DeepColor , _SurfaceColor , temp_output_163_0);
o.Albedo = lerpResult29.rgb;
o.Metallic = _Metallic;
o.Smoothness = _Smoothness;
float clampResult160 = clamp( ( lerpResult29.a * (1.0 + (temp_output_163_0 - _ShallowTransitionStart) * (0.0 - 1.0) / (1.0 - _ShallowTransitionStart)) * _Opacity ) , 0.0 , 1.0 );
o.Alpha = clampResult160;
}
ENDCG
CGPROGRAM
#pragma surface surf Standard alpha:fade keepalpha fullforwardshadows vertex:vertexDataFunc
ENDCG
Pass
{
Name "ShadowCaster"
Tags{ "LightMode" = "ShadowCaster" }
ZWrite On
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 5.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;
float4 customPack2 : TEXCOORD2;
float3 worldPos : TEXCOORD3;
float4 tSpace0 : TEXCOORD4;
float4 tSpace1 : TEXCOORD5;
float4 tSpace2 : TEXCOORD6;
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.customPack2.xyzw = customInputData.screenPosition8_g20;
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;
surfIN.screenPosition8_g20 = IN.customPack2.xyzw;
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 "Diffuse"
}
/*ASEBEGIN
Version=19105
Node;AmplifyShaderEditor.ColorNode;27;-129.6184,-356.4741;Inherit;False;Property;_DeepColor;DeepColor;4;0;Create;True;0;0;0;False;0;False;0,0,0,0;0.9386792,1,0.9466282,0.3843137;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.LerpOp;29;190.7074,-40.68962;Inherit;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.BreakToComponentsNode;71;288.9081,134.8487;Inherit;False;COLOR;1;0;COLOR;0,0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15
Node;AmplifyShaderEditor.ColorNode;28;-115.9067,115.8263;Inherit;False;Property;_SurfaceColor;SurfaceColor;5;0;Create;True;0;0;0;False;0;False;0,0,0,0;0.5471698,0.5471698,0.5471698,0.5803922;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;95;1259.528,1360.89;Inherit;False;Property;_Smoothness;Smoothness;8;0;Create;True;0;0;0;False;0;False;0;0.92;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;96;1148.389,1260.356;Inherit;False;Property;_Metallic;Metallic;9;0;Create;True;0;0;0;False;0;False;0;1;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;159;1211.218,1435.783;Inherit;False;3;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.ClampOpNode;160;1393.865,1610.365;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;156;929.8347,1552.43;Inherit;False;Property;_Opacity;Opacity;10;0;Create;True;0;0;0;False;0;False;1;1;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.TFHCRemapNode;158;-47.94653,459.3961;Inherit;False;5;0;FLOAT;0;False;1;FLOAT;0.8;False;2;FLOAT;1;False;3;FLOAT;1;False;4;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.FunctionNode;163;-2666.764,172.3157;Inherit;True;DepthSamplingFunction;1;;20;85e819aa3aaa1204e87f098bf20b3f20;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;164;-492.9974,479.8288;Inherit;False;Property;_ShallowTransitionStart;Shallow Transition Start;11;0;Create;True;0;0;0;False;0;False;0;0.57;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.TextureCoordinatesNode;165;-5718.212,154.9839;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.SimpleMultiplyOpNode;166;-5515.496,317.1039;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;167;-5316.496,580.1039;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.RangedFloatNode;168;-4981.737,471.7148;Float;False;Property;_NormalScale;Normal Scale;3;0;Create;True;0;0;0;False;0;False;0;0.75;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.PannerNode;169;-4976.637,231.6168;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;-0.03,0;False;1;FLOAT;1;False;1;FLOAT2;0
Node;AmplifyShaderEditor.PannerNode;170;-4974.337,344.1158;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0.04,0.04;False;1;FLOAT;1;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SamplerNode;171;-4632.638,239.9157;Inherit;True;Property;_Normal2;Normal2;3;0;Create;True;0;0;0;False;0;False;-1;abc00000000009576515129225354041;abc00000000009576515129225354041;True;0;True;bump;Auto;True;Instance;-1;Auto;Texture2D;8;0;SAMPLER2D;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;1;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SamplerNode;172;-4619.737,449.8158;Inherit;True;Property;_WaterNormal;Water Normal;0;0;Create;True;0;0;0;False;0;False;-1;abc00000000004831255687537903438;abc00000000009576515129225354041;True;0;True;bump;Auto;True;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;1;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.BlendNormalsNode;173;-4192.734,384.4157;Inherit;False;0;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.LerpOp;174;-3620.169,420.1538;Inherit;False;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.RangedFloatNode;175;-5725.496,479.1039;Inherit;False;Property;_Waves_UV1;Waves_UV1;6;0;Create;True;0;0;0;False;0;False;0.5;30;0;100;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;176;-5650.496,650.1039;Inherit;False;Property;_Waves_UV2;Waves_UV2;7;0;Create;True;0;0;0;False;0;False;0.5;30;0;100;0;1;FLOAT;0
Node;AmplifyShaderEditor.Vector3Node;177;-4079.966,511.0888;Inherit;False;Constant;_Vector1;Vector 0;1;0;Create;True;0;0;0;False;0;False;0,0,1;0,0,0;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;2322.663,1550.401;Float;False;True;-1;7;;0;0;Standard;WaterShader;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;False;False;False;False;False;False;Back;0;False;;0;False;;False;0;False;;0;False;;False;0;Transparent;0.5;True;True;0;False;Transparent;;Transparent;All;12;all;True;True;True;True;0;False;;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;2;15;10;25;False;0.5;True;2;5;False;;10;False;;0;0;False;;0;False;;0;False;;0;False;;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;True;Relative;0;;-1;-1;-1;-1;0;False;0;0;False;;-1;0;False;;0;0;0;False;0.1;False;;0;False;;False;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;29;0;27;0
WireConnection;29;1;28;0
WireConnection;29;2;163;0
WireConnection;71;0;29;0
WireConnection;159;0;71;3
WireConnection;159;1;158;0
WireConnection;159;2;156;0
WireConnection;160;0;159;0
WireConnection;158;0;163;0
WireConnection;158;1;164;0
WireConnection;166;0;165;0
WireConnection;166;1;175;0
WireConnection;167;0;165;0
WireConnection;167;1;176;0
WireConnection;169;0;166;0
WireConnection;170;0;167;0
WireConnection;171;1;169;0
WireConnection;171;5;168;0
WireConnection;172;1;170;0
WireConnection;172;5;168;0
WireConnection;173;0;171;0
WireConnection;173;1;172;0
WireConnection;174;0;173;0
WireConnection;174;1;177;0
WireConnection;0;0;29;0
WireConnection;0;1;174;0
WireConnection;0;3;96;0
WireConnection;0;4;95;0
WireConnection;0;9;160;0
ASEEND*/
//CHKSM=465BB8A6EE7CA675960B0618B9A56F28D7257FE9