455 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			455 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | // Made with Amplify Shader Editor v1.9.2 | ||
|  | // Available at the Unity Asset Store - http://u3d.as/y3X  | ||
|  | Shader "Polyart/Dreamscape CliffAuto" | ||
|  | { | ||
|  | 	Properties | ||
|  | 	{ | ||
|  | 		_StoneDirtSharpness("Stone Dirt Sharpness", Float) = 0 | ||
|  | 		_StoneDirtBias("Stone Dirt Bias", Float) = 0 | ||
|  | 		_GrassSharpness("Grass Sharpness", Float) = 0 | ||
|  | 		_GrassBias("Grass Bias", Float) = 0 | ||
|  | 		_Normal("Normal", Range( 0 , 2)) = 1 | ||
|  | 		_SmoothnessMultiplier("Smoothness Multiplier", Range( -2 , 2)) = 1 | ||
|  | 		_StoneColor("Stone Color", 2D) = "white" {} | ||
|  | 		_GrassColour("Grass Colour", 2D) = "white" {} | ||
|  | 		_GrassSmooth("Grass Smooth", 2D) = "white" {} | ||
|  | 		_GrassNormal("Grass Normal", 2D) = "bump" {} | ||
|  | 		_DirtColor("Dirt Color", 2D) = "white" {} | ||
|  | 		_DirtNormal("Dirt Normal", 2D) = "bump" {} | ||
|  | 		_StoneSmooth("Stone Smooth", 2D) = "white" {} | ||
|  | 		_DirtSmooth("Dirt Smooth", 2D) = "white" {} | ||
|  | 		_StoneNormal("Stone Normal", 2D) = "bump" {} | ||
|  | 		_CliffTiling("Cliff Tiling", Vector) = (1,1,0,0) | ||
|  | 		_Tiling("Tiling", Vector) = (1,1,0,0) | ||
|  | 		_GrassTint("Grass Tint", Color) = (1,1,1,0) | ||
|  | 		[HideInInspector] __dirty( "", Int ) = 1 | ||
|  | 	} | ||
|  | 
 | ||
|  | 	SubShader | ||
|  | 	{ | ||
|  | 		Tags{ "RenderType" = "Opaque"  "Queue" = "Geometry+0" } | ||
|  | 		Cull Back | ||
|  | 		CGINCLUDE | ||
|  | 		#include "UnityStandardUtils.cginc" | ||
|  | 		#include "UnityPBSLighting.cginc" | ||
|  | 		#include "Lighting.cginc" | ||
|  | 		#pragma target 3.5 | ||
|  | 		#ifdef UNITY_PASS_SHADOWCASTER | ||
|  | 			#undef INTERNAL_DATA | ||
|  | 			#undef WorldReflectionVector | ||
|  | 			#undef WorldNormalVector | ||
|  | 			#define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2; | ||
|  | 			#define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))) | ||
|  | 			#define WorldNormalVector(data,normal) half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)) | ||
|  | 		#endif | ||
|  | 		struct Input | ||
|  | 		{ | ||
|  | 			float3 worldPos; | ||
|  | 			float3 worldNormal; | ||
|  | 			INTERNAL_DATA | ||
|  | 		}; | ||
|  | 
 | ||
|  | 		uniform sampler2D _StoneNormal; | ||
|  | 		uniform float2 _CliffTiling; | ||
|  | 		uniform sampler2D _DirtNormal; | ||
|  | 		uniform float2 _Tiling; | ||
|  | 		uniform float _StoneDirtSharpness; | ||
|  | 		uniform float _StoneDirtBias; | ||
|  | 		uniform sampler2D _GrassNormal; | ||
|  | 		uniform float _GrassSharpness; | ||
|  | 		uniform float _GrassBias; | ||
|  | 		uniform float _Normal; | ||
|  | 		uniform sampler2D _StoneColor; | ||
|  | 		uniform sampler2D _DirtColor; | ||
|  | 		uniform float4 _GrassTint; | ||
|  | 		uniform sampler2D _GrassColour; | ||
|  | 		uniform sampler2D _StoneSmooth; | ||
|  | 		uniform sampler2D _DirtSmooth; | ||
|  | 		uniform sampler2D _GrassSmooth; | ||
|  | 		uniform float _SmoothnessMultiplier; | ||
|  | 
 | ||
|  | 
 | ||
|  | 		inline float4 TriplanarSampling193( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index ) | ||
|  | 		{ | ||
|  | 			float3 projNormal = ( pow( abs( worldNormal ), falloff ) ); | ||
|  | 			projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001; | ||
|  | 			float3 nsign = sign( worldNormal ); | ||
|  | 			half4 xNorm; half4 yNorm; half4 zNorm; | ||
|  | 			xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2(  nsign.x, 1.0 ) ); | ||
|  | 			yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2(  nsign.y, 1.0 ) ); | ||
|  | 			zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) ); | ||
|  | 			return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z; | ||
|  | 		} | ||
|  | 
 | ||
|  | 
 | ||
|  | 		inline float4 TriplanarSampling213( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index ) | ||
|  | 		{ | ||
|  | 			float3 projNormal = ( pow( abs( worldNormal ), falloff ) ); | ||
|  | 			projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001; | ||
|  | 			float3 nsign = sign( worldNormal ); | ||
|  | 			half4 xNorm; half4 yNorm; half4 zNorm; | ||
|  | 			xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2(  nsign.x, 1.0 ) ); | ||
|  | 			yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2(  nsign.y, 1.0 ) ); | ||
|  | 			zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) ); | ||
|  | 			return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z; | ||
|  | 		} | ||
|  | 
 | ||
|  | 
 | ||
|  | 		inline float4 TriplanarSampling195( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index ) | ||
|  | 		{ | ||
|  | 			float3 projNormal = ( pow( abs( worldNormal ), falloff ) ); | ||
|  | 			projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001; | ||
|  | 			float3 nsign = sign( worldNormal ); | ||
|  | 			half4 xNorm; half4 yNorm; half4 zNorm; | ||
|  | 			xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2(  nsign.x, 1.0 ) ); | ||
|  | 			yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2(  nsign.y, 1.0 ) ); | ||
|  | 			zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) ); | ||
|  | 			return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z; | ||
|  | 		} | ||
|  | 
 | ||
|  | 
 | ||
|  | 		inline float4 TriplanarSampling205( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index ) | ||
|  | 		{ | ||
|  | 			float3 projNormal = ( pow( abs( worldNormal ), falloff ) ); | ||
|  | 			projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001; | ||
|  | 			float3 nsign = sign( worldNormal ); | ||
|  | 			half4 xNorm; half4 yNorm; half4 zNorm; | ||
|  | 			xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2(  nsign.x, 1.0 ) ); | ||
|  | 			yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2(  nsign.y, 1.0 ) ); | ||
|  | 			zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) ); | ||
|  | 			return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z; | ||
|  | 		} | ||
|  | 
 | ||
|  | 
 | ||
|  | 		inline float4 TriplanarSampling192( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index ) | ||
|  | 		{ | ||
|  | 			float3 projNormal = ( pow( abs( worldNormal ), falloff ) ); | ||
|  | 			projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001; | ||
|  | 			float3 nsign = sign( worldNormal ); | ||
|  | 			half4 xNorm; half4 yNorm; half4 zNorm; | ||
|  | 			xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2(  nsign.x, 1.0 ) ); | ||
|  | 			yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2(  nsign.y, 1.0 ) ); | ||
|  | 			zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) ); | ||
|  | 			return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z; | ||
|  | 		} | ||
|  | 
 | ||
|  | 
 | ||
|  | 		inline float4 TriplanarSampling194( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index ) | ||
|  | 		{ | ||
|  | 			float3 projNormal = ( pow( abs( worldNormal ), falloff ) ); | ||
|  | 			projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001; | ||
|  | 			float3 nsign = sign( worldNormal ); | ||
|  | 			half4 xNorm; half4 yNorm; half4 zNorm; | ||
|  | 			xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2(  nsign.x, 1.0 ) ); | ||
|  | 			yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2(  nsign.y, 1.0 ) ); | ||
|  | 			zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) ); | ||
|  | 			return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z; | ||
|  | 		} | ||
|  | 
 | ||
|  | 
 | ||
|  | 		inline float4 TriplanarSampling201( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index ) | ||
|  | 		{ | ||
|  | 			float3 projNormal = ( pow( abs( worldNormal ), falloff ) ); | ||
|  | 			projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001; | ||
|  | 			float3 nsign = sign( worldNormal ); | ||
|  | 			half4 xNorm; half4 yNorm; half4 zNorm; | ||
|  | 			xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2(  nsign.x, 1.0 ) ); | ||
|  | 			yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2(  nsign.y, 1.0 ) ); | ||
|  | 			zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) ); | ||
|  | 			return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z; | ||
|  | 		} | ||
|  | 
 | ||
|  | 
 | ||
|  | 		inline float4 TriplanarSampling216( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index ) | ||
|  | 		{ | ||
|  | 			float3 projNormal = ( pow( abs( worldNormal ), falloff ) ); | ||
|  | 			projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001; | ||
|  | 			float3 nsign = sign( worldNormal ); | ||
|  | 			half4 xNorm; half4 yNorm; half4 zNorm; | ||
|  | 			xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2(  nsign.x, 1.0 ) ); | ||
|  | 			yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2(  nsign.y, 1.0 ) ); | ||
|  | 			zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) ); | ||
|  | 			return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z; | ||
|  | 		} | ||
|  | 
 | ||
|  | 
 | ||
|  | 		inline float4 TriplanarSampling217( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index ) | ||
|  | 		{ | ||
|  | 			float3 projNormal = ( pow( abs( worldNormal ), falloff ) ); | ||
|  | 			projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001; | ||
|  | 			float3 nsign = sign( worldNormal ); | ||
|  | 			half4 xNorm; half4 yNorm; half4 zNorm; | ||
|  | 			xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2(  nsign.x, 1.0 ) ); | ||
|  | 			yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2(  nsign.y, 1.0 ) ); | ||
|  | 			zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) ); | ||
|  | 			return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z; | ||
|  | 		} | ||
|  | 
 | ||
|  | 
 | ||
|  | 		inline float4 TriplanarSampling207( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index ) | ||
|  | 		{ | ||
|  | 			float3 projNormal = ( pow( abs( worldNormal ), falloff ) ); | ||
|  | 			projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001; | ||
|  | 			float3 nsign = sign( worldNormal ); | ||
|  | 			half4 xNorm; half4 yNorm; half4 zNorm; | ||
|  | 			xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2(  nsign.x, 1.0 ) ); | ||
|  | 			yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2(  nsign.y, 1.0 ) ); | ||
|  | 			zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) ); | ||
|  | 			return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z; | ||
|  | 		} | ||
|  | 
 | ||
|  | 
 | ||
|  | 		void surf( Input i , inout SurfaceOutputStandard o ) | ||
|  | 		{ | ||
|  | 			float2 vCliffTiling197 = ( _CliffTiling / float2( 10,10 ) ); | ||
|  | 			float3 ase_worldPos = i.worldPos; | ||
|  | 			float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) ); | ||
|  | 			float4 triplanar193 = TriplanarSampling193( _StoneNormal, ase_worldPos, ase_worldNormal, 1.0, vCliffTiling197, 1.0, 0 ); | ||
|  | 			float4 triplanar213 = TriplanarSampling213( _DirtNormal, ase_worldPos, ase_worldNormal, 1.0, vCliffTiling197, 1.0, 0 ); | ||
|  | 			float2 VTiling220 = ( _Tiling / float2( 10,10 ) ); | ||
|  | 			float4 triplanar195 = TriplanarSampling195( _DirtNormal, ase_worldPos, ase_worldNormal, 1.0, VTiling220, 1.0, 0 ); | ||
|  | 			float3 normalizeResult58_g125 = normalize( float3(0,1,0) ); | ||
|  | 			float dotResult57_g125 = dot( normalize( (WorldNormalVector( i , UnpackNormal( triplanar195 ) )) ) , normalizeResult58_g125 ); | ||
|  | 			float temp_output_67_0_g125 = _StoneDirtSharpness; | ||
|  | 			float temp_output_68_0_g125 = _StoneDirtBias; | ||
|  | 			float clampResult66_g125 = clamp( ( ( ( ( dotResult57_g125 * 0.5 ) + 0.5 ) * temp_output_67_0_g125 ) + ( temp_output_68_0_g125 - ( temp_output_67_0_g125 * 0.5 ) ) ) , 0.0 , 1.0 ); | ||
|  | 			float temp_output_60_55 = clampResult66_g125; | ||
|  | 			float4 lerpResult47 = lerp( triplanar193 , triplanar213 , temp_output_60_55); | ||
|  | 			float4 vStoneDirtNormal72 = lerpResult47; | ||
|  | 			float4 triplanar205 = TriplanarSampling205( _GrassNormal, ase_worldPos, ase_worldNormal, 1.0, VTiling220, 1.0, 0 ); | ||
|  | 			float3 ase_normWorldNormal = normalize( ase_worldNormal ); | ||
|  | 			float3 normalizeResult44_g126 = normalize( float3(0,1,0) ); | ||
|  | 			float dotResult45_g126 = dot( ase_normWorldNormal , normalizeResult44_g126 ); | ||
|  | 			float temp_output_67_0_g126 = _GrassSharpness; | ||
|  | 			float temp_output_68_0_g126 = _GrassBias; | ||
|  | 			float clampResult41_g126 = clamp( ( ( ( ( dotResult45_g126 * 0.5 ) + 0.5 ) * temp_output_67_0_g126 ) + ( temp_output_68_0_g126 - ( temp_output_67_0_g126 * 0.5 ) ) ) , 0.0 , 1.0 ); | ||
|  | 			float temp_output_57_25 = clampResult41_g126; | ||
|  | 			float4 lerpResult88 = lerp( vStoneDirtNormal72 , triplanar205 , temp_output_57_25); | ||
|  | 			o.Normal = UnpackScaleNormal( lerpResult88, _Normal ); | ||
|  | 			float4 triplanar192 = TriplanarSampling192( _StoneColor, ase_worldPos, ase_worldNormal, 1.0, vCliffTiling197, 1.0, 0 ); | ||
|  | 			float4 triplanar194 = TriplanarSampling194( _DirtColor, ase_worldPos, ase_worldNormal, 1.0, VTiling220, 1.0, 0 ); | ||
|  | 			float4 lerpResult54 = lerp( triplanar192 , triplanar194 , temp_output_60_55); | ||
|  | 			float4 vStoneDirtColor61 = lerpResult54; | ||
|  | 			float4 triplanar201 = TriplanarSampling201( _GrassColour, ase_worldPos, ase_worldNormal, 1.0, VTiling220, 1.0, 0 ); | ||
|  | 			float4 lerpResult34 = lerp( vStoneDirtColor61 , ( _GrassTint * triplanar201 ) , temp_output_57_25); | ||
|  | 			o.Albedo = lerpResult34.rgb; | ||
|  | 			float4 triplanar216 = TriplanarSampling216( _StoneSmooth, ase_worldPos, ase_worldNormal, 1.0, vCliffTiling197, 1.0, 0 ); | ||
|  | 			float4 triplanar217 = TriplanarSampling217( _DirtSmooth, ase_worldPos, ase_worldNormal, 1.0, vCliffTiling197, 1.0, 0 ); | ||
|  | 			float4 lerpResult81 = lerp( triplanar216 , triplanar217 , temp_output_60_55); | ||
|  | 			float4 vStoneDirtSmooth82 = lerpResult81; | ||
|  | 			float4 triplanar207 = TriplanarSampling207( _GrassSmooth, ase_worldPos, ase_worldNormal, 1.0, VTiling220, 1.0, 0 ); | ||
|  | 			float4 lerpResult210 = lerp( vStoneDirtSmooth82 , triplanar207 , float4( 0,0,0,0 )); | ||
|  | 			o.Smoothness = ( ( 1.0 - lerpResult210 ) * _SmoothnessMultiplier ).x; | ||
|  | 			o.Alpha = 1; | ||
|  | 		} | ||
|  | 
 | ||
|  | 		ENDCG | ||
|  | 		CGPROGRAM | ||
|  | 		#pragma surface surf Standard keepalpha fullforwardshadows  | ||
|  | 
 | ||
|  | 		ENDCG | ||
|  | 		Pass | ||
|  | 		{ | ||
|  | 			Name "ShadowCaster" | ||
|  | 			Tags{ "LightMode" = "ShadowCaster" } | ||
|  | 			ZWrite On | ||
|  | 			CGPROGRAM | ||
|  | 			#pragma vertex vert | ||
|  | 			#pragma fragment frag | ||
|  | 			#pragma target 3.5 | ||
|  | 			#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; | ||
|  | 				float4 tSpace0 : TEXCOORD1; | ||
|  | 				float4 tSpace1 : TEXCOORD2; | ||
|  | 				float4 tSpace2 : 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 ); | ||
|  | 				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 ); | ||
|  | 				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 ); | ||
|  | 				float3 worldPos = float3( IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w ); | ||
|  | 				half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) ); | ||
|  | 				surfIN.worldPos = worldPos; | ||
|  | 				surfIN.worldNormal = float3( IN.tSpace0.z, IN.tSpace1.z, IN.tSpace2.z ); | ||
|  | 				surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz; | ||
|  | 				surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz; | ||
|  | 				surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz; | ||
|  | 				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=19200 | ||
|  | Node;AmplifyShaderEditor.Vector2Node;218;-6017.847,-1248.075;Inherit;False;Property;_Tiling;Tiling;16;0;Create;True;0;0;0;False;0;False;1,1;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2 | ||
|  | Node;AmplifyShaderEditor.SimpleDivideOpNode;219;-5827.226,-1243.348;Inherit;False;2;0;FLOAT2;0,0;False;1;FLOAT2;10,10;False;1;FLOAT2;0 | ||
|  | Node;AmplifyShaderEditor.RegisterLocalVarNode;220;-5665.847,-1250.075;Inherit;False;VTiling;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0 | ||
|  | Node;AmplifyShaderEditor.Vector2Node;196;-6016.07,-1408.874;Inherit;False;Property;_CliffTiling;Cliff Tiling;15;0;Create;True;0;0;0;False;0;False;1,1;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2 | ||
|  | Node;AmplifyShaderEditor.GetLocalVarNode;200;-4980.431,-1230.21;Inherit;False;220;VTiling;1;0;OBJECT;;False;1;FLOAT2;0 | ||
|  | Node;AmplifyShaderEditor.SimpleDivideOpNode;199;-5824.448,-1403.147;Inherit;False;2;0;FLOAT2;0,0;False;1;FLOAT2;10,10;False;1;FLOAT2;0 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;62;-5026.395,-1419.566;Inherit;True;Property;_DirtNormal;Dirt Normal;11;0;Create;True;0;0;0;False;0;False;None;None;False;bump;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.TriplanarNode;195;-4651.269,-1414.969;Inherit;True;Spherical;World;False;Top Texture 3;_TopTexture3;white;-1;None;Mid Texture 3;_MidTexture3;white;-1;None;Bot Texture 3;_BotTexture3;white;-1;None;Triplanar Sampler;Tangent;10;0;SAMPLER2D;;False;5;FLOAT;1;False;1;SAMPLER2D;;False;6;FLOAT;0;False;2;SAMPLER2D;;False;7;FLOAT;0;False;9;FLOAT3;0,0,0;False;8;FLOAT;1;False;3;FLOAT2;1,1;False;4;FLOAT;1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 | ||
|  | Node;AmplifyShaderEditor.RegisterLocalVarNode;197;-5663.07,-1409.874;Inherit;False;vCliffTiling;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;74;-4042.076,-642.3586;Inherit;True;Property;_StoneSmooth;Stone Smooth;12;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;73;-4044.988,-385.8292;Inherit;True;Property;_DirtSmooth;Dirt Smooth;13;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.UnpackScaleNormalNode;64;-4251.296,-1414.198;Inherit;False;Tangent;2;0;FLOAT4;0,0,0,0;False;1;FLOAT;1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;29;-4257.382,-1585.781;Inherit;False;Property;_StoneDirtSharpness;Stone Dirt Sharpness;0;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.GetLocalVarNode;212;-3992.793,-770.3837;Inherit;False;197;vCliffTiling;1;0;OBJECT;;False;1;FLOAT2;0 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;30;-4213.733,-1511.15;Inherit;False;Property;_StoneDirtBias;Stone Dirt Bias;1;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.GetLocalVarNode;222;-3992.419,-888.0977;Inherit;False;197;vCliffTiling;1;0;OBJECT;;False;1;FLOAT2;0 | ||
|  | Node;AmplifyShaderEditor.WireNode;214;-4347.016,-1017.463;Inherit;False;1;0;SAMPLER2D;;False;1;SAMPLER2D;0 | ||
|  | Node;AmplifyShaderEditor.FunctionNode;60;-3832.638,-1607.276;Inherit;False;PolyartWorldAlignedBlend;-1;;125;2c0b2e018c1710b44867976bd3691e95;0;3;1;FLOAT3;0,0,1;False;67;FLOAT;1;False;68;FLOAT;-1;False;2;FLOAT;25;FLOAT;55 | ||
|  | Node;AmplifyShaderEditor.TriplanarNode;217;-3645.914,-377.8295;Inherit;True;Spherical;World;False;Top Texture 9;_TopTexture9;white;-1;None;Mid Texture 9;_MidTexture9;white;-1;None;Bot Texture 9;_BotTexture9;white;-1;None;Triplanar Sampler;World;10;0;SAMPLER2D;;False;5;FLOAT;1;False;1;SAMPLER2D;;False;6;FLOAT;0;False;2;SAMPLER2D;;False;7;FLOAT;0;False;9;FLOAT3;0,0,0;False;8;FLOAT;1;False;3;FLOAT2;1,1;False;4;FLOAT;1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;68;-4021.483,-1211.884;Inherit;True;Property;_StoneNormal;Stone Normal;14;0;Create;True;0;0;0;False;0;False;None;None;False;bump;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.TriplanarNode;216;-3645.813,-636.1625;Inherit;True;Spherical;World;False;Top Texture 8;_TopTexture8;white;-1;None;Mid Texture 8;_MidTexture8;white;-1;None;Bot Texture 8;_BotTexture8;white;-1;None;Triplanar Sampler;World;10;0;SAMPLER2D;;False;5;FLOAT;1;False;1;SAMPLER2D;;False;6;FLOAT;0;False;2;SAMPLER2D;;False;7;FLOAT;0;False;9;FLOAT3;0,0,0;False;8;FLOAT;1;False;3;FLOAT2;1,1;False;4;FLOAT;1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 | ||
|  | Node;AmplifyShaderEditor.GetLocalVarNode;198;-4025.171,-1723.974;Inherit;False;220;VTiling;1;0;OBJECT;;False;1;FLOAT2;0 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;55;-4245.437,-1804.354;Inherit;True;Property;_DirtColor;Dirt Color;10;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.TriplanarNode;213;-3652.016,-932.4634;Inherit;True;Spherical;World;False;Top Texture 7;_TopTexture7;white;-1;None;Mid Texture 7;_MidTexture7;white;-1;None;Bot Texture 7;_BotTexture7;white;-1;None;Triplanar Sampler;World;10;0;SAMPLER2D;;False;5;FLOAT;1;False;1;SAMPLER2D;;False;6;FLOAT;0;False;2;SAMPLER2D;;False;7;FLOAT;0;False;9;FLOAT3;0,0,0;False;8;FLOAT;1;False;3;FLOAT2;1,1;False;4;FLOAT;1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 | ||
|  | Node;AmplifyShaderEditor.TriplanarNode;193;-3646.153,-1192.041;Inherit;True;Spherical;World;False;Top Texture 1;_TopTexture1;white;-1;None;Mid Texture 1;_MidTexture1;white;-1;None;Bot Texture 1;_BotTexture1;white;-1;None;Triplanar Sampler;World;10;0;SAMPLER2D;;False;5;FLOAT;1;False;1;SAMPLER2D;;False;6;FLOAT;0;False;2;SAMPLER2D;;False;7;FLOAT;0;False;9;FLOAT3;0,0,0;False;8;FLOAT;1;False;3;FLOAT2;1,1;False;4;FLOAT;1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;52;-4247.629,-2037.299;Inherit;True;Property;_StoneColor;Stone Color;6;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.GetLocalVarNode;221;-4024.419,-1965.098;Inherit;False;197;vCliffTiling;1;0;OBJECT;;False;1;FLOAT2;0 | ||
|  | Node;AmplifyShaderEditor.LerpOp;81;-2991.711,-403.5161;Inherit;False;3;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;2;FLOAT;0;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.LerpOp;47;-2904.657,-960.169;Inherit;False;3;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;2;FLOAT;0;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.GetLocalVarNode;209;-2110.257,-308.9713;Inherit;False;220;VTiling;1;0;OBJECT;;False;1;FLOAT2;0 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;208;-2156.037,-495.675;Inherit;True;Property;_GrassSmooth;Grass Smooth;8;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.RegisterLocalVarNode;203;-3920.979,-1422.281;Inherit;False;vExplicitNormal;-1;True;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0 | ||
|  | Node;AmplifyShaderEditor.RegisterLocalVarNode;82;-2742.754,-408.824;Inherit;False;vStoneDirtSmooth;-1;True;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.TriplanarNode;194;-3779.896,-1799.598;Inherit;True;Spherical;World;False;Top Texture 2;_TopTexture2;white;-1;None;Mid Texture 2;_MidTexture2;white;-1;None;Bot Texture 2;_BotTexture2;white;-1;None;Triplanar Sampler;Tangent;10;0;SAMPLER2D;;False;5;FLOAT;1;False;1;SAMPLER2D;;False;6;FLOAT;0;False;2;SAMPLER2D;;False;7;FLOAT;0;False;9;FLOAT3;0,0,0;False;8;FLOAT;1;False;3;FLOAT2;1,1;False;4;FLOAT;1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 | ||
|  | Node;AmplifyShaderEditor.TriplanarNode;192;-3797.596,-2006.801;Inherit;True;Spherical;World;False;Top Texture 0;_TopTexture0;white;-1;None;Mid Texture 0;_MidTexture0;white;-1;None;Bot Texture 0;_BotTexture0;white;-1;None;Triplanar Sampler;Tangent;10;0;SAMPLER2D;;False;5;FLOAT;1;False;1;SAMPLER2D;;False;6;FLOAT;0;False;2;SAMPLER2D;;False;7;FLOAT;0;False;9;FLOAT3;0,0,0;False;8;FLOAT;1;False;3;FLOAT2;1,1;False;4;FLOAT;1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 | ||
|  | Node;AmplifyShaderEditor.GetLocalVarNode;206;-2258.376,-914.1042;Inherit;False;220;VTiling;1;0;OBJECT;;False;1;FLOAT2;0 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;86;-2300.155,-1100.808;Inherit;True;Property;_GrassNormal;Grass Normal;9;0;Create;True;0;0;0;False;0;False;None;None;False;bump;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.LerpOp;54;-3267.842,-1738.268;Inherit;False;3;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;2;FLOAT;0;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.GetLocalVarNode;211;-1701.599,-596.4031;Inherit;False;82;vStoneDirtSmooth;1;0;OBJECT;;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;36;-2492.051,-1333.158;Inherit;False;Property;_GrassSharpness;Grass Sharpness;2;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;84;-2327.3,-1720.301;Inherit;True;Property;_GrassColour;Grass Colour;7;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;37;-2448.885,-1251.239;Inherit;False;Property;_GrassBias;Grass Bias;3;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.GetLocalVarNode;204;-2511.491,-1416.254;Inherit;False;203;vExplicitNormal;1;0;OBJECT;;False;1;FLOAT3;0 | ||
|  | Node;AmplifyShaderEditor.RegisterLocalVarNode;72;-2633.105,-965.6179;Inherit;False;vStoneDirtNormal;-1;True;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.TriplanarNode;207;-1852.257,-489.9711;Inherit;True;Spherical;World;False;Top Texture 6;_TopTexture6;white;-1;None;Mid Texture 6;_MidTexture6;white;-1;None;Bot Texture 6;_BotTexture6;white;-1;None;Triplanar Sampler;Tangent;10;0;SAMPLER2D;;False;5;FLOAT;1;False;1;SAMPLER2D;;False;6;FLOAT;0;False;2;SAMPLER2D;;False;7;FLOAT;0;False;9;FLOAT3;0,0,0;False;8;FLOAT;1;False;3;FLOAT2;1,1;False;4;FLOAT;1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 | ||
|  | Node;AmplifyShaderEditor.GetLocalVarNode;202;-2284.645,-1532.123;Inherit;False;220;VTiling;1;0;OBJECT;;False;1;FLOAT2;0 | ||
|  | Node;AmplifyShaderEditor.LerpOp;210;-1382.464,-591.0471;Inherit;False;3;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;2;FLOAT4;0,0,0,0;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.GetLocalVarNode;89;-1848.718,-1201.536;Inherit;False;72;vStoneDirtNormal;1;0;OBJECT;;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.TriplanarNode;205;-2000.376,-1095.104;Inherit;True;Spherical;World;False;Top Texture 5;_TopTexture5;white;-1;None;Mid Texture 5;_MidTexture5;white;-1;None;Bot Texture 5;_BotTexture5;white;-1;None;Triplanar Sampler;Tangent;10;0;SAMPLER2D;;False;5;FLOAT;1;False;1;SAMPLER2D;;False;6;FLOAT;0;False;2;SAMPLER2D;;False;7;FLOAT;0;False;9;FLOAT3;0,0,0;False;8;FLOAT;1;False;3;FLOAT2;1,1;False;4;FLOAT;1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 | ||
|  | Node;AmplifyShaderEditor.FunctionNode;57;-2069.045,-1408.43;Inherit;False;PolyartWorldAlignedBlend;-1;;126;2c0b2e018c1710b44867976bd3691e95;0;3;1;FLOAT3;0,0,1;False;67;FLOAT;1;False;68;FLOAT;-1;False;2;FLOAT;25;FLOAT;55 | ||
|  | Node;AmplifyShaderEditor.RegisterLocalVarNode;61;-3066.32,-1742.408;Inherit;False;vStoneDirtColor;-1;True;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.TriplanarNode;201;-2029.786,-1717.117;Inherit;True;Spherical;World;False;Top Texture 4;_TopTexture4;white;-1;None;Mid Texture 4;_MidTexture4;white;-1;None;Bot Texture 4;_BotTexture4;white;-1;None;Triplanar Sampler;Tangent;10;0;SAMPLER2D;;False;5;FLOAT;1;False;1;SAMPLER2D;;False;6;FLOAT;0;False;2;SAMPLER2D;;False;7;FLOAT;0;False;9;FLOAT3;0,0,0;False;8;FLOAT;1;False;3;FLOAT2;1,1;False;4;FLOAT;1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 | ||
|  | Node;AmplifyShaderEditor.ColorNode;224;-1968.289,-1959.626;Inherit;False;Property;_GrassTint;Grass Tint;17;0;Create;True;0;0;0;False;0;False;1,1,1,0;0,0,0,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 | ||
|  | Node;AmplifyShaderEditor.SimpleMultiplyOpNode;223;-1557.289,-1715.626;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;COLOR;0 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;40;-1605.404,-1045.721;Inherit;False;Property;_Normal;Normal;4;0;Create;True;0;0;0;False;0;False;1;0;0;2;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.LerpOp;88;-1467.582,-1194.18;Inherit;False;3;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;2;FLOAT;0;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.OneMinusNode;45;-1230.621,-595.3173;Inherit;False;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.GetLocalVarNode;85;-1418.652,-1800.492;Inherit;False;61;vStoneDirtColor;1;0;OBJECT;;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;43;-1377.145,-464.3606;Inherit;False;Property;_SmoothnessMultiplier;Smoothness Multiplier;5;0;Create;True;0;0;0;False;0;False;1;0;-2;2;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.LerpOp;34;-1023.738,-1742.8;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.UnpackScaleNormalNode;90;-1272.748,-1194.18;Inherit;False;Tangent;2;0;FLOAT4;0,0,0,0;False;1;FLOAT;1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3 | ||
|  | Node;AmplifyShaderEditor.SimpleMultiplyOpNode;44;-1069.677,-597.2112;Inherit;True;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT;0;False;1;FLOAT4;0 | ||
|  | Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;-695.7205,-1222.164;Float;False;True;-1;3;;0;0;Standard;Polyart/Dreamscape CliffAuto;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;False;;0;False;;False;0;False;;0;False;;False;0;Opaque;0.5;True;True;0;False;Opaque;;Geometry;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;0;0;False;;0;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;219;0;218;0 | ||
|  | WireConnection;220;0;219;0 | ||
|  | WireConnection;199;0;196;0 | ||
|  | WireConnection;195;0;62;0 | ||
|  | WireConnection;195;3;200;0 | ||
|  | WireConnection;197;0;199;0 | ||
|  | WireConnection;64;0;195;0 | ||
|  | WireConnection;214;0;62;0 | ||
|  | WireConnection;60;1;64;0 | ||
|  | WireConnection;60;67;29;0 | ||
|  | WireConnection;60;68;30;0 | ||
|  | WireConnection;217;0;73;0 | ||
|  | WireConnection;217;3;212;0 | ||
|  | WireConnection;216;0;74;0 | ||
|  | WireConnection;216;3;222;0 | ||
|  | WireConnection;213;0;214;0 | ||
|  | WireConnection;213;3;212;0 | ||
|  | WireConnection;193;0;68;0 | ||
|  | WireConnection;193;3;222;0 | ||
|  | WireConnection;81;0;216;0 | ||
|  | WireConnection;81;1;217;0 | ||
|  | WireConnection;81;2;60;55 | ||
|  | WireConnection;47;0;193;0 | ||
|  | WireConnection;47;1;213;0 | ||
|  | WireConnection;47;2;60;55 | ||
|  | WireConnection;203;0;64;0 | ||
|  | WireConnection;82;0;81;0 | ||
|  | WireConnection;194;0;55;0 | ||
|  | WireConnection;194;3;198;0 | ||
|  | WireConnection;192;0;52;0 | ||
|  | WireConnection;192;3;221;0 | ||
|  | WireConnection;54;0;192;0 | ||
|  | WireConnection;54;1;194;0 | ||
|  | WireConnection;54;2;60;55 | ||
|  | WireConnection;72;0;47;0 | ||
|  | WireConnection;207;0;208;0 | ||
|  | WireConnection;207;3;209;0 | ||
|  | WireConnection;210;0;211;0 | ||
|  | WireConnection;210;1;207;0 | ||
|  | WireConnection;205;0;86;0 | ||
|  | WireConnection;205;3;206;0 | ||
|  | WireConnection;57;1;204;0 | ||
|  | WireConnection;57;67;36;0 | ||
|  | WireConnection;57;68;37;0 | ||
|  | WireConnection;61;0;54;0 | ||
|  | WireConnection;201;0;84;0 | ||
|  | WireConnection;201;3;202;0 | ||
|  | WireConnection;223;0;224;0 | ||
|  | WireConnection;223;1;201;0 | ||
|  | WireConnection;88;0;89;0 | ||
|  | WireConnection;88;1;205;0 | ||
|  | WireConnection;88;2;57;25 | ||
|  | WireConnection;45;0;210;0 | ||
|  | WireConnection;34;0;85;0 | ||
|  | WireConnection;34;1;223;0 | ||
|  | WireConnection;34;2;57;25 | ||
|  | WireConnection;90;0;88;0 | ||
|  | WireConnection;90;1;40;0 | ||
|  | WireConnection;44;0;45;0 | ||
|  | WireConnection;44;1;43;0 | ||
|  | WireConnection;0;0;34;0 | ||
|  | WireConnection;0;1;90;0 | ||
|  | WireConnection;0;4;44;0 | ||
|  | ASEEND*/ | ||
|  | //CHKSM=634005720B18050B46314FC9566DAD98AF029D89 |