350 lines
19 KiB
Plaintext
350 lines
19 KiB
Plaintext
|
// Made with Amplify Shader Editor
|
||
|
// Available at the Unity Asset Store - http://u3d.as/y3X
|
||
|
Shader "Polyart/Dreamscape Simple Foliage"
|
||
|
{
|
||
|
Properties
|
||
|
{
|
||
|
_AlphaCutoff("Alpha Cutoff", Range( 0 , 1)) = 0.35
|
||
|
_ColorTint("Color Tint", Color) = (1,1,1,0)
|
||
|
_BaseColorTint("Base Color Tint", Color) = (1,1,1,0)
|
||
|
_FoliageTexture("Foliage Texture", 2D) = "white" {}
|
||
|
_ColorMask("Color Mask", 2D) = "white" {}
|
||
|
_Smoothness("Smoothness", Range( -2 , 2)) = 1
|
||
|
[Header(WIND)]_WindSpeed("Wind Speed", Range( 0 , 1)) = 0.5
|
||
|
_WindScale("Wind Scale", Range( 0 , 2)) = 0.2588236
|
||
|
_WindIntensity("Wind Intensity", Range( 0 , 50)) = 5
|
||
|
_DitherBottomLevel("Dither Bottom Level", Range( -10 , 10)) = 0
|
||
|
_DitherFade("Dither Fade", Range( 0 , 10)) = 0
|
||
|
[Toggle(_DITHERINGON_ON)] _DitheringON("Dithering ON", Float) = 0
|
||
|
[HideInInspector] _texcoord( "", 2D ) = "white" {}
|
||
|
[HideInInspector] __dirty( "", Int ) = 1
|
||
|
}
|
||
|
|
||
|
SubShader
|
||
|
{
|
||
|
Tags{ "RenderType" = "Opaque" "Queue" = "AlphaTest+0" "IgnoreProjector" = "True" }
|
||
|
Cull Off
|
||
|
AlphaToMask On
|
||
|
CGINCLUDE
|
||
|
#include "UnityShaderVariables.cginc"
|
||
|
#include "UnityPBSLighting.cginc"
|
||
|
#include "Lighting.cginc"
|
||
|
#pragma target 4.0
|
||
|
#pragma multi_compile_instancing
|
||
|
#pragma shader_feature _DITHERINGON_ON
|
||
|
struct Input
|
||
|
{
|
||
|
float3 worldPos;
|
||
|
float2 uv_texcoord;
|
||
|
float4 screenPosition;
|
||
|
float eyeDepth;
|
||
|
};
|
||
|
|
||
|
uniform float _WindSpeed;
|
||
|
uniform float _WindScale;
|
||
|
uniform float _WindIntensity;
|
||
|
uniform float4 _BaseColorTint;
|
||
|
uniform sampler2D _FoliageTexture;
|
||
|
uniform float4 _FoliageTexture_ST;
|
||
|
uniform float4 _ColorTint;
|
||
|
uniform sampler2D _ColorMask;
|
||
|
uniform float4 _ColorMask_ST;
|
||
|
uniform float _Smoothness;
|
||
|
uniform float FoliageRenderDistance;
|
||
|
uniform float _DitherBottomLevel;
|
||
|
uniform float _DitherFade;
|
||
|
uniform float _AlphaCutoff;
|
||
|
|
||
|
|
||
|
float3 mod3D289( float3 x ) { return x - floor( x / 289.0 ) * 289.0; }
|
||
|
|
||
|
float4 mod3D289( float4 x ) { return x - floor( x / 289.0 ) * 289.0; }
|
||
|
|
||
|
float4 permute( float4 x ) { return mod3D289( ( x * 34.0 + 1.0 ) * x ); }
|
||
|
|
||
|
float4 taylorInvSqrt( float4 r ) { return 1.79284291400159 - r * 0.85373472095314; }
|
||
|
|
||
|
float snoise( float3 v )
|
||
|
{
|
||
|
const float2 C = float2( 1.0 / 6.0, 1.0 / 3.0 );
|
||
|
float3 i = floor( v + dot( v, C.yyy ) );
|
||
|
float3 x0 = v - i + dot( i, C.xxx );
|
||
|
float3 g = step( x0.yzx, x0.xyz );
|
||
|
float3 l = 1.0 - g;
|
||
|
float3 i1 = min( g.xyz, l.zxy );
|
||
|
float3 i2 = max( g.xyz, l.zxy );
|
||
|
float3 x1 = x0 - i1 + C.xxx;
|
||
|
float3 x2 = x0 - i2 + C.yyy;
|
||
|
float3 x3 = x0 - 0.5;
|
||
|
i = mod3D289( i);
|
||
|
float4 p = permute( permute( permute( i.z + float4( 0.0, i1.z, i2.z, 1.0 ) ) + i.y + float4( 0.0, i1.y, i2.y, 1.0 ) ) + i.x + float4( 0.0, i1.x, i2.x, 1.0 ) );
|
||
|
float4 j = p - 49.0 * floor( p / 49.0 ); // mod(p,7*7)
|
||
|
float4 x_ = floor( j / 7.0 );
|
||
|
float4 y_ = floor( j - 7.0 * x_ ); // mod(j,N)
|
||
|
float4 x = ( x_ * 2.0 + 0.5 ) / 7.0 - 1.0;
|
||
|
float4 y = ( y_ * 2.0 + 0.5 ) / 7.0 - 1.0;
|
||
|
float4 h = 1.0 - abs( x ) - abs( y );
|
||
|
float4 b0 = float4( x.xy, y.xy );
|
||
|
float4 b1 = float4( x.zw, y.zw );
|
||
|
float4 s0 = floor( b0 ) * 2.0 + 1.0;
|
||
|
float4 s1 = floor( b1 ) * 2.0 + 1.0;
|
||
|
float4 sh = -step( h, 0.0 );
|
||
|
float4 a0 = b0.xzyw + s0.xzyw * sh.xxyy;
|
||
|
float4 a1 = b1.xzyw + s1.xzyw * sh.zzww;
|
||
|
float3 g0 = float3( a0.xy, h.x );
|
||
|
float3 g1 = float3( a0.zw, h.y );
|
||
|
float3 g2 = float3( a1.xy, h.z );
|
||
|
float3 g3 = float3( a1.zw, h.w );
|
||
|
float4 norm = taylorInvSqrt( float4( dot( g0, g0 ), dot( g1, g1 ), dot( g2, g2 ), dot( g3, g3 ) ) );
|
||
|
g0 *= norm.x;
|
||
|
g1 *= norm.y;
|
||
|
g2 *= norm.z;
|
||
|
g3 *= norm.w;
|
||
|
float4 m = max( 0.6 - float4( dot( x0, x0 ), dot( x1, x1 ), dot( x2, x2 ), dot( x3, x3 ) ), 0.0 );
|
||
|
m = m* m;
|
||
|
m = m* m;
|
||
|
float4 px = float4( dot( x0, g0 ), dot( x1, g1 ), dot( x2, g2 ), dot( x3, g3 ) );
|
||
|
return 42.0 * dot( m, px);
|
||
|
}
|
||
|
|
||
|
|
||
|
inline float Dither8x8Bayer( int x, int y )
|
||
|
{
|
||
|
const float dither[ 64 ] = {
|
||
|
1, 49, 13, 61, 4, 52, 16, 64,
|
||
|
33, 17, 45, 29, 36, 20, 48, 32,
|
||
|
9, 57, 5, 53, 12, 60, 8, 56,
|
||
|
41, 25, 37, 21, 44, 28, 40, 24,
|
||
|
3, 51, 15, 63, 2, 50, 14, 62,
|
||
|
35, 19, 47, 31, 34, 18, 46, 30,
|
||
|
11, 59, 7, 55, 10, 58, 6, 54,
|
||
|
43, 27, 39, 23, 42, 26, 38, 22};
|
||
|
int r = y * 8 + x;
|
||
|
return dither[r] / 64; // same # of instructions as pre-dividing due to compiler magic
|
||
|
}
|
||
|
|
||
|
|
||
|
void vertexDataFunc( inout appdata_full v, out Input o )
|
||
|
{
|
||
|
UNITY_INITIALIZE_OUTPUT( Input, o );
|
||
|
float3 ase_worldPos = mul( unity_ObjectToWorld, v.vertex );
|
||
|
float mulTime45 = _Time.y * ( _WindSpeed * 3 );
|
||
|
float simplePerlin3D47 = snoise( ( ase_worldPos + mulTime45 )*_WindScale );
|
||
|
v.vertex.xyz += ( v.color * ( ( simplePerlin3D47 * 0.015 ) * _WindIntensity ) ).rgb;
|
||
|
v.vertex.w = 1;
|
||
|
float4 ase_screenPos = ComputeScreenPos( UnityObjectToClipPos( v.vertex ) );
|
||
|
o.screenPosition = ase_screenPos;
|
||
|
o.eyeDepth = -UnityObjectToViewPos( v.vertex.xyz ).z;
|
||
|
}
|
||
|
|
||
|
void surf( Input i , inout SurfaceOutputStandard o )
|
||
|
{
|
||
|
float2 uv_FoliageTexture = i.uv_texcoord * _FoliageTexture_ST.xy + _FoliageTexture_ST.zw;
|
||
|
float4 tex2DNode10 = tex2D( _FoliageTexture, uv_FoliageTexture );
|
||
|
float2 uv_ColorMask = i.uv_texcoord * _ColorMask_ST.xy + _ColorMask_ST.zw;
|
||
|
float4 lerpResult58 = lerp( ( _BaseColorTint * tex2DNode10 ) , ( tex2DNode10 * _ColorTint ) , tex2D( _ColorMask, uv_ColorMask ));
|
||
|
float4 vColor60 = lerpResult58;
|
||
|
o.Albedo = vColor60.rgb;
|
||
|
o.Smoothness = _Smoothness;
|
||
|
o.Alpha = 1;
|
||
|
float vAlpha96 = tex2DNode10.a;
|
||
|
float4 ase_screenPos = i.screenPosition;
|
||
|
float4 ase_screenPosNorm = ase_screenPos / ase_screenPos.w;
|
||
|
ase_screenPosNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm.z : ase_screenPosNorm.z * 0.5 + 0.5;
|
||
|
float2 clipScreen87 = ase_screenPosNorm.xy * _ScreenParams.xy;
|
||
|
float dither87 = Dither8x8Bayer( fmod(clipScreen87.x, 8), fmod(clipScreen87.y, 8) );
|
||
|
float cameraDepthFade81 = (( i.eyeDepth -_ProjectionParams.y - FoliageRenderDistance ) / FoliageRenderDistance);
|
||
|
dither87 = step( dither87, ( 1.0 - cameraDepthFade81 ) );
|
||
|
float vGrassDistance90 = dither87;
|
||
|
float2 clipScreen89 = ase_screenPosNorm.xy * _ScreenParams.xy;
|
||
|
float dither89 = Dither8x8Bayer( fmod(clipScreen89.x, 8), fmod(clipScreen89.y, 8) );
|
||
|
float3 ase_vertex3Pos = mul( unity_WorldToObject, float4( i.worldPos , 1 ) );
|
||
|
dither89 = step( dither89, saturate( ( ( ase_vertex3Pos.y + _DitherBottomLevel ) * ( _DitherFade * 2 ) ) ) );
|
||
|
float vTerrainDither91 = dither89;
|
||
|
#ifdef _DITHERINGON_ON
|
||
|
float staticSwitch108 = ( ( vAlpha96 * vGrassDistance90 ) * vTerrainDither91 );
|
||
|
#else
|
||
|
float staticSwitch108 = vAlpha96;
|
||
|
#endif
|
||
|
clip( staticSwitch108 - _AlphaCutoff );
|
||
|
}
|
||
|
|
||
|
ENDCG
|
||
|
CGPROGRAM
|
||
|
#pragma surface surf Standard keepalpha fullforwardshadows exclude_path:deferred vertex:vertexDataFunc
|
||
|
|
||
|
ENDCG
|
||
|
Pass
|
||
|
{
|
||
|
Name "ShadowCaster"
|
||
|
Tags{ "LightMode" = "ShadowCaster" }
|
||
|
ZWrite On
|
||
|
AlphaToMask Off
|
||
|
CGPROGRAM
|
||
|
#pragma vertex vert
|
||
|
#pragma fragment frag
|
||
|
#pragma target 4.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"
|
||
|
struct v2f
|
||
|
{
|
||
|
V2F_SHADOW_CASTER;
|
||
|
float3 customPack1 : TEXCOORD1;
|
||
|
float4 customPack2 : TEXCOORD2;
|
||
|
float3 worldPos : 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;
|
||
|
vertexDataFunc( v, customInputData );
|
||
|
float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz;
|
||
|
half3 worldNormal = UnityObjectToWorldNormal( v.normal );
|
||
|
o.customPack1.xy = customInputData.uv_texcoord;
|
||
|
o.customPack1.xy = v.texcoord;
|
||
|
o.customPack2.xyzw = customInputData.screenPosition;
|
||
|
o.customPack1.z = customInputData.eyeDepth;
|
||
|
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.screenPosition = IN.customPack2.xyzw;
|
||
|
surfIN.eyeDepth = IN.customPack1.z;
|
||
|
float3 worldPos = IN.worldPos;
|
||
|
half3 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
|
||
|
SHADOW_CASTER_FRAGMENT( IN )
|
||
|
}
|
||
|
ENDCG
|
||
|
}
|
||
|
}
|
||
|
Fallback "Diffuse"
|
||
|
}
|
||
|
/*ASEBEGIN
|
||
|
Version=18912
|
||
|
1038;114;2305;1679;1467.184;678.9503;1;True;True
|
||
|
Node;AmplifyShaderEditor.CommentaryNode;79;-3084.924,-1028.846;Inherit;False;2026.637;461.4008;Dithering;14;91;89;90;107;87;105;86;104;81;102;80;103;101;106;;1,1,1,1;0;0
|
||
|
Node;AmplifyShaderEditor.CommentaryNode;53;-3122.395,261.2668;Inherit;False;1713.722;584.5107;;12;57;56;49;50;51;47;48;43;45;42;46;44;Wind;1,1,1,1;0;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;103;-3016.774,-778.0253;Inherit;False;Property;_DitherBottomLevel;Dither Bottom Level;9;0;Create;True;0;0;0;False;0;False;0;0.69;-10;10;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;80;-2297.287,-953.8452;Inherit;False;Global;FoliageRenderDistance;FoliageRenderDistance;9;0;Create;True;0;0;0;True;0;False;35;90.3;0;0;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;101;-3018.157,-697.3948;Inherit;False;Property;_DitherFade;Dither Fade;10;0;Create;True;0;0;0;False;0;False;0;0.57;0;10;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.PosVertexDataNode;106;-2992.69,-924.613;Inherit;False;0;0;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||
|
Node;AmplifyShaderEditor.SimpleAddOpNode;104;-2718.58,-828.1163;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.ScaleNode;102;-2750.693,-695.5176;Inherit;False;2;1;0;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.CameraDepthFade;81;-1909.284,-973.8453;Inherit;False;3;2;FLOAT3;0,0,0;False;0;FLOAT;1;False;1;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;44;-3093.157,634.5677;Inherit;False;Property;_WindSpeed;Wind Speed;6;0;Create;True;0;0;0;False;1;Header(WIND);False;0.5;0;0;1;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.CommentaryNode;65;-3112.49,-451.7797;Inherit;False;1702.997;576.199;Comment;10;64;55;63;54;60;58;59;10;12;96;;1,1,1,1;0;0
|
||
|
Node;AmplifyShaderEditor.TexturePropertyNode;12;-2878.581,-297.7398;Inherit;True;Property;_FoliageTexture;Foliage Texture;3;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
||
|
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;105;-2559.415,-828.2041;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.ScaleNode;46;-2791.157,640.5677;Inherit;False;3;1;0;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.OneMinusNode;86;-1638.28,-974.8453;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.SaturateNode;107;-2263.735,-831.4385;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.WorldPosInputsNode;42;-2660.741,448.2984;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
|
||
|
Node;AmplifyShaderEditor.SimpleTimeNode;45;-2652.157,641.5677;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.DitheringNode;87;-1470.281,-978.8453;Inherit;False;1;False;4;0;FLOAT;0;False;1;SAMPLER2D;;False;2;FLOAT4;0,0,0,0;False;3;SAMPLERSTATE;;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.SamplerNode;10;-2658.103,-298.9787;Inherit;True;Property;_TextureSample0;Texture Sample 0;4;0;Create;True;0;0;0;False;0;False;12;None;None;True;0;False;white;Auto;False;Instance;-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.SimpleAddOpNode;43;-2388.156,542.5677;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0
|
||
|
Node;AmplifyShaderEditor.RegisterLocalVarNode;96;-1751.819,-200.8229;Inherit;False;vAlpha;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.ColorNode;55;-2578.789,-101.8611;Inherit;False;Property;_ColorTint;Color Tint;1;0;Create;True;0;0;0;False;0;False;1,1,1,0;1,1,1,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||
|
Node;AmplifyShaderEditor.DitheringNode;89;-2065.981,-836.5086;Inherit;False;1;False;4;0;FLOAT;0;False;1;SAMPLER2D;;False;2;FLOAT4;0,0,0,0;False;3;SAMPLERSTATE;;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.ColorNode;64;-3087.081,-371.1855;Inherit;False;Property;_BaseColorTint;Base Color Tint;2;0;Create;True;0;0;0;False;0;False;1,1,1,0;1,1,1,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||
|
Node;AmplifyShaderEditor.RegisterLocalVarNode;90;-1285.284,-978.8453;Inherit;False;vGrassDistance;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;48;-2650.676,717.2456;Inherit;False;Property;_WindScale;Wind Scale;7;0;Create;True;0;0;0;False;0;False;0.2588236;0;0;2;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.GetLocalVarNode;97;-869.6192,123.2771;Inherit;False;96;vAlpha;1;0;OBJECT;;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;63;-2281.362,-375.9384;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
|
||
|
Node;AmplifyShaderEditor.SamplerNode;59;-2292.036,-95.81062;Inherit;True;Property;_ColorMask;Color Mask;4;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.SimpleMultiplyOpNode;54;-2294.79,-208.0502;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
|
||
|
Node;AmplifyShaderEditor.NoiseGeneratorNode;47;-2219.612,537.2402;Inherit;False;Simplex3D;False;False;2;0;FLOAT3;0,0,0;False;1;FLOAT;1;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.GetLocalVarNode;94;-901.3788,197.7955;Inherit;False;90;vGrassDistance;1;0;OBJECT;;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RegisterLocalVarNode;91;-1878.983,-837.5086;Inherit;False;vTerrainDither;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;51;-2218.673,681.2464;Inherit;False;Property;_WindIntensity;Wind Intensity;8;0;Create;True;0;0;0;False;0;False;5;0;0;50;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.ScaleNode;50;-2016.675,541.2471;Inherit;False;0.015;1;0;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.GetLocalVarNode;95;-894.3788,270.7952;Inherit;False;91;vTerrainDither;1;0;OBJECT;;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.LerpOp;58;-1930.007,-293.4413;Inherit;False;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;92;-644.9665,208.7229;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;49;-1859.674,541.2471;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RegisterLocalVarNode;60;-1754.657,-300.3033;Inherit;False;vColor;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
|
||
|
Node;AmplifyShaderEditor.VertexColorNode;56;-1892.777,378.6124;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||
|
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;93;-461.6665,246.7231;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;57;-1631.273,477.8916;Inherit;True;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;1;-534.5779,-270.3036;Inherit;False;Property;_AlphaCutoff;Alpha Cutoff;0;0;Create;True;0;0;0;False;0;False;0.35;0;0;1;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.StaticSwitch;108;-306.6837,178.0497;Inherit;False;Property;_DitheringON;Dithering ON;11;0;Create;True;0;0;0;False;0;False;0;0;0;True;_DITHERINGON_ON;Toggle;2;Key0;Key1;Create;False;True;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.GetLocalVarNode;61;-279.0808,-6.267761;Inherit;False;60;vColor;1;0;OBJECT;;False;1;COLOR;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;36;-305.9848,87.3504;Inherit;False;Property;_Smoothness;Smoothness;5;0;Create;True;0;0;0;False;0;False;1;0;-2;2;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;0,0;Float;False;True;-1;4;;0;0;Standard;Polyart/Dreamscape Simple Foliage;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;False;True;False;False;False;False;Off;0;False;-1;0;False;-1;False;0;False;-1;0;False;-1;False;0;Custom;0.05;True;True;0;True;Opaque;;AlphaTest;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;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;;-1;-1;-1;-1;0;True;0;0;False;-1;-1;0;True;1;0;0;0;False;0.1;False;-1;0;False;-1;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;104;0;106;2
|
||
|
WireConnection;104;1;103;0
|
||
|
WireConnection;102;0;101;0
|
||
|
WireConnection;81;0;80;0
|
||
|
WireConnection;81;1;80;0
|
||
|
WireConnection;105;0;104;0
|
||
|
WireConnection;105;1;102;0
|
||
|
WireConnection;46;0;44;0
|
||
|
WireConnection;86;0;81;0
|
||
|
WireConnection;107;0;105;0
|
||
|
WireConnection;45;0;46;0
|
||
|
WireConnection;87;0;86;0
|
||
|
WireConnection;10;0;12;0
|
||
|
WireConnection;43;0;42;0
|
||
|
WireConnection;43;1;45;0
|
||
|
WireConnection;96;0;10;4
|
||
|
WireConnection;89;0;107;0
|
||
|
WireConnection;90;0;87;0
|
||
|
WireConnection;63;0;64;0
|
||
|
WireConnection;63;1;10;0
|
||
|
WireConnection;54;0;10;0
|
||
|
WireConnection;54;1;55;0
|
||
|
WireConnection;47;0;43;0
|
||
|
WireConnection;47;1;48;0
|
||
|
WireConnection;91;0;89;0
|
||
|
WireConnection;50;0;47;0
|
||
|
WireConnection;58;0;63;0
|
||
|
WireConnection;58;1;54;0
|
||
|
WireConnection;58;2;59;0
|
||
|
WireConnection;92;0;97;0
|
||
|
WireConnection;92;1;94;0
|
||
|
WireConnection;49;0;50;0
|
||
|
WireConnection;49;1;51;0
|
||
|
WireConnection;60;0;58;0
|
||
|
WireConnection;93;0;92;0
|
||
|
WireConnection;93;1;95;0
|
||
|
WireConnection;57;0;56;0
|
||
|
WireConnection;57;1;49;0
|
||
|
WireConnection;108;1;97;0
|
||
|
WireConnection;108;0;93;0
|
||
|
WireConnection;0;0;61;0
|
||
|
WireConnection;0;4;36;0
|
||
|
WireConnection;0;10;108;0
|
||
|
WireConnection;0;11;57;0
|
||
|
ASEEND*/
|
||
|
//CHKSM=4187E40E8AB7E8DEB22AA2986529D35317461E57
|