385 lines
24 KiB
GLSL
385 lines
24 KiB
GLSL
// Made with Amplify Shader Editor v1.9.2
|
|
// Available at the Unity Asset Store - http://u3d.as/y3X
|
|
Shader "Polyart/Dreamscape/Builtin/Foliage"
|
|
{
|
|
Properties
|
|
{
|
|
[Header(Base Maps)][Header(.)][SingleLineTexture]_FoliageMap("Foliage Map", 2D) = "white" {}
|
|
[SingleLineTexture]_FlowerMask("Flower Mask", 2D) = "white" {}
|
|
[SingleLineTexture]_GradientMap("Gradient Map", 2D) = "white" {}
|
|
_ColorTint("Color Tint", Color) = (0,0,0,0)
|
|
[Toggle(_USEGRADIENTMAP_ON)] _UseGradientMap("Use Gradient Map?", Float) = 0
|
|
_ColorGradient01("Color Gradient 01", Color) = (0,0,0,0)
|
|
_ColorGradient02("Color Gradient 02", Color) = (0,0,0,0)
|
|
[Toggle(_HASSTEM_ON)] _HasStem("Has Stem?", Float) = 0
|
|
_StemColor("Stem Color", Color) = (0,0,0,0)
|
|
_SpecularIntensity("Specular Intensity", Range( -1 , 1)) = 0.1
|
|
_FoliageRoughness("Foliage Roughness", Range( 0 , 1)) = 0.1
|
|
_MaskClip("Mask Clip", Range( 0 , 1)) = 0.5
|
|
[Header(Wind)][Toggle(_USEGLOBALWINDSETTINGS_ON)] _UseGlobalWindSettings("Use Global Wind Settings?", Float) = 0
|
|
[HideInInspector]_WindNoiseTexture("Wind Noise Texture", 2D) = "white" {}
|
|
_LockPositionGradient("Lock Position Gradient", Range( 0 , 10)) = 2
|
|
_WindNoise01("Wind Noise 01", Range( 0 , 100)) = 0
|
|
_WindNoise01Multiplier("Wind Noise 01 Multiplier", Range( -3 , 3)) = 1
|
|
_WindNoise02("Wind Noise 02", Range( 0 , 100)) = 0
|
|
_WindNoise02Multiplier("Wind Noise 02 Multiplier", Range( -3 , 3)) = 1
|
|
[Header(Wind Locking)][Toggle(_USEVERTEXCOLOR_ON)] _UseVertexColor("Use Vertex Color?", Float) = 0
|
|
_VertexColorOffset("Vertex Color Offset", Float) = 0
|
|
_VertexColorGradient("Vertex Color Gradient", Float) = 1
|
|
[Header(Dithering)][Toggle(_USEDITHERING_ON)] _UseDithering("Use Dithering?", Float) = 1
|
|
[Toggle(_USEGLOBALSETTING_ON)] _UseGlobalSetting("Use Global Setting?", Float) = 0
|
|
_DitherBottomLevel("Dither Bottom Level", Range( -10 , 10)) = 0
|
|
_DitherFade("Dither Fade", Range( 0 , 10)) = 0
|
|
[HideInInspector] _texcoord( "", 2D ) = "white" {}
|
|
[HideInInspector] __dirty( "", Int ) = 1
|
|
}
|
|
|
|
SubShader
|
|
{
|
|
Tags{ "RenderType" = "TreeTransparentCutout" "Queue" = "Geometry+0" }
|
|
Cull Off
|
|
Blend SrcAlpha OneMinusSrcAlpha
|
|
|
|
CGPROGRAM
|
|
#include "UnityShaderVariables.cginc"
|
|
#pragma target 3.0
|
|
#pragma shader_feature_local _USEGLOBALWINDSETTINGS_ON
|
|
#pragma shader_feature_local _USEVERTEXCOLOR_ON
|
|
#pragma shader_feature_local _HASSTEM_ON
|
|
#pragma shader_feature_local _USEGRADIENTMAP_ON
|
|
#pragma shader_feature _USEDITHERING_ON
|
|
#pragma shader_feature_local _USEGLOBALSETTING_ON
|
|
#pragma surface surf StandardSpecular keepalpha addshadow fullforwardshadows exclude_path:deferred vertex:vertexDataFunc
|
|
struct Input
|
|
{
|
|
float3 worldPos;
|
|
float2 uv_texcoord;
|
|
float4 screenPosition;
|
|
};
|
|
|
|
uniform sampler2D _WindNoiseTexture;
|
|
uniform float _WindNoise01;
|
|
uniform float WindNoise01;
|
|
uniform float _WindNoise01Multiplier;
|
|
uniform float WindNoise01Multiplier;
|
|
uniform float _WindNoise02;
|
|
uniform float WindNoise02;
|
|
uniform float _WindNoise02Multiplier;
|
|
uniform float WindNoise02Multiplier;
|
|
uniform float _LockPositionGradient;
|
|
uniform float _VertexColorOffset;
|
|
uniform float _VertexColorGradient;
|
|
uniform float4 _ColorTint;
|
|
uniform float4 _ColorGradient01;
|
|
uniform float4 _ColorGradient02;
|
|
uniform sampler2D _GradientMap;
|
|
uniform float4 _GradientMap_ST;
|
|
uniform sampler2D _FoliageMap;
|
|
uniform float4 _FoliageMap_ST;
|
|
uniform float4 _StemColor;
|
|
uniform sampler2D _FlowerMask;
|
|
uniform float4 _FlowerMask_ST;
|
|
uniform float _SpecularIntensity;
|
|
uniform float _FoliageRoughness;
|
|
uniform float _DitherBottomLevel;
|
|
uniform float DitherBottomLevel;
|
|
uniform float _DitherFade;
|
|
uniform float DitherFade;
|
|
uniform float _MaskClip;
|
|
|
|
|
|
struct Gradient
|
|
{
|
|
int type;
|
|
int colorsLength;
|
|
int alphasLength;
|
|
float4 colors[8];
|
|
float2 alphas[8];
|
|
};
|
|
|
|
|
|
Gradient NewGradient(int type, int colorsLength, int alphasLength,
|
|
float4 colors0, float4 colors1, float4 colors2, float4 colors3, float4 colors4, float4 colors5, float4 colors6, float4 colors7,
|
|
float2 alphas0, float2 alphas1, float2 alphas2, float2 alphas3, float2 alphas4, float2 alphas5, float2 alphas6, float2 alphas7)
|
|
{
|
|
Gradient g;
|
|
g.type = type;
|
|
g.colorsLength = colorsLength;
|
|
g.alphasLength = alphasLength;
|
|
g.colors[ 0 ] = colors0;
|
|
g.colors[ 1 ] = colors1;
|
|
g.colors[ 2 ] = colors2;
|
|
g.colors[ 3 ] = colors3;
|
|
g.colors[ 4 ] = colors4;
|
|
g.colors[ 5 ] = colors5;
|
|
g.colors[ 6 ] = colors6;
|
|
g.colors[ 7 ] = colors7;
|
|
g.alphas[ 0 ] = alphas0;
|
|
g.alphas[ 1 ] = alphas1;
|
|
g.alphas[ 2 ] = alphas2;
|
|
g.alphas[ 3 ] = alphas3;
|
|
g.alphas[ 4 ] = alphas4;
|
|
g.alphas[ 5 ] = alphas5;
|
|
g.alphas[ 6 ] = alphas6;
|
|
g.alphas[ 7 ] = alphas7;
|
|
return g;
|
|
}
|
|
|
|
|
|
float4 SampleGradient( Gradient gradient, float time )
|
|
{
|
|
float3 color = gradient.colors[0].rgb;
|
|
UNITY_UNROLL
|
|
for (int c = 1; c < 8; c++)
|
|
{
|
|
float colorPos = saturate((time - gradient.colors[c-1].w) / ( 0.00001 + (gradient.colors[c].w - gradient.colors[c-1].w)) * step(c, (float)gradient.colorsLength-1));
|
|
color = lerp(color, gradient.colors[c].rgb, lerp(colorPos, step(0.01, colorPos), gradient.type));
|
|
}
|
|
#ifndef UNITY_COLORSPACE_GAMMA
|
|
color = half3(GammaToLinearSpaceExact(color.r), GammaToLinearSpaceExact(color.g), GammaToLinearSpaceExact(color.b));
|
|
#endif
|
|
float alpha = gradient.alphas[0].x;
|
|
UNITY_UNROLL
|
|
for (int a = 1; a < 8; a++)
|
|
{
|
|
float alphaPos = saturate((time - gradient.alphas[a-1].y) / ( 0.00001 + (gradient.alphas[a].y - gradient.alphas[a-1].y)) * step(a, (float)gradient.alphasLength-1));
|
|
alpha = lerp(alpha, gradient.alphas[a].x, lerp(alphaPos, step(0.01, alphaPos), gradient.type));
|
|
}
|
|
return float4(color, alpha);
|
|
}
|
|
|
|
|
|
inline float Dither4x4Bayer( int x, int y )
|
|
{
|
|
const float dither[ 16 ] = {
|
|
1, 9, 3, 11,
|
|
13, 5, 15, 7,
|
|
4, 12, 2, 10,
|
|
16, 8, 14, 6 };
|
|
int r = y * 4 + x;
|
|
return dither[r] / 16; // same # of instructions as pre-dividing due to compiler magic
|
|
}
|
|
|
|
|
|
void vertexDataFunc( inout appdata_full v, out Input o )
|
|
{
|
|
UNITY_INITIALIZE_OUTPUT( Input, o );
|
|
float4 color128 = IsGammaSpace() ? float4(0,0,0,0) : float4(0,0,0,0);
|
|
float3 ase_worldPos = mul( unity_ObjectToWorld, v.vertex );
|
|
#ifdef _USEGLOBALWINDSETTINGS_ON
|
|
float staticSwitch30_g15 = WindNoise01;
|
|
#else
|
|
float staticSwitch30_g15 = _WindNoise01;
|
|
#endif
|
|
#ifdef _USEGLOBALWINDSETTINGS_ON
|
|
float staticSwitch31_g15 = WindNoise01Multiplier;
|
|
#else
|
|
float staticSwitch31_g15 = _WindNoise01Multiplier;
|
|
#endif
|
|
#ifdef _USEGLOBALWINDSETTINGS_ON
|
|
float staticSwitch33_g15 = WindNoise02;
|
|
#else
|
|
float staticSwitch33_g15 = _WindNoise02;
|
|
#endif
|
|
#ifdef _USEGLOBALWINDSETTINGS_ON
|
|
float staticSwitch38_g15 = WindNoise02Multiplier;
|
|
#else
|
|
float staticSwitch38_g15 = _WindNoise02Multiplier;
|
|
#endif
|
|
float4 lerpResult27_g15 = lerp( ( tex2Dlod( _WindNoiseTexture, float4( ( ( float2( 0,0.2 ) * _Time.y ) + ( (ase_worldPos).xz / staticSwitch30_g15 ) ), 0, 0.0) ) * staticSwitch31_g15 ) , ( tex2Dlod( _WindNoiseTexture, float4( ( ( float2( 0,0.1 ) * _Time.y ) + ( (ase_worldPos).xz / staticSwitch33_g15 ) ), 0, 0.0) ) * staticSwitch38_g15 ) , 0.5);
|
|
Gradient gradient111 = NewGradient( 0, 2, 2, float4( 0, 0, 0, 0 ), float4( 1, 1, 1, 1 ), 0, 0, 0, 0, 0, 0, float2( 1, 0 ), float2( 1, 1 ), 0, 0, 0, 0, 0, 0 );
|
|
float clampResult229 = clamp( pow( ( v.color.r + _VertexColorOffset ) , _VertexColorGradient ) , 0.0 , 1.0 );
|
|
float vVertexColor197 = clampResult229;
|
|
#ifdef _USEVERTEXCOLOR_ON
|
|
float staticSwitch191 = vVertexColor197;
|
|
#else
|
|
float staticSwitch191 = pow( SampleGradient( gradient111, v.texcoord.xy.y ).r , _LockPositionGradient );
|
|
#endif
|
|
float vMovementLock248 = staticSwitch191;
|
|
float4 lerpResult108 = lerp( color128 , lerpResult27_g15 , vMovementLock248);
|
|
float4 vWind116 = lerpResult108;
|
|
v.vertex.xyz += vWind116.rgb;
|
|
v.vertex.w = 1;
|
|
float4 ase_screenPos = ComputeScreenPos( UnityObjectToClipPos( v.vertex ) );
|
|
o.screenPosition = ase_screenPos;
|
|
}
|
|
|
|
void surf( Input i , inout SurfaceOutputStandardSpecular o )
|
|
{
|
|
float2 uv_GradientMap = i.uv_texcoord * _GradientMap_ST.xy + _GradientMap_ST.zw;
|
|
float4 lerpResult215 = lerp( _ColorGradient01 , _ColorGradient02 , tex2D( _GradientMap, uv_GradientMap ).r);
|
|
#ifdef _USEGRADIENTMAP_ON
|
|
float4 staticSwitch211 = lerpResult215;
|
|
#else
|
|
float4 staticSwitch211 = _ColorTint;
|
|
#endif
|
|
float2 uv_FoliageMap = i.uv_texcoord * _FoliageMap_ST.xy + _FoliageMap_ST.zw;
|
|
float4 tex2DNode22 = tex2D( _FoliageMap, uv_FoliageMap );
|
|
float4 temp_output_221_0 = ( staticSwitch211 * tex2DNode22 );
|
|
float2 uv_FlowerMask = i.uv_texcoord * _FlowerMask_ST.xy + _FlowerMask_ST.zw;
|
|
float4 lerpResult224 = lerp( temp_output_221_0 , ( _StemColor * tex2DNode22 ) , ( 1.0 - tex2D( _FlowerMask, uv_FlowerMask ).r ));
|
|
#ifdef _HASSTEM_ON
|
|
float4 staticSwitch226 = lerpResult224;
|
|
#else
|
|
float4 staticSwitch226 = temp_output_221_0;
|
|
#endif
|
|
float4 vColor27 = staticSwitch226;
|
|
o.Albedo = vColor27.rgb;
|
|
float3 temp_cast_1 = (_SpecularIntensity).xxx;
|
|
o.Specular = temp_cast_1;
|
|
o.Smoothness = ( 1.0 - _FoliageRoughness );
|
|
o.Alpha = 1;
|
|
float vAlpha125 = tex2DNode22.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 clipScreen8_g14 = ase_screenPosNorm.xy * _ScreenParams.xy;
|
|
float dither8_g14 = Dither4x4Bayer( fmod(clipScreen8_g14.x, 4), fmod(clipScreen8_g14.y, 4) );
|
|
float3 ase_vertex3Pos = mul( unity_WorldToObject, float4( i.worldPos , 1 ) );
|
|
#ifdef _USEGLOBALSETTING_ON
|
|
float staticSwitch12_g14 = DitherBottomLevel;
|
|
#else
|
|
float staticSwitch12_g14 = _DitherBottomLevel;
|
|
#endif
|
|
#ifdef _USEGLOBALSETTING_ON
|
|
float staticSwitch11_g14 = DitherFade;
|
|
#else
|
|
float staticSwitch11_g14 = _DitherFade;
|
|
#endif
|
|
dither8_g14 = step( dither8_g14, saturate( ( ( ase_vertex3Pos.y + staticSwitch12_g14 ) * ( staticSwitch11_g14 * 2 ) ) ) );
|
|
float vTerrainDither181 = dither8_g14;
|
|
#ifdef _USEDITHERING_ON
|
|
float staticSwitch182 = ( vAlpha125 * vTerrainDither181 );
|
|
#else
|
|
float staticSwitch182 = vAlpha125;
|
|
#endif
|
|
clip( staticSwitch182 - _MaskClip );
|
|
}
|
|
|
|
ENDCG
|
|
}
|
|
Fallback "Diffuse"
|
|
}
|
|
/*ASEBEGIN
|
|
Version=19200
|
|
Node;AmplifyShaderEditor.CommentaryNode;121;-3012.576,247.0363;Inherit;False;1640.88;767.5203;;14;248;191;197;113;229;112;114;110;194;111;192;195;193;190;Vertical Gradient;1,1,1,1;0;0
|
|
Node;AmplifyShaderEditor.VertexColorNode;190;-2890.795,685.3215;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
|
Node;AmplifyShaderEditor.RangedFloatNode;193;-2932.179,851.8886;Inherit;False;Property;_VertexColorOffset;Vertex Color Offset;21;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.CommentaryNode;31;-4150.297,-1537.111;Inherit;False;2856.68;1171.779;Comment;21;27;226;227;224;125;219;228;225;223;220;221;211;222;22;19;215;218;214;217;213;216;Color;1,1,1,1;0;0
|
|
Node;AmplifyShaderEditor.TexturePropertyNode;216;-4131.25,-865.4424;Inherit;True;Property;_GradientMap;Gradient Map;2;2;[Header];[SingleLineTexture];Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
|
Node;AmplifyShaderEditor.SimpleAddOpNode;192;-2632.179,707.8886;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RangedFloatNode;195;-2731.179,848.8886;Inherit;False;Property;_VertexColorGradient;Vertex Color Gradient;22;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.PowerNode;194;-2480.179,707.8886;Inherit;False;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.SamplerNode;217;-3900.25,-866.4424;Inherit;True;Property;_TextureSample1;Texture Sample 1;20;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.GradientNode;111;-2825.649,394.9997;Inherit;False;0;2;2;0,0,0,0;1,1,1,1;1,0;1,1;0;1;OBJECT;0
|
|
Node;AmplifyShaderEditor.TextureCoordinatesNode;110;-2858.648,470.0004;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.TexturePropertyNode;19;-3329.606,-690.9492;Inherit;True;Property;_FoliageMap;Foliage Map;0;2;[Header];[SingleLineTexture];Create;True;2;Base Maps;.;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
|
Node;AmplifyShaderEditor.LerpOp;215;-3452.25,-1060.442;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.ClampOpNode;229;-2301.943,708.2016;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RangedFloatNode;114;-2577.692,581.2943;Inherit;False;Property;_LockPositionGradient;Lock Position Gradient;15;0;Create;True;0;0;0;False;0;False;2;0.95;0;10;0;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.GradientSampleNode;112;-2605.65,394.9997;Inherit;True;2;0;OBJECT;;False;1;FLOAT;0;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
|
Node;AmplifyShaderEditor.SamplerNode;22;-3089.33,-692.188;Inherit;True;Property;_TextureSample0;Texture Sample 0;5;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.StaticSwitch;211;-3215.922,-1088.619;Inherit;False;Property;_UseGradientMap;Use Gradient Map?;4;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Create;True;True;All;9;1;COLOR;0,0,0,0;False;0;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;4;COLOR;0,0,0,0;False;5;COLOR;0,0,0,0;False;6;COLOR;0,0,0,0;False;7;COLOR;0,0,0,0;False;8;COLOR;0,0,0,0;False;1;COLOR;0
|
|
Node;AmplifyShaderEditor.PowerNode;113;-2256.692,394.2938;Inherit;True;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RegisterLocalVarNode;197;-2166.179,702.8885;Inherit;False;vVertexColor;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.TexturePropertyNode;222;-3020.21,-1294.647;Inherit;True;Property;_FlowerMask;Flower Mask;1;2;[Header];[SingleLineTexture];Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
|
Node;AmplifyShaderEditor.CommentaryNode;167;-2637.903,-1854.358;Inherit;False;844.5669;250.5412;Dithering;3;181;168;170;;1,1,1,1;0;0
|
|
Node;AmplifyShaderEditor.StaticSwitch;191;-1953.262,390.2216;Inherit;False;Property;_UseVertexColor;Use Vertex Color?;20;0;Create;True;0;0;0;False;1;Header(Wind Locking);False;0;0;0;True;;Toggle;2;Key0;Key1;Create;True;True;All;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.SimpleMultiplyOpNode;221;-2641.409,-1083.02;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
|
|
Node;AmplifyShaderEditor.CommentaryNode;184;-2655.449,-342.8354;Inherit;False;1357.315;571.7289;Comment;9;249;116;108;189;128;186;188;187;185;;1,1,1,1;0;0
|
|
Node;AmplifyShaderEditor.RangedFloatNode;168;-2611.753,-1790.539;Inherit;False;Property;_DitherBottomLevel;Dither Bottom Level;26;0;Create;True;0;0;0;False;0;False;0;0;-10;10;0;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.SamplerNode;223;-2770.146,-1296.961;Inherit;True;Property;_TextureSample2;Texture Sample 2;24;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.RangedFloatNode;170;-2613.136,-1709.91;Inherit;False;Property;_DitherFade;Dither Fade;27;0;Create;True;0;0;0;False;0;False;0;0;0;10;0;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RegisterLocalVarNode;248;-1678.48,388.7944;Inherit;False;vMovementLock;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RangedFloatNode;188;-2578.669,60.47952;Inherit;False;Property;_WindNoise02Multiplier;Wind Noise 02 Multiplier;19;0;Create;True;0;0;0;False;0;False;1;0;-3;3;0;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RangedFloatNode;185;-2579.719,-167.3194;Inherit;False;Property;_WindNoise01;Wind Noise 01;16;0;Create;True;0;0;0;False;0;False;0;0;0;100;0;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RangedFloatNode;186;-2578.669,-15.52011;Inherit;False;Property;_WindNoise01Multiplier;Wind Noise 01 Multiplier;17;0;Create;True;0;0;0;False;0;False;1;0;-3;3;0;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RangedFloatNode;187;-2578.669,-92.51978;Inherit;False;Property;_WindNoise02;Wind Noise 02;18;0;Create;True;0;0;0;False;0;False;0;0;0;100;0;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.WireNode;228;-2429.212,-1111.851;Inherit;False;1;0;COLOR;0,0,0,0;False;1;COLOR;0
|
|
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;219;-2641.715,-711.2777;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
|
|
Node;AmplifyShaderEditor.FunctionNode;210;-2324.16,-1785.528;Inherit;False;PA_Dithering;24;;14;51907001cc2d98f4bb2ac7260d1fff6c;0;2;9;FLOAT;0;False;10;FLOAT;0;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.OneMinusNode;225;-2425.212,-1214.851;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.LerpOp;224;-2150.449,-1082.561;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.RegisterLocalVarNode;125;-2647.224,-593.9875;Inherit;False;vAlpha;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RegisterLocalVarNode;181;-2021.951,-1790.021;Inherit;False;vTerrainDither;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.WireNode;227;-1979.212,-1117.851;Inherit;False;1;0;COLOR;0,0,0,0;False;1;COLOR;0
|
|
Node;AmplifyShaderEditor.FunctionNode;189;-2246.504,-87.7447;Inherit;False;PA_SF_WindGrass;12;;15;b1ba21c96122aa44f8eac64c8d72c027;0;4;29;FLOAT;10;False;34;FLOAT;10;False;32;FLOAT;1;False;39;FLOAT;1;False;1;COLOR;0
|
|
Node;AmplifyShaderEditor.GetLocalVarNode;249;-2118.896,62.90772;Inherit;False;248;vMovementLock;1;0;OBJECT;;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.ColorNode;128;-2126.239,-292.8353;Inherit;False;Constant;_Color2;Color2;7;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.StaticSwitch;226;-1882.212,-1112.851;Inherit;False;Property;_HasStem;Has Stem?;7;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Create;True;True;All;9;1;COLOR;0,0,0,0;False;0;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;4;COLOR;0,0,0,0;False;5;COLOR;0,0,0,0;False;6;COLOR;0,0,0,0;False;7;COLOR;0,0,0,0;False;8;COLOR;0,0,0,0;False;1;COLOR;0
|
|
Node;AmplifyShaderEditor.LerpOp;108;-1678.743,-109.548;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.GetLocalVarNode;158;-1325.317,375.0651;Inherit;False;181;vTerrainDither;1;0;OBJECT;;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.GetLocalVarNode;126;-1294.043,271.5366;Inherit;False;125;vAlpha;1;0;OBJECT;;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RegisterLocalVarNode;27;-1595.453,-1112.758;Inherit;False;vColor;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
|
|
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;161;-958.636,356.289;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RegisterLocalVarNode;116;-1498.531,-113.9009;Inherit;False;vWind;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
|
|
Node;AmplifyShaderEditor.RangedFloatNode;200;-790.3269,-84.21375;Inherit;False;Property;_MaskClip;Mask Clip;11;0;Create;True;0;0;0;False;0;False;0.5;0;0;1;0;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.GetLocalVarNode;29;-786.9415,32.68401;Inherit;False;27;vColor;1;0;OBJECT;;False;1;COLOR;0
|
|
Node;AmplifyShaderEditor.GetLocalVarNode;122;-690.1942,382.9964;Inherit;False;116;vWind;1;0;OBJECT;;False;1;COLOR;0
|
|
Node;AmplifyShaderEditor.StaticSwitch;182;-738.8497,273.6953;Inherit;False;Property;_UseDithering;Use Dithering?;23;0;Create;True;0;0;0;False;1;Header(Dithering);False;0;1;1;True;;Toggle;2;Key0;Key1;Create;False;True;All;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.StandardSurfaceOutputNode;0;-447.4691,37.94351;Float;False;True;-1;2;;0;0;StandardSpecular;Polyart/Dreamscape/Builtin/Foliage;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Off;0;False;;0;False;;False;0;False;;0;False;;False;0;Custom;0.59;True;True;0;True;TreeTransparentCutout;;Geometry;ForwardOnly;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;True;_MaskClip;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;FLOAT3;0,0,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
|
|
Node;AmplifyShaderEditor.OneMinusNode;250;-670.7087,190.7914;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RangedFloatNode;162;-940.6069,185.5835;Inherit;False;Property;_FoliageRoughness;Foliage Roughness;10;0;Create;True;0;0;0;False;0;False;0.1;0.1;0;1;0;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.RangedFloatNode;251;-946.0657,102.9006;Inherit;False;Property;_SpecularIntensity;Specular Intensity;9;0;Create;True;0;0;0;False;0;False;0.1;0.1;-1;1;0;1;FLOAT;0
|
|
Node;AmplifyShaderEditor.ColorNode;220;-2998.824,-932.0966;Inherit;False;Property;_StemColor;Stem Color;8;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.ColorNode;218;-3511.649,-1281.73;Inherit;False;Property;_ColorTint;Color Tint;3;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.ColorNode;213;-3815.25,-1225.443;Inherit;False;Property;_ColorGradient01;Color Gradient 01;5;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.ColorNode;214;-3813.25,-1042.442;Inherit;False;Property;_ColorGradient02;Color Gradient 02;6;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
|
|
WireConnection;192;0;190;1
|
|
WireConnection;192;1;193;0
|
|
WireConnection;194;0;192;0
|
|
WireConnection;194;1;195;0
|
|
WireConnection;217;0;216;0
|
|
WireConnection;215;0;213;0
|
|
WireConnection;215;1;214;0
|
|
WireConnection;215;2;217;1
|
|
WireConnection;229;0;194;0
|
|
WireConnection;112;0;111;0
|
|
WireConnection;112;1;110;2
|
|
WireConnection;22;0;19;0
|
|
WireConnection;211;1;218;0
|
|
WireConnection;211;0;215;0
|
|
WireConnection;113;0;112;1
|
|
WireConnection;113;1;114;0
|
|
WireConnection;197;0;229;0
|
|
WireConnection;191;1;113;0
|
|
WireConnection;191;0;197;0
|
|
WireConnection;221;0;211;0
|
|
WireConnection;221;1;22;0
|
|
WireConnection;223;0;222;0
|
|
WireConnection;248;0;191;0
|
|
WireConnection;228;0;221;0
|
|
WireConnection;219;0;220;0
|
|
WireConnection;219;1;22;0
|
|
WireConnection;210;9;168;0
|
|
WireConnection;210;10;170;0
|
|
WireConnection;225;0;223;1
|
|
WireConnection;224;0;221;0
|
|
WireConnection;224;1;219;0
|
|
WireConnection;224;2;225;0
|
|
WireConnection;125;0;22;4
|
|
WireConnection;181;0;210;0
|
|
WireConnection;227;0;228;0
|
|
WireConnection;189;29;185;0
|
|
WireConnection;189;34;187;0
|
|
WireConnection;189;32;186;0
|
|
WireConnection;189;39;188;0
|
|
WireConnection;226;1;227;0
|
|
WireConnection;226;0;224;0
|
|
WireConnection;108;0;128;0
|
|
WireConnection;108;1;189;0
|
|
WireConnection;108;2;249;0
|
|
WireConnection;27;0;226;0
|
|
WireConnection;161;0;126;0
|
|
WireConnection;161;1;158;0
|
|
WireConnection;116;0;108;0
|
|
WireConnection;182;1;126;0
|
|
WireConnection;182;0;161;0
|
|
WireConnection;0;0;29;0
|
|
WireConnection;0;3;251;0
|
|
WireConnection;0;4;250;0
|
|
WireConnection;0;10;182;0
|
|
WireConnection;0;11;122;0
|
|
WireConnection;250;0;162;0
|
|
ASEEND*/
|
|
//CHKSM=E581A7CCAF9F1EFF1BE79D81C4F1CAC776340883 |