Assignment for RMIT Mixed Reality in 2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

408 lines
26 KiB

  1. // Made with Amplify Shader Editor
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "ASESampleShaders/Triplanar"
  4. {
  5. Properties
  6. {
  7. [HideInInspector] __dirty( "", Int ) = 1
  8. _TriplanarAlbedo("Triplanar Albedo", 2D) = "white" {}
  9. _Normal("Normal", 2D) = "bump" {}
  10. _TopAlbedo("Top Albedo", 2D) = "white" {}
  11. _TopNormal("Top Normal", 2D) = "bump" {}
  12. [IntRange]_WorldtoObjectSwitch("World to Object Switch", Range( 0 , 1)) = 0
  13. _CoverageAmount("Coverage Amount", Range( -1 , 1)) = 0
  14. _CoverageFalloff("Coverage Falloff", Range( 0.01 , 2)) = 0.5
  15. _Specular("Specular", Range( 0 , 1)) = 0.02
  16. _Smoothness("Smoothness", Range( 0 , 1)) = 0.5
  17. [HideInInspector] _texcoord( "", 2D ) = "white" {}
  18. }
  19. SubShader
  20. {
  21. Tags{ "RenderType" = "Opaque" "Queue" = "Geometry+0" }
  22. Cull Back
  23. ZTest LEqual
  24. CGINCLUDE
  25. #include "UnityShaderVariables.cginc"
  26. #include "UnityPBSLighting.cginc"
  27. #include "Lighting.cginc"
  28. #pragma target 2.5
  29. #ifdef UNITY_PASS_SHADOWCASTER
  30. #undef INTERNAL_DATA
  31. #undef WorldReflectionVector
  32. #undef WorldNormalVector
  33. #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2;
  34. #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)))
  35. #define WorldNormalVector(data,normal) fixed3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))
  36. #endif
  37. struct Input
  38. {
  39. float3 worldPos;
  40. float3 worldNormal;
  41. INTERNAL_DATA
  42. float2 uv_texcoord;
  43. };
  44. uniform sampler2D _Normal;
  45. uniform sampler2D _TopNormal;
  46. uniform float4 _TopNormal_ST;
  47. uniform float _CoverageAmount;
  48. uniform float _CoverageFalloff;
  49. uniform sampler2D _TriplanarAlbedo;
  50. uniform sampler2D _TopAlbedo;
  51. uniform float _WorldtoObjectSwitch;
  52. uniform float _Specular;
  53. uniform float _Smoothness;
  54. void surf( Input i , inout SurfaceOutputStandardSpecular o )
  55. {
  56. float3 ase_vertex3Pos = mul( unity_WorldToObject, float4( i.worldPos , 1 ) );
  57. float2 appendResult332 = (float2(ase_vertex3Pos.y , ase_vertex3Pos.z));
  58. float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) );
  59. float3 temp_output_72_0 = abs( mul( unity_WorldToObject, float4( ase_worldNormal , 0.0 ) ).xyz );
  60. float dotResult73 = dot( temp_output_72_0 , float3(1,1,1) );
  61. float3 BlendComponents147 = ( temp_output_72_0 / dotResult73 );
  62. float2 appendResult331 = (float2(ase_vertex3Pos.x , ase_vertex3Pos.z));
  63. float2 appendResult330 = (float2(ase_vertex3Pos.x , ase_vertex3Pos.y));
  64. float2 uv_TopNormal = i.uv_texcoord * _TopNormal_ST.xy + _TopNormal_ST.zw;
  65. float3 lerpResult284 = lerp( ( ( ( UnpackNormal( tex2D( _Normal, appendResult332 ) ) * BlendComponents147.x ) + ( UnpackNormal( tex2D( _Normal, appendResult331 ) ) * BlendComponents147.y ) ) + ( UnpackNormal( tex2D( _Normal, appendResult330 ) ) * BlendComponents147.z ) ) , UnpackNormal( tex2D( _TopNormal, uv_TopNormal ) ) , pow( saturate( ( ase_worldNormal.y + _CoverageAmount ) ) , _CoverageFalloff ));
  66. float3 CalculatedNormal292 = lerpResult284;
  67. o.Normal = CalculatedNormal292;
  68. float2 appendResult336 = (float2(ase_vertex3Pos.y , ase_vertex3Pos.z));
  69. float2 appendResult335 = (float2(ase_vertex3Pos.x , ase_vertex3Pos.z));
  70. float2 appendResult334 = (float2(ase_vertex3Pos.x , ase_vertex3Pos.y));
  71. float3 ase_worldPos = i.worldPos;
  72. float WorldObjectSwitch192 = _WorldtoObjectSwitch;
  73. float3 lerpResult187 = lerp( ase_worldPos , ase_vertex3Pos , WorldObjectSwitch192);
  74. float2 appendResult333 = (float2(lerpResult187.x , lerpResult187.z));
  75. float3 PixelNormal315 = WorldNormalVector( i , CalculatedNormal292 );
  76. float3 lerpResult186 = lerp( PixelNormal315 , mul( unity_WorldToObject, float4( PixelNormal315 , 0.0 ) ).xyz , WorldObjectSwitch192);
  77. float3 temp_cast_4 = (_CoverageFalloff).xxx;
  78. float4 lerpResult105 = lerp( ( ( ( tex2D( _TriplanarAlbedo, appendResult336 ) * BlendComponents147.x ) + ( tex2D( _TriplanarAlbedo, appendResult335 ) * BlendComponents147.y ) ) + ( tex2D( _TriplanarAlbedo, appendResult334 ) * BlendComponents147.z ) ) , tex2D( _TopAlbedo, appendResult333 ) , pow( saturate( ( lerpResult186 + _CoverageAmount ) ) , temp_cast_4 ).y);
  79. o.Albedo = lerpResult105.xyz;
  80. float3 temp_cast_6 = (_Specular).xxx;
  81. o.Specular = temp_cast_6;
  82. o.Smoothness = _Smoothness;
  83. o.Alpha = 1;
  84. }
  85. ENDCG
  86. CGPROGRAM
  87. #pragma surface surf StandardSpecular keepalpha fullforwardshadows exclude_path:deferred
  88. ENDCG
  89. Pass
  90. {
  91. Name "ShadowCaster"
  92. Tags{ "LightMode" = "ShadowCaster" }
  93. ZWrite On
  94. CGPROGRAM
  95. #pragma vertex vert
  96. #pragma fragment frag
  97. #pragma target 2.5
  98. #pragma multi_compile_shadowcaster
  99. #pragma multi_compile UNITY_PASS_SHADOWCASTER
  100. #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
  101. # include "HLSLSupport.cginc"
  102. #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN )
  103. #define CAN_SKIP_VPOS
  104. #endif
  105. #include "UnityCG.cginc"
  106. #include "Lighting.cginc"
  107. #include "UnityPBSLighting.cginc"
  108. sampler3D _DitherMaskLOD;
  109. struct v2f
  110. {
  111. V2F_SHADOW_CASTER;
  112. float4 tSpace0 : TEXCOORD1;
  113. float4 tSpace1 : TEXCOORD2;
  114. float4 tSpace2 : TEXCOORD3;
  115. float4 texcoords01 : TEXCOORD4;
  116. UNITY_VERTEX_INPUT_INSTANCE_ID
  117. };
  118. v2f vert( appdata_full v )
  119. {
  120. v2f o;
  121. UNITY_SETUP_INSTANCE_ID( v );
  122. UNITY_INITIALIZE_OUTPUT( v2f, o );
  123. UNITY_TRANSFER_INSTANCE_ID( v, o );
  124. float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz;
  125. fixed3 worldNormal = UnityObjectToWorldNormal( v.normal );
  126. fixed3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz );
  127. fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w;
  128. fixed3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign;
  129. o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x );
  130. o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y );
  131. o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z );
  132. o.texcoords01 = float4( v.texcoord.xy, v.texcoord1.xy );
  133. TRANSFER_SHADOW_CASTER_NORMALOFFSET( o )
  134. return o;
  135. }
  136. fixed4 frag( v2f IN
  137. #if !defined( CAN_SKIP_VPOS )
  138. , UNITY_VPOS_TYPE vpos : VPOS
  139. #endif
  140. ) : SV_Target
  141. {
  142. UNITY_SETUP_INSTANCE_ID( IN );
  143. Input surfIN;
  144. UNITY_INITIALIZE_OUTPUT( Input, surfIN );
  145. surfIN.uv_texcoord.xy = IN.texcoords01.xy;
  146. float3 worldPos = float3( IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w );
  147. fixed3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) );
  148. surfIN.worldPos = worldPos;
  149. surfIN.worldNormal = float3( IN.tSpace0.z, IN.tSpace1.z, IN.tSpace2.z );
  150. surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz;
  151. surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz;
  152. surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz;
  153. SurfaceOutputStandardSpecular o;
  154. UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandardSpecular, o )
  155. surf( surfIN, o );
  156. #if defined( CAN_SKIP_VPOS )
  157. float2 vpos = IN.pos;
  158. #endif
  159. SHADOW_CASTER_FRAGMENT( IN )
  160. }
  161. ENDCG
  162. }
  163. }
  164. Fallback "Diffuse"
  165. CustomEditor "ASEMaterialInspector"
  166. }
  167. /*ASEBEGIN
  168. Version=13201
  169. 436;92;888;768;2373.662;1178.269;4.6;True;False
  170. Node;AmplifyShaderEditor.WorldToObjectMatrix;329;-2272,192;Float;False;0;1;FLOAT4x4
  171. Node;AmplifyShaderEditor.WorldNormalVector;144;-2272,288;Float;False;1;0;FLOAT3;0,0,0;False;4;FLOAT3;FLOAT;FLOAT;FLOAT
  172. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;145;-2000,256;Float;False;2;2;0;FLOAT4x4;0,0,0;False;1;FLOAT3;0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;False;1;FLOAT3
  173. Node;AmplifyShaderEditor.Vector3Node;264;-1873.118,436.4499;Float;False;Constant;_Vector0;Vector 0;-1;0;1,1,1;0;4;FLOAT3;FLOAT;FLOAT;FLOAT
  174. Node;AmplifyShaderEditor.AbsOpNode;72;-1840,256;Float;False;1;0;FLOAT3;0.0,0,0;False;1;FLOAT3
  175. Node;AmplifyShaderEditor.DotProductOpNode;73;-1666.1,322.3978;Float;False;2;0;FLOAT3;0.0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT
  176. Node;AmplifyShaderEditor.SimpleDivideOpNode;75;-1504,256;Float;False;2;0;FLOAT3;0.0,0,0;False;1;FLOAT;0,0,0;False;1;FLOAT3
  177. Node;AmplifyShaderEditor.RegisterLocalVarNode;147;-1344,256;Float;True;BlendComponents;1;False;1;0;FLOAT3;0.0,0,0;False;1;FLOAT3
  178. Node;AmplifyShaderEditor.GetLocalVarNode;245;-1504,2256;Float;False;147;0;1;FLOAT3
  179. Node;AmplifyShaderEditor.RangedFloatNode;110;-339.4074,1528.998;Float;False;Property;_CoverageAmount;Coverage Amount;5;0;0;-1;1;0;1;FLOAT
  180. Node;AmplifyShaderEditor.BreakToComponentsNode;270;-1168,2112;Float;False;FLOAT3;1;0;FLOAT3;0.0,0,0;False;16;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT
  181. Node;AmplifyShaderEditor.RangedFloatNode;115;-335.5072,1649.297;Float;False;Property;_CoverageFalloff;Coverage Falloff;6;0;0.5;0.01;2;0;1;FLOAT
  182. Node;AmplifyShaderEditor.PosVertexDataNode;280;-816,2448;Float;False;0;0;5;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
  183. Node;AmplifyShaderEditor.BreakToComponentsNode;282;-1168,2400;Float;False;FLOAT3;1;0;FLOAT3;0.0,0,0;False;16;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT
  184. Node;AmplifyShaderEditor.PosVertexDataNode;277;-816,2144;Float;False;0;0;5;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
  185. Node;AmplifyShaderEditor.PosVertexDataNode;242;-816,1872;Float;False;0;0;5;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
  186. Node;AmplifyShaderEditor.WireNode;322;-896,2576;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  187. Node;AmplifyShaderEditor.WireNode;309;-16,1840;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  188. Node;AmplifyShaderEditor.WireNode;325;-896,2064;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  189. Node;AmplifyShaderEditor.WireNode;310;32,1792;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  190. Node;AmplifyShaderEditor.DynamicAppendNode;330;-583.699,2465.962;Float;False;FLOAT2;4;0;FLOAT;0.0;False;1;FLOAT;0.0;False;2;FLOAT;0.0;False;3;FLOAT;0.0;False;1;FLOAT2
  191. Node;AmplifyShaderEditor.DynamicAppendNode;331;-566.5652,2169.431;Float;False;FLOAT2;4;0;FLOAT;0.0;False;1;FLOAT;0.0;False;2;FLOAT;0.0;False;3;FLOAT;0.0;False;1;FLOAT2
  192. Node;AmplifyShaderEditor.DynamicAppendNode;332;-575.5652,1907.431;Float;False;FLOAT2;4;0;FLOAT;0.0;False;1;FLOAT;0.0;False;2;FLOAT;0.0;False;3;FLOAT;0.0;False;1;FLOAT2
  193. Node;AmplifyShaderEditor.SamplerNode;243;-400,1856;Float;True;Property;_Normal;Normal;1;0;None;True;0;True;bump;Auto;True;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;5;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
  194. Node;AmplifyShaderEditor.BreakToComponentsNode;273;-1168,2256;Float;False;FLOAT3;1;0;FLOAT3;0.0,0,0;False;16;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT
  195. Node;AmplifyShaderEditor.WireNode;324;-864,2032;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  196. Node;AmplifyShaderEditor.SamplerNode;274;-400,2128;Float;True;Property;_TextureSample4;Texture Sample 4;1;0;None;True;0;True;bump;Auto;True;Instance;243;Auto;Texture2D;6;0;SAMPLER2D;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;5;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
  197. Node;AmplifyShaderEditor.WorldNormalVector;304;240,1760;Float;False;1;0;FLOAT3;0,0,0;False;4;FLOAT3;FLOAT;FLOAT;FLOAT
  198. Node;AmplifyShaderEditor.SamplerNode;281;-400,2432;Float;True;Property;_TextureSample5;Texture Sample 5;1;0;None;True;0;True;bump;Auto;True;Instance;243;Auto;Texture2D;6;0;SAMPLER2D;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;5;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
  199. Node;AmplifyShaderEditor.WireNode;308;512,2096;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  200. Node;AmplifyShaderEditor.WireNode;312;320,1952;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  201. Node;AmplifyShaderEditor.WireNode;323;-864,2608;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  202. Node;AmplifyShaderEditor.SimpleAddOpNode;303;480,1936;Float;False;2;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT
  203. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;249;0,2560;Float;True;2;2;0;FLOAT3;0.0,0,0;False;1;FLOAT;0,0,0;False;1;FLOAT3
  204. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;251;0,2256;Float;True;2;2;0;FLOAT3;0.0,0,0;False;1;FLOAT;0,0,0;False;1;FLOAT3
  205. Node;AmplifyShaderEditor.WireNode;307;528,2192;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  206. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;253;0,1984;Float;True;2;2;0;FLOAT3;0.0,0,0;False;1;FLOAT;0.0,0,0;False;1;FLOAT3
  207. Node;AmplifyShaderEditor.SimpleAddOpNode;252;240,2096;Float;True;2;2;0;FLOAT3;0.0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3
  208. Node;AmplifyShaderEditor.SaturateNode;305;640,2128;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  209. Node;AmplifyShaderEditor.WireNode;316;560,2224;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  210. Node;AmplifyShaderEditor.SamplerNode;285;400,2512;Float;True;Property;_TopNormal;Top Normal;3;0;None;True;0;True;bump;Auto;True;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;5;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
  211. Node;AmplifyShaderEditor.WireNode;250;224,2400;Float;False;1;0;FLOAT3;0.0,0,0;False;1;FLOAT3
  212. Node;AmplifyShaderEditor.PowerNode;306;816,2176;Float;False;2;0;FLOAT;0.0;False;1;FLOAT;0.0;False;1;FLOAT
  213. Node;AmplifyShaderEditor.WireNode;301;768,2400;Float;False;1;0;FLOAT3;0.0,0,0;False;1;FLOAT3
  214. Node;AmplifyShaderEditor.SimpleAddOpNode;248;480,2288;Float;True;2;2;0;FLOAT3;0.0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3
  215. Node;AmplifyShaderEditor.LerpOp;284;1008,2288;Float;False;3;0;FLOAT3;0.0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT;0.0,0,0;False;1;FLOAT3
  216. Node;AmplifyShaderEditor.RegisterLocalVarNode;292;1184,2288;Float;True;CalculatedNormal;2;False;1;0;FLOAT3;0.0,0,0;False;1;FLOAT3
  217. Node;AmplifyShaderEditor.CommentaryNode;170;-524.7089,1125.127;Float;False;436.2993;336.8007;Coverage in Object mode;3;149;313;328;;1,1,1,1;0;0
  218. Node;AmplifyShaderEditor.WorldNormalVector;314;1472,2352;Float;False;1;0;FLOAT3;0,0,0;False;4;FLOAT3;FLOAT;FLOAT;FLOAT
  219. Node;AmplifyShaderEditor.RangedFloatNode;185;-656,1024;Float;False;Property;_WorldtoObjectSwitch;World to Object Switch;4;1;[IntRange];0;0;1;0;1;FLOAT
  220. Node;AmplifyShaderEditor.RegisterLocalVarNode;192;-320.3076,1021.095;Float;False;WorldObjectSwitch;4;False;1;0;FLOAT;0.0;False;1;FLOAT
  221. Node;AmplifyShaderEditor.BreakToComponentsNode;238;-1040,96;Float;False;FLOAT3;1;0;FLOAT3;0.0,0,0;False;16;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT
  222. Node;AmplifyShaderEditor.BreakToComponentsNode;240;-1040,384;Float;False;FLOAT3;1;0;FLOAT3;0.0,0,0;False;16;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT
  223. Node;AmplifyShaderEditor.GetLocalVarNode;313;-490.9794,1325.861;Float;False;315;0;1;FLOAT3
  224. Node;AmplifyShaderEditor.RegisterLocalVarNode;315;1699.42,2298.961;Float;True;PixelNormal;3;False;1;0;FLOAT3;0.0,0,0;False;1;FLOAT3
  225. Node;AmplifyShaderEditor.WorldToObjectMatrix;328;-490.01,1223.038;Float;False;0;1;FLOAT4x4
  226. Node;AmplifyShaderEditor.CommentaryNode;172;-422.9069,762.4951;Float;False;317.8;243.84;Coverage in World mode;1;293;;1,1,1,1;0;0
  227. Node;AmplifyShaderEditor.CommentaryNode;174;64,800;Float;False;235.9301;237.3099;Coverage in Object mode;1;119;;1,1,1,1;0;0
  228. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;149;-247.4096,1245.228;Float;False;2;2;0;FLOAT4x4;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;False;1;FLOAT3;0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;False;1;FLOAT3
  229. Node;AmplifyShaderEditor.CommentaryNode;175;64,528;Float;False;224;239;Coverage in World mode;1;161;;1,1,1,1;0;0
  230. Node;AmplifyShaderEditor.WireNode;198;-768,48;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  231. Node;AmplifyShaderEditor.WireNode;317;-29.97948,820.2599;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  232. Node;AmplifyShaderEditor.GetLocalVarNode;293;-353.8859,869.5626;Float;False;315;0;1;FLOAT3
  233. Node;AmplifyShaderEditor.WireNode;298;-768,528;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  234. Node;AmplifyShaderEditor.PosVertexDataNode;98;-688,-160;Float;False;0;0;5;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
  235. Node;AmplifyShaderEditor.WireNode;193;82.09288,1493.795;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  236. Node;AmplifyShaderEditor.BreakToComponentsNode;239;-1040,240;Float;False;FLOAT3;1;0;FLOAT3;0.0,0,0;False;16;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT
  237. Node;AmplifyShaderEditor.PosVertexDataNode;96;-688,384;Float;False;0;0;5;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
  238. Node;AmplifyShaderEditor.WireNode;188;17.79165,780.8954;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  239. Node;AmplifyShaderEditor.PosVertexDataNode;119;96,864;Float;False;0;0;5;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
  240. Node;AmplifyShaderEditor.WireNode;296;-736,560;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  241. Node;AmplifyShaderEditor.LerpOp;186;16,1072;Float;False;3;0;FLOAT3;0.0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT;0.0,0,0;False;1;FLOAT3
  242. Node;AmplifyShaderEditor.WorldPosInputsNode;161;96,592;Float;False;0;4;FLOAT3;FLOAT;FLOAT;FLOAT
  243. Node;AmplifyShaderEditor.WireNode;90;-736,16;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  244. Node;AmplifyShaderEditor.PosVertexDataNode;97;-688,96;Float;False;0;0;5;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
  245. Node;AmplifyShaderEditor.WireNode;319;0,288;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  246. Node;AmplifyShaderEditor.WireNode;318;0,560;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  247. Node;AmplifyShaderEditor.SimpleAddOpNode;153;224,1072;Float;False;2;2;0;FLOAT3;0.0,0,0;False;1;FLOAT;0.0,0,0;False;1;FLOAT3
  248. Node;AmplifyShaderEditor.WireNode;181;350.9923,1673.196;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  249. Node;AmplifyShaderEditor.WireNode;89;0,16;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  250. Node;AmplifyShaderEditor.DynamicAppendNode;334;-442.0647,401.6313;Float;False;FLOAT2;4;0;FLOAT;0.0;False;1;FLOAT;0.0;False;2;FLOAT;0.0;False;3;FLOAT;0.0;False;1;FLOAT2
  251. Node;AmplifyShaderEditor.DynamicAppendNode;336;-435.9647,-128.9687;Float;False;FLOAT2;4;0;FLOAT;0.0;False;1;FLOAT;0.0;False;2;FLOAT;0.0;False;3;FLOAT;0.0;False;1;FLOAT2
  252. Node;AmplifyShaderEditor.LerpOp;187;336,688;Float;False;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0.0,0,0;False;2;FLOAT;0.0,0,0;False;1;FLOAT3
  253. Node;AmplifyShaderEditor.DynamicAppendNode;335;-442.9647,127.0313;Float;False;FLOAT2;4;0;FLOAT;0.0;False;1;FLOAT;0.0;False;2;FLOAT;0.0;False;3;FLOAT;0.0;False;1;FLOAT2
  254. Node;AmplifyShaderEditor.WireNode;180;441.7923,1577.996;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  255. Node;AmplifyShaderEditor.WireNode;320;32,-16;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  256. Node;AmplifyShaderEditor.SamplerNode;33;-254.9974,360.4987;Float;True;Property;_TextureSample2;Texture Sample 2;0;0;None;True;0;False;white;Auto;False;Instance;1;Auto;Texture2D;6;0;SAMPLER2D;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;5;FLOAT4;FLOAT;FLOAT;FLOAT;FLOAT
  257. Node;AmplifyShaderEditor.WireNode;297;32,528;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  258. Node;AmplifyShaderEditor.SamplerNode;1;-252.6997,-172.9003;Float;True;Property;_TriplanarAlbedo;Triplanar Albedo;0;0;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;5;FLOAT4;FLOAT;FLOAT;FLOAT;FLOAT
  259. Node;AmplifyShaderEditor.SaturateNode;152;384,1072;Float;False;1;0;FLOAT3;0.0,0,0;False;1;FLOAT3
  260. Node;AmplifyShaderEditor.BreakToComponentsNode;287;496,688;Float;False;FLOAT3;1;0;FLOAT3;0.0,0,0;False;16;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT
  261. Node;AmplifyShaderEditor.WireNode;295;32,256;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  262. Node;AmplifyShaderEditor.SamplerNode;302;-257.7821,82.56178;Float;True;Property;_TextureSample0;Texture Sample 0;0;0;None;True;0;False;white;Auto;False;Instance;1;Auto;Texture2D;6;0;SAMPLER2D;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;5;FLOAT4;FLOAT;FLOAT;FLOAT;FLOAT
  263. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;31;112,80;Float;True;2;2;0;FLOAT4;0.0,0,0,0;False;1;FLOAT;0,0,0,0;False;1;FLOAT4
  264. Node;AmplifyShaderEditor.DynamicAppendNode;333;744.6346,703.8308;Float;False;FLOAT2;4;0;FLOAT;0.0;False;1;FLOAT;0.0;False;2;FLOAT;0.0;False;3;FLOAT;0.0;False;1;FLOAT2
  265. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;34;112,320;Float;True;2;2;0;FLOAT4;0.0,0,0,0;False;1;FLOAT;0,0,0,0;False;1;FLOAT4
  266. Node;AmplifyShaderEditor.PowerNode;155;544,1072;Float;False;2;0;FLOAT3;0.0,0,0;False;1;FLOAT;0.0;False;1;FLOAT3
  267. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;28;112,-192;Float;True;2;2;0;FLOAT4;0.0,0,0,0;False;1;FLOAT;0.0,0,0,0;False;1;FLOAT4
  268. Node;AmplifyShaderEditor.SamplerNode;104;880,672;Float;True;Property;_TopAlbedo;Top Albedo;2;0;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;5;FLOAT4;FLOAT;FLOAT;FLOAT;FLOAT
  269. Node;AmplifyShaderEditor.BreakToComponentsNode;268;720,1072;Float;False;FLOAT3;1;0;FLOAT3;0.0,0,0;False;16;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT;FLOAT
  270. Node;AmplifyShaderEditor.WireNode;120;368,272;Float;False;1;0;FLOAT4;0.0,0,0,0;False;1;FLOAT4
  271. Node;AmplifyShaderEditor.SimpleAddOpNode;32;352,-80;Float;True;2;2;0;FLOAT4;0.0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4
  272. Node;AmplifyShaderEditor.WireNode;299;1510.917,2008.36;Float;False;1;0;FLOAT3;0.0,0,0;False;1;FLOAT3
  273. Node;AmplifyShaderEditor.SimpleAddOpNode;35;608,176;Float;True;2;2;0;FLOAT4;0.0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;FLOAT4
  274. Node;AmplifyShaderEditor.WireNode;326;1225.392,1002.939;Float;False;1;0;FLOAT;0.0;False;1;FLOAT
  275. Node;AmplifyShaderEditor.WireNode;190;1203.291,377.2951;Float;False;1;0;FLOAT4;0.0,0,0,0;False;1;FLOAT4
  276. Node;AmplifyShaderEditor.LerpOp;105;1296,176;Float;True;3;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;2;FLOAT;0.0,0,0,0;False;1;FLOAT4
  277. Node;AmplifyShaderEditor.RangedFloatNode;212;1296,416;Float;False;Property;_Specular;Specular;7;0;0.02;0;1;0;1;FLOAT
  278. Node;AmplifyShaderEditor.WireNode;300;1680.917,300.2614;Float;False;1;0;FLOAT3;0.0,0,0;False;1;FLOAT3
  279. Node;AmplifyShaderEditor.RangedFloatNode;213;1296,496;Float;False;Property;_Smoothness;Smoothness;8;0;0.5;0;1;0;1;FLOAT
  280. Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;1808,176;Float;False;True;1;Float;ASEMaterialInspector;0;0;StandardSpecular;ASESampleShaders/Triplanar;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;3;False;0;0;Opaque;0.5;True;True;0;False;Opaque;Geometry;ForwardOnly;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;False;0;255;255;0;0;0;0;False;0;4;10;25;False;0.5;True;0;Zero;Zero;0;Zero;Zero;Add;Add;0;False;0;0,0,0,0;VertexOffset;False;Cylindrical;False;Relative;0;;-1;-1;-1;-1;0;0;0;15;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;FLOAT;0.0;False;5;FLOAT;0.0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0.0;False;9;FLOAT;0.0;False;10;OBJECT;0.0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0.0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0
  281. WireConnection;145;0;329;0
  282. WireConnection;145;1;144;0
  283. WireConnection;72;0;145;0
  284. WireConnection;73;0;72;0
  285. WireConnection;73;1;264;0
  286. WireConnection;75;0;72;0
  287. WireConnection;75;1;73;0
  288. WireConnection;147;0;75;0
  289. WireConnection;270;0;245;0
  290. WireConnection;282;0;245;0
  291. WireConnection;322;0;282;2
  292. WireConnection;309;0;115;0
  293. WireConnection;325;0;270;0
  294. WireConnection;310;0;110;0
  295. WireConnection;330;0;280;1
  296. WireConnection;330;1;280;2
  297. WireConnection;331;0;277;1
  298. WireConnection;331;1;277;3
  299. WireConnection;332;0;242;2
  300. WireConnection;332;1;242;3
  301. WireConnection;243;1;332;0
  302. WireConnection;273;0;245;0
  303. WireConnection;324;0;325;0
  304. WireConnection;274;1;331;0
  305. WireConnection;281;1;330;0
  306. WireConnection;308;0;309;0
  307. WireConnection;312;0;310;0
  308. WireConnection;323;0;322;0
  309. WireConnection;303;0;304;2
  310. WireConnection;303;1;312;0
  311. WireConnection;249;0;281;0
  312. WireConnection;249;1;323;0
  313. WireConnection;251;0;274;0
  314. WireConnection;251;1;273;1
  315. WireConnection;307;0;308;0
  316. WireConnection;253;0;243;0
  317. WireConnection;253;1;324;0
  318. WireConnection;252;0;253;0
  319. WireConnection;252;1;251;0
  320. WireConnection;305;0;303;0
  321. WireConnection;316;0;307;0
  322. WireConnection;250;0;249;0
  323. WireConnection;306;0;305;0
  324. WireConnection;306;1;316;0
  325. WireConnection;301;0;285;0
  326. WireConnection;248;0;252;0
  327. WireConnection;248;1;250;0
  328. WireConnection;284;0;248;0
  329. WireConnection;284;1;301;0
  330. WireConnection;284;2;306;0
  331. WireConnection;292;0;284;0
  332. WireConnection;314;0;292;0
  333. WireConnection;192;0;185;0
  334. WireConnection;238;0;147;0
  335. WireConnection;240;0;147;0
  336. WireConnection;315;0;314;0
  337. WireConnection;149;0;328;0
  338. WireConnection;149;1;313;0
  339. WireConnection;198;0;238;0
  340. WireConnection;317;0;192;0
  341. WireConnection;298;0;240;2
  342. WireConnection;193;0;110;0
  343. WireConnection;239;0;147;0
  344. WireConnection;188;0;317;0
  345. WireConnection;296;0;298;0
  346. WireConnection;186;0;293;0
  347. WireConnection;186;1;149;0
  348. WireConnection;186;2;192;0
  349. WireConnection;90;0;198;0
  350. WireConnection;319;0;239;1
  351. WireConnection;318;0;296;0
  352. WireConnection;153;0;186;0
  353. WireConnection;153;1;193;0
  354. WireConnection;181;0;115;0
  355. WireConnection;89;0;90;0
  356. WireConnection;334;0;96;1
  357. WireConnection;334;1;96;2
  358. WireConnection;336;0;98;2
  359. WireConnection;336;1;98;3
  360. WireConnection;187;0;161;0
  361. WireConnection;187;1;119;0
  362. WireConnection;187;2;188;0
  363. WireConnection;335;0;97;1
  364. WireConnection;335;1;97;3
  365. WireConnection;180;0;181;0
  366. WireConnection;320;0;89;0
  367. WireConnection;33;1;334;0
  368. WireConnection;297;0;318;0
  369. WireConnection;1;1;336;0
  370. WireConnection;152;0;153;0
  371. WireConnection;287;0;187;0
  372. WireConnection;295;0;319;0
  373. WireConnection;302;1;335;0
  374. WireConnection;31;0;302;0
  375. WireConnection;31;1;295;0
  376. WireConnection;333;0;287;0
  377. WireConnection;333;1;287;2
  378. WireConnection;34;0;33;0
  379. WireConnection;34;1;297;0
  380. WireConnection;155;0;152;0
  381. WireConnection;155;1;180;0
  382. WireConnection;28;0;1;0
  383. WireConnection;28;1;320;0
  384. WireConnection;104;1;333;0
  385. WireConnection;268;0;155;0
  386. WireConnection;120;0;34;0
  387. WireConnection;32;0;28;0
  388. WireConnection;32;1;31;0
  389. WireConnection;299;0;292;0
  390. WireConnection;35;0;32;0
  391. WireConnection;35;1;120;0
  392. WireConnection;326;0;268;1
  393. WireConnection;190;0;104;0
  394. WireConnection;105;0;35;0
  395. WireConnection;105;1;190;0
  396. WireConnection;105;2;326;0
  397. WireConnection;300;0;299;0
  398. WireConnection;0;0;105;0
  399. WireConnection;0;1;300;0
  400. WireConnection;0;3;212;0
  401. WireConnection;0;4;213;0
  402. ASEEND*/
  403. //CHKSM=316ECE5042FEF6509FBA90C4635486F73A5AC616