468 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			468 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | // Made with Amplify Shader Editor v1.9.3.2 | ||
|  | // Available at the Unity Asset Store - http://u3d.as/y3X  | ||
|  | Shader "Polyart/Dreamscape/Builtin/Rock Detail" | ||
|  | { | ||
|  | 	Properties | ||
|  | 	{ | ||
|  | 		[Header(BASE COLOR)]_TextureSize("Texture Size", Float) = 100 | ||
|  | 		_ColorMap("Color Map", 2D) = "white" {} | ||
|  | 		_ColorTint("Color Tint", Color) = (1,1,1,0) | ||
|  | 		[Header(BASE PBR)]_NormalMap("Normal Map", 2D) = "white" {} | ||
|  | 		_NormalIntensity("Normal Intensity", Range( 0 , 1)) = 1 | ||
|  | 		_ORMMap("ORM Map", 2D) = "white" {} | ||
|  | 		_RoughnessIntensity("Roughness Intensity", Range( 0 , 2)) = 1 | ||
|  | 		_AOIntensity("AO Intensity", Range( 0 , 2)) = 1 | ||
|  | 		_MetallicIntensity("Metallic Intensity", Range( 0 , 1)) = 0 | ||
|  | 		_EmissiveMap("Emissive Map", 2D) = "white" {} | ||
|  | 		_EmissiveColor("Emissive Color", Color) = (0,0,0,0) | ||
|  | 		_EmissiveIntensity("Emissive Intensity", Float) = 0 | ||
|  | 		[Header(DETAIL MAPPING)][Toggle(_USEDETAILMAPS_ON)] _UseDetailMaps("Use Detail Maps?", Float) = 0 | ||
|  | 		_DetailSize("Detail Size", Float) = 100 | ||
|  | 		_DetailColorMap("Detail Color Map", 2D) = "white" {} | ||
|  | 		_DetailColorIntensity("Detail Color Intensity", Range( 0 , 1)) = 1 | ||
|  | 		_DetailNormalMap("Detail Normal Map", 2D) = "bump" {} | ||
|  | 		_DetailNormalIntensity("Detail Normal Intensity", Range( 0 , 1)) = 1 | ||
|  | 		[Toggle(_USETRIPLANAR_ON)] _UseTriplanar("Use Triplanar?", Float) = 1 | ||
|  | 		[Header(COVERAGE)][Toggle(_ENABLECOVERAGE_ON)] _EnableCoverage("Enable Coverage?", Float) = 0 | ||
|  | 		_CoverageSize("Coverage Size", Float) = 100 | ||
|  | 		_CoverageColorMap("Coverage Color Map", 2D) = "white" {} | ||
|  | 		_CoverageNormalMap("Coverage Normal Map", 2D) = "white" {} | ||
|  | 		_CoverageNormalIntensity("Coverage Normal Intensity", Range( 0 , 1)) = 1 | ||
|  | 		_CoverageORMMap(" Coverage ORM Map", 2D) = "white" {} | ||
|  | 		_CoverageRoughnessIntensity("Coverage Roughness Intensity", Range( 0 , 2)) = 1 | ||
|  | 		_CoverageMetallicIntensity("Coverage Metallic Intensity", Range( 0 , 1)) = 0 | ||
|  | 		_SlopeOffset("Slope Offset", Float) = 0 | ||
|  | 		_SlopeContrast("Slope Contrast", Float) = 1 | ||
|  | 		[KeywordEnum(VertexBlending,NormalBlending,NoiseBlending)] _EdgeBlending("Edge Blending", Float) = 0 | ||
|  | 		_SlopeNoiseTexture("Slope Noise Texture", 2D) = "white" {} | ||
|  | 		_NoiseTextureSize("Noise Texture Size", Float) = 100 | ||
|  | 		[HideInInspector] _texcoord( "", 2D ) = "white" {} | ||
|  | 		[HideInInspector] __dirty( "", Int ) = 1 | ||
|  | 	} | ||
|  | 
 | ||
|  | 	SubShader | ||
|  | 	{ | ||
|  | 		Tags{ "RenderType" = "Opaque"  "Queue" = "Geometry+0" "IsEmissive" = "true"  } | ||
|  | 		Cull Back | ||
|  | 		CGINCLUDE | ||
|  | 		#include "UnityStandardUtils.cginc" | ||
|  | 		#include "UnityPBSLighting.cginc" | ||
|  | 		#include "Lighting.cginc" | ||
|  | 		#pragma target 3.0 | ||
|  | 		#pragma shader_feature_local _ENABLECOVERAGE_ON | ||
|  | 		#pragma shader_feature_local _USEDETAILMAPS_ON | ||
|  | 		#pragma shader_feature_local _USETRIPLANAR_ON | ||
|  | 		#pragma shader_feature_local _EDGEBLENDING_VERTEXBLENDING _EDGEBLENDING_NORMALBLENDING _EDGEBLENDING_NOISEBLENDING | ||
|  | 		#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 | ||
|  | 		{ | ||
|  | 			float2 uv_texcoord; | ||
|  | 			float3 worldPos; | ||
|  | 			float3 worldNormal; | ||
|  | 			INTERNAL_DATA | ||
|  | 		}; | ||
|  | 
 | ||
|  | 		uniform sampler2D _NormalMap; | ||
|  | 		uniform float _TextureSize; | ||
|  | 		uniform float _NormalIntensity; | ||
|  | 		uniform sampler2D _DetailNormalMap; | ||
|  | 		uniform float _DetailSize; | ||
|  | 		uniform float _DetailNormalIntensity; | ||
|  | 		uniform sampler2D _CoverageNormalMap; | ||
|  | 		uniform float _CoverageSize; | ||
|  | 		uniform float _CoverageNormalIntensity; | ||
|  | 		uniform float _SlopeContrast; | ||
|  | 		uniform float _SlopeOffset; | ||
|  | 		uniform sampler2D _SlopeNoiseTexture; | ||
|  | 		uniform float _NoiseTextureSize; | ||
|  | 		uniform float4 _ColorTint; | ||
|  | 		uniform sampler2D _ColorMap; | ||
|  | 		uniform sampler2D _DetailColorMap; | ||
|  | 		uniform float _DetailColorIntensity; | ||
|  | 		uniform sampler2D _CoverageColorMap; | ||
|  | 		uniform sampler2D _EmissiveMap; | ||
|  | 		uniform float4 _EmissiveColor; | ||
|  | 		uniform float _EmissiveIntensity; | ||
|  | 		uniform sampler2D _ORMMap; | ||
|  | 		uniform float _MetallicIntensity; | ||
|  | 		uniform sampler2D _CoverageORMMap; | ||
|  | 		uniform float _CoverageMetallicIntensity; | ||
|  | 		uniform float _RoughnessIntensity; | ||
|  | 		uniform float _CoverageRoughnessIntensity; | ||
|  | 		uniform float _AOIntensity; | ||
|  | 
 | ||
|  | 
 | ||
|  | 		inline float3 TriplanarSampling19_g282( 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 ) ); | ||
|  | 			xNorm.xyz  = half3( UnpackScaleNormal( xNorm, normalScale.y ).xy * float2(  nsign.x, 1.0 ) + worldNormal.zy, worldNormal.x ).zyx; | ||
|  | 			yNorm.xyz  = half3( UnpackScaleNormal( yNorm, normalScale.x ).xy * float2(  nsign.y, 1.0 ) + worldNormal.xz, worldNormal.y ).xzy; | ||
|  | 			zNorm.xyz  = half3( UnpackScaleNormal( zNorm, normalScale.y ).xy * float2( -nsign.z, 1.0 ) + worldNormal.xy, worldNormal.z ).xyz; | ||
|  | 			return normalize( xNorm.xyz * projNormal.x + yNorm.xyz * projNormal.y + zNorm.xyz * projNormal.z ); | ||
|  | 		} | ||
|  | 
 | ||
|  | 
 | ||
|  | 		inline float4 TriplanarSampling35_g302( 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 TriplanarSampling12_g282( 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 temp_output_19_0_g283 = ( i.uv_texcoord / ( _TextureSize / 100.0 ) ); | ||
|  | 			float3 temp_output_32_7 = UnpackScaleNormal( tex2D( _NormalMap, temp_output_19_0_g283 ), _NormalIntensity ); | ||
|  | 			float temp_output_8_0_g282 = ( 100.0 / _DetailSize ); | ||
|  | 			float2 temp_cast_1 = (temp_output_8_0_g282).xx; | ||
|  | 			float temp_output_18_0_g282 = _DetailNormalIntensity; | ||
|  | 			float2 temp_cast_3 = (temp_output_8_0_g282).xx; | ||
|  | 			float3 ase_worldPos = i.worldPos; | ||
|  | 			float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) ); | ||
|  | 			float3 ase_worldTangent = WorldNormalVector( i, float3( 1, 0, 0 ) ); | ||
|  | 			float3 ase_worldBitangent = WorldNormalVector( i, float3( 0, 1, 0 ) ); | ||
|  | 			float3x3 ase_worldToTangent = float3x3( ase_worldTangent, ase_worldBitangent, ase_worldNormal ); | ||
|  | 			float3 triplanar19_g282 = TriplanarSampling19_g282( _DetailNormalMap, ase_worldPos, ase_worldNormal, 1.0, temp_cast_3, temp_output_18_0_g282, 0 ); | ||
|  | 			float3 tanTriplanarNormal19_g282 = mul( ase_worldToTangent, triplanar19_g282 ); | ||
|  | 			#ifdef _USETRIPLANAR_ON | ||
|  | 				float3 staticSwitch16_g282 = tanTriplanarNormal19_g282; | ||
|  | 			#else | ||
|  | 				float3 staticSwitch16_g282 = UnpackScaleNormal( tex2D( _DetailNormalMap, temp_cast_1 ), temp_output_18_0_g282 ); | ||
|  | 			#endif | ||
|  | 			#ifdef _USEDETAILMAPS_ON | ||
|  | 				float3 staticSwitch81 = BlendNormals( temp_output_32_7 , staticSwitch16_g282 ); | ||
|  | 			#else | ||
|  | 				float3 staticSwitch81 = temp_output_32_7; | ||
|  | 			#endif | ||
|  | 			float2 temp_output_19_0_g286 = ( i.uv_texcoord / ( _CoverageSize / 100.0 ) ); | ||
|  | 			float temp_output_1_0_g305 = _SlopeContrast; | ||
|  | 			float3 ase_vertexNormal = mul( unity_WorldToObject, float4( ase_worldNormal, 0 ) ); | ||
|  | 			ase_vertexNormal = normalize( ase_vertexNormal ); | ||
|  | 			float3 objToWorldDir51_g302 = mul( unity_ObjectToWorld, float4( ase_vertexNormal, 0 ) ).xyz; | ||
|  | 			float dotResult18_g302 = dot( objToWorldDir51_g302 , float3(0,2,0) ); | ||
|  | 			float temp_output_21_0_g302 = ( ( _SlopeOffset + dotResult18_g302 ) * 2.0 ); | ||
|  | 			float clampResult22_g302 = clamp( temp_output_21_0_g302 , 0.0 , 1.0 ); | ||
|  | 			float lerpResult7_g305 = lerp( ( 0.0 - temp_output_1_0_g305 ) , ( temp_output_1_0_g305 + 0.0 ) , clampResult22_g302); | ||
|  | 			float clampResult8_g305 = clamp( lerpResult7_g305 , 0.0 , 1.0 ); | ||
|  | 			float temp_output_1_0_g303 = _SlopeContrast; | ||
|  | 			float3x3 ase_tangentToWorldFast = float3x3(ase_worldTangent.x,ase_worldBitangent.x,ase_worldNormal.x,ase_worldTangent.y,ase_worldBitangent.y,ase_worldNormal.y,ase_worldTangent.z,ase_worldBitangent.z,ase_worldNormal.z); | ||
|  | 			float3 tangentToWorldDir6_g302 = mul( ase_tangentToWorldFast, temp_output_32_7 ); | ||
|  | 			float dotResult7_g302 = dot( tangentToWorldDir6_g302 , float3(0,1,0) ); | ||
|  | 			float lerpResult11_g302 = lerp( 0.0 , 3.0 , ( dotResult7_g302 + _SlopeOffset )); | ||
|  | 			float clampResult12_g302 = clamp( lerpResult11_g302 , 0.0 , 1.0 ); | ||
|  | 			float lerpResult7_g303 = lerp( ( 0.0 - temp_output_1_0_g303 ) , ( temp_output_1_0_g303 + 0.0 ) , clampResult12_g302); | ||
|  | 			float clampResult8_g303 = clamp( lerpResult7_g303 , 0.0 , 1.0 ); | ||
|  | 			float temp_output_1_0_g307 = _SlopeContrast; | ||
|  | 			float2 temp_cast_5 = (_NoiseTextureSize).xx; | ||
|  | 			float4 triplanar35_g302 = TriplanarSampling35_g302( _SlopeNoiseTexture, ase_worldPos, ase_worldNormal, 1.0, temp_cast_5, 1.0, 0 ); | ||
|  | 			float clampResult42_g302 = clamp( (triplanar35_g302).x , 0.0 , 1.0 ); | ||
|  | 			float lerpResult7_g307 = lerp( ( 0.0 - temp_output_1_0_g307 ) , ( temp_output_1_0_g307 + 0.0 ) , ( temp_output_21_0_g302 + clampResult42_g302 )); | ||
|  | 			float clampResult8_g307 = clamp( lerpResult7_g307 , 0.0 , 1.0 ); | ||
|  | 			float clampResult26_g302 = clamp( clampResult8_g307 , 0.0 , 1.0 ); | ||
|  | 			#if defined(_EDGEBLENDING_VERTEXBLENDING) | ||
|  | 				float staticSwitch43_g302 = clampResult8_g305; | ||
|  | 			#elif defined(_EDGEBLENDING_NORMALBLENDING) | ||
|  | 				float staticSwitch43_g302 = clampResult8_g303; | ||
|  | 			#elif defined(_EDGEBLENDING_NOISEBLENDING) | ||
|  | 				float staticSwitch43_g302 = clampResult26_g302; | ||
|  | 			#else | ||
|  | 				float staticSwitch43_g302 = clampResult8_g305; | ||
|  | 			#endif | ||
|  | 			float temp_output_149_0 = staticSwitch43_g302; | ||
|  | 			float3 lerpResult56 = lerp( staticSwitch81 , UnpackScaleNormal( tex2D( _CoverageNormalMap, temp_output_19_0_g286 ), _CoverageNormalIntensity ) , temp_output_149_0); | ||
|  | 			#ifdef _ENABLECOVERAGE_ON | ||
|  | 				float3 staticSwitch58 = lerpResult56; | ||
|  | 			#else | ||
|  | 				float3 staticSwitch58 = staticSwitch81; | ||
|  | 			#endif | ||
|  | 			o.Normal = staticSwitch58; | ||
|  | 			float4 temp_output_32_0 = ( _ColorTint * tex2D( _ColorMap, temp_output_19_0_g283 ) ); | ||
|  | 			float2 temp_cast_7 = (temp_output_8_0_g282).xx; | ||
|  | 			float2 temp_cast_8 = (temp_output_8_0_g282).xx; | ||
|  | 			float4 triplanar12_g282 = TriplanarSampling12_g282( _DetailColorMap, ase_worldPos, ase_worldNormal, 1.0, temp_cast_8, 1.0, 0 ); | ||
|  | 			#ifdef _USETRIPLANAR_ON | ||
|  | 				float4 staticSwitch11_g282 = triplanar12_g282; | ||
|  | 			#else | ||
|  | 				float4 staticSwitch11_g282 = tex2D( _DetailColorMap, temp_cast_7 ); | ||
|  | 			#endif | ||
|  | 			float4 lerpResult16_g285 = lerp( temp_output_32_0 , staticSwitch11_g282 , _DetailColorIntensity); | ||
|  | 			#ifdef _USEDETAILMAPS_ON | ||
|  | 				float4 staticSwitch77 = lerpResult16_g285; | ||
|  | 			#else | ||
|  | 				float4 staticSwitch77 = temp_output_32_0; | ||
|  | 			#endif | ||
|  | 			float4 color13_g286 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0); | ||
|  | 			float4 lerpResult55 = lerp( staticSwitch77 , ( color13_g286 * tex2D( _CoverageColorMap, temp_output_19_0_g286 ) ) , temp_output_149_0); | ||
|  | 			#ifdef _ENABLECOVERAGE_ON | ||
|  | 				float4 staticSwitch57 = lerpResult55; | ||
|  | 			#else | ||
|  | 				float4 staticSwitch57 = staticSwitch77; | ||
|  | 			#endif | ||
|  | 			o.Albedo = staticSwitch57.rgb; | ||
|  | 			o.Emission = ( ( tex2D( _EmissiveMap, temp_output_19_0_g283 ) * _EmissiveColor ) * _EmissiveIntensity ).rgb; | ||
|  | 			float4 tex2DNode9_g284 = tex2D( _ORMMap, temp_output_19_0_g283 ); | ||
|  | 			float temp_output_32_3 = ( tex2DNode9_g284.b * _MetallicIntensity ); | ||
|  | 			float4 tex2DNode9_g287 = tex2D( _CoverageORMMap, temp_output_19_0_g286 ); | ||
|  | 			float lerpResult63 = lerp( ( tex2DNode9_g287.b * _CoverageMetallicIntensity ) , temp_output_32_3 , temp_output_149_0); | ||
|  | 			#ifdef _ENABLECOVERAGE_ON | ||
|  | 				float staticSwitch60 = lerpResult63; | ||
|  | 			#else | ||
|  | 				float staticSwitch60 = temp_output_32_3; | ||
|  | 			#endif | ||
|  | 			o.Metallic = staticSwitch60; | ||
|  | 			float temp_output_32_5 = ( 1.0 - ( tex2DNode9_g284.g * _RoughnessIntensity ) ); | ||
|  | 			float lerpResult62 = lerp( temp_output_32_5 , ( 1.0 - ( tex2DNode9_g287.g * _CoverageRoughnessIntensity ) ) , temp_output_149_0); | ||
|  | 			#ifdef _ENABLECOVERAGE_ON | ||
|  | 				float staticSwitch59 = lerpResult62; | ||
|  | 			#else | ||
|  | 				float staticSwitch59 = temp_output_32_5; | ||
|  | 			#endif | ||
|  | 			o.Smoothness = staticSwitch59; | ||
|  | 			float lerpResult10_g284 = lerp( 1.0 , tex2DNode9_g284.r , _AOIntensity); | ||
|  | 			float temp_output_32_8 = lerpResult10_g284; | ||
|  | 			float lerpResult10_g287 = lerp( 1.0 , tex2DNode9_g287.r , 0.0); | ||
|  | 			float lerpResult64 = lerp( lerpResult10_g287 , temp_output_32_8 , temp_output_149_0); | ||
|  | 			#ifdef _ENABLECOVERAGE_ON | ||
|  | 				float staticSwitch61 = lerpResult64; | ||
|  | 			#else | ||
|  | 				float staticSwitch61 = temp_output_32_8; | ||
|  | 			#endif | ||
|  | 			o.Occlusion = staticSwitch61; | ||
|  | 			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.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; | ||
|  | 				float2 customPack1 : TEXCOORD1; | ||
|  | 				float4 tSpace0 : TEXCOORD2; | ||
|  | 				float4 tSpace1 : TEXCOORD3; | ||
|  | 				float4 tSpace2 : TEXCOORD4; | ||
|  | 				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; | ||
|  | 				float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz; | ||
|  | 				half3 worldNormal = UnityObjectToWorldNormal( v.normal ); | ||
|  | 				half3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz ); | ||
|  | 				half tangentSign = v.tangent.w * unity_WorldTransformParams.w; | ||
|  | 				half3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign; | ||
|  | 				o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x ); | ||
|  | 				o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y ); | ||
|  | 				o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z ); | ||
|  | 				o.customPack1.xy = customInputData.uv_texcoord; | ||
|  | 				o.customPack1.xy = v.texcoord; | ||
|  | 				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; | ||
|  | 				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=19302 | ||
|  | Node;AmplifyShaderEditor.CommentaryNode;31;-1929.161,-329.2871;Inherit;False;1072.199;1674.577;Comment;14;33;18;30;21;29;19;16;32;10;15;11;14;13;82;;1,1,1,1;0;0 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;11;-1821.161,-191.2872;Inherit;True;Property;_ColorMap;Color Map;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;18;-1860.161,652.7126;Inherit;False;Property;_RoughnessIntensity;Roughness Intensity;12;0;Create;True;0;0;0;False;0;False;1;1;0;2;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;21;-1862.313,815.3082;Inherit;False;Property;_MetallicIntensity;Metallic Intensity;14;0;Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;30;-1792.295,1259.69;Inherit;False;Property;_EmissiveIntensity;Emissive Intensity;17;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;15;-1864.161,372.7129;Inherit;False;Property;_NormalIntensity;Normal Intensity;10;0;Create;True;0;0;0;False;0;False;1;1;0;1;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;33;-1865.635,737.5316;Inherit;False;Property;_AOIntensity;AO Intensity;13;0;Create;True;0;0;0;False;0;False;1;1;0;2;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;19;-1816.773,895.9807;Inherit;True;Property;_EmissiveMap;Emissive Map;15;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;10;-1761.161,-280.2871;Inherit;False;Property;_TextureSize;Texture Size;6;0;Create;True;0;0;0;False;1;Header(BASE COLOR);False;100;100;0;0;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.ColorNode;13;-1798.161,-0.2872119;Inherit;False;Property;_ColorTint;Color Tint;8;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.TexturePropertyNode;16;-1818.161,447.7129;Inherit;True;Property;_ORMMap;ORM Map;11;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;14;-1817.161,173.7128;Inherit;True;Property;_NormalMap;Normal Map;9;0;Create;True;0;0;0;False;1;Header(BASE PBR);False;None;None;True;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;86;-1714.344,-579.924;Inherit;False;Property;_DetailNormalIntensity;Detail Normal Intensity;23;0;Create;True;0;0;0;False;0;False;1;0.674;0;1;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;85;-1665.047,-797.7583;Inherit;True;Property;_DetailNormalMap;Detail Normal Map;22;0;Create;True;0;0;0;False;0;False;None;None;False;bump;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;84;-1665.047,-1013.758;Inherit;True;Property;_DetailColorMap;Detail Color Map;20;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.ColorNode;29;-1799.295,1086.69;Inherit;False;Property;_EmissiveColor;Emissive Color;16;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.RangedFloatNode;146;-1555.887,-480.2272;Inherit;False;Property;_DetailSize;Detail Size;19;0;Create;True;0;0;0;False;0;False;100;0;0;0;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.CommentaryNode;39;-1884.634,1396.396;Inherit;False;1051.886;1058.01;Comment;8;40;47;50;52;51;48;46;41;;1,1,1,1;0;0 | ||
|  | Node;AmplifyShaderEditor.FunctionNode;147;-1140.479,-554.282;Inherit;False;PA_SF_DetailTexture;24;;282;3e3ce62e92fb3dc48a5a47a0f7420594;0;5;6;SAMPLER2D;0;False;14;SAMPLER2D;0;False;18;FLOAT;1;False;9;FLOAT;100;False;13;FLOAT;1;False;2;COLOR;0;FLOAT3;1 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;82;-1139.487,-228.8505;Inherit;False;Property;_DetailColorIntensity;Detail Color Intensity;21;0;Create;True;0;0;0;False;0;False;1;0.445;0;1;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.FunctionNode;32;-1267.661,283.571;Inherit;False;PA_SF_BasePBR_OpaqueORM;0;;283;a21dcaebf1379e5439b421c5da1cd710;0;12;20;FLOAT;100;False;9;SAMPLER2D;0;False;15;COLOR;0,0,0,0;False;22;SAMPLER2D;;False;28;FLOAT;1;False;59;SAMPLER2D;;False;38;FLOAT;1;False;73;FLOAT;0;False;39;FLOAT;0;False;52;SAMPLER2D;;False;53;COLOR;0,0,0,0;False;54;FLOAT;0;False;6;COLOR;0;FLOAT3;7;COLOR;6;FLOAT;5;FLOAT;3;FLOAT;8 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;40;-1839.295,2322.321;Inherit;False;Property;_CoverageMetallicIntensity;Coverage Metallic Intensity;33;0;Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.WireNode;38;-674.0967,782.8811;Inherit;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;35;-854.2053,895.7217;Inherit;True;Property;_SlopeNoiseTexture;Slope Noise Texture;40;0;Create;True;0;0;0;False;0;False;None;8965de8a437b2304f8e4aa6a137ab1ed;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.FunctionNode;117;-470.4984,-270.0388;Inherit;False;PA_SF_DetailMapping;-1;;285;926b4928e95edad4f8ece8c367ad2fa5;0;5;3;FLOAT4;0,0,0,0;False;4;FLOAT3;0,0,0;False;17;FLOAT;0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;2;FLOAT4;0;FLOAT3;18 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;48;-1794.143,1744.06;Inherit;True;Property;_CoverageNormalMap;Coverage Normal Map;29;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;50;-1797.532,2027.616;Inherit;True;Property;_CoverageORMMap; Coverage ORM Map;31;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;-829.2182,1088.488;Inherit;False;Property;_NoiseTextureSize;Noise Texture Size;41;0;Create;True;0;0;0;False;0;False;100;0.3;0;0;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;47;-1841.143,1943.06;Inherit;False;Property;_CoverageNormalIntensity;Coverage Normal Intensity;30;0;Create;True;0;0;0;False;0;False;1;1;0;1;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;46;-1736.948,1446.396;Inherit;False;Property;_CoverageSize;Coverage Size;27;0;Create;True;0;0;0;False;0;False;100;31.78;0;0;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.RangedFloatNode;41;-1844.312,2226.64;Inherit;False;Property;_CoverageRoughnessIntensity;Coverage Roughness Intensity;32;0;Create;True;0;0;0;False;0;False;1;1;0;2;0;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.TexturePropertyNode;51;-1796.948,1534.396;Inherit;True;Property;_CoverageColorMap;Coverage Color Map;28;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 | ||
|  | Node;AmplifyShaderEditor.FunctionNode;52;-1325.896,1787.005;Inherit;False;PA_SF_BasePBR_OpaqueORM;0;;286;a21dcaebf1379e5439b421c5da1cd710;0;12;20;FLOAT;100;False;9;SAMPLER2D;0;False;15;COLOR;0,0,0,0;False;22;SAMPLER2D;;False;28;FLOAT;1;False;59;SAMPLER2D;;False;38;FLOAT;1;False;73;FLOAT;0;False;39;FLOAT;0;False;52;SAMPLER2D;;False;53;COLOR;0,0,0,0;False;54;FLOAT;0;False;6;COLOR;0;FLOAT3;7;COLOR;6;FLOAT;5;FLOAT;3;FLOAT;8 | ||
|  | Node;AmplifyShaderEditor.StaticSwitch;81;-6.565722,-166.6609;Inherit;False;Property;_UseDetailMaps;Use Detail Maps?;18;0;Create;True;0;0;0;False;1;Header(COVERAGE);False;0;0;0;True;;Toggle;2;Key0;Key1;Reference;77;True;True;All;9;1;FLOAT3;0,0,0;False;0;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;FLOAT3;0,0,0;False;5;FLOAT3;0,0,0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT3;0,0,0;False;1;FLOAT3;0 | ||
|  | Node;AmplifyShaderEditor.StaticSwitch;77;-7.613848,-306.7618;Inherit;False;Property;_UseDetailMaps;Use Detail Maps?;18;0;Create;True;0;0;0;False;1;Header(DETAIL MAPPING);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.FunctionNode;149;-358.0807,1073.428;Inherit;False;PA_SF_VerticalBlend;34;;302;b9497802ac41dee4999b8364feedf4c9;0;3;36;SAMPLER2D;;False;38;FLOAT;1;False;2;FLOAT3;0,0,0;False;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.LerpOp;55;499.448,742.1913;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.LerpOp;64;496.4579,1276.388;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.LerpOp;56;503.5745,890.6774;Inherit;False;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT;0;False;1;FLOAT3;0 | ||
|  | Node;AmplifyShaderEditor.LerpOp;62;497.8784,1144.956;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.LerpOp;63;494.9045,1018.544;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0 | ||
|  | Node;AmplifyShaderEditor.StaticSwitch;60;1210.189,316.053;Inherit;False;Property;_EnableCoverage;Enable Coverage?;26;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Reference;59;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.StaticSwitch;57;1209.443,64.64606;Inherit;False;Property;_EnableCoverage;Enable Coverage?;26;0;Create;True;0;0;0;False;1;Header(COVERAGE);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.StaticSwitch;59;1210.327,428.8028;Inherit;False;Property;_EnableCoverage;Enable Coverage?;26;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Reference;61;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.StaticSwitch;58;1213.277,177.14;Inherit;False;Property;_EnableCoverage;Enable Coverage?;26;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Reference;59;True;True;All;9;1;FLOAT3;0,0,0;False;0;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;FLOAT3;0,0,0;False;5;FLOAT3;0,0,0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT3;0,0,0;False;1;FLOAT3;0 | ||
|  | Node;AmplifyShaderEditor.StaticSwitch;61;1212.44,548.1245;Inherit;False;Property;_EnableCoverage;Enable Coverage?;26;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Reference;57;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.StandardSurfaceOutputNode;0;2077.191,68.90057;Float;False;True;-1;2;;0;0;Standard;Polyart/Dreamscape/Builtin/Rock Detail;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;17;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;16;FLOAT4;0,0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0 | ||
|  | WireConnection;147;6;84;0 | ||
|  | WireConnection;147;14;85;0 | ||
|  | WireConnection;147;18;86;0 | ||
|  | WireConnection;147;9;146;0 | ||
|  | WireConnection;32;20;10;0 | ||
|  | WireConnection;32;9;11;0 | ||
|  | WireConnection;32;15;13;0 | ||
|  | WireConnection;32;22;14;0 | ||
|  | WireConnection;32;28;15;0 | ||
|  | WireConnection;32;59;16;0 | ||
|  | WireConnection;32;38;18;0 | ||
|  | WireConnection;32;73;33;0 | ||
|  | WireConnection;32;39;21;0 | ||
|  | WireConnection;32;52;19;0 | ||
|  | WireConnection;32;53;29;0 | ||
|  | WireConnection;32;54;30;0 | ||
|  | WireConnection;38;0;32;7 | ||
|  | WireConnection;117;3;147;0 | ||
|  | WireConnection;117;4;147;1 | ||
|  | WireConnection;117;17;82;0 | ||
|  | WireConnection;117;14;32;0 | ||
|  | WireConnection;117;15;32;7 | ||
|  | WireConnection;52;20;46;0 | ||
|  | WireConnection;52;9;51;0 | ||
|  | WireConnection;52;22;48;0 | ||
|  | WireConnection;52;28;47;0 | ||
|  | WireConnection;52;59;50;0 | ||
|  | WireConnection;52;38;41;0 | ||
|  | WireConnection;52;39;40;0 | ||
|  | WireConnection;81;1;32;7 | ||
|  | WireConnection;81;0;117;18 | ||
|  | WireConnection;77;1;32;0 | ||
|  | WireConnection;77;0;117;0 | ||
|  | WireConnection;149;36;35;0 | ||
|  | WireConnection;149;38;37;0 | ||
|  | WireConnection;149;2;38;0 | ||
|  | WireConnection;55;0;77;0 | ||
|  | WireConnection;55;1;52;0 | ||
|  | WireConnection;55;2;149;0 | ||
|  | WireConnection;64;0;52;8 | ||
|  | WireConnection;64;1;32;8 | ||
|  | WireConnection;64;2;149;0 | ||
|  | WireConnection;56;0;81;0 | ||
|  | WireConnection;56;1;52;7 | ||
|  | WireConnection;56;2;149;0 | ||
|  | WireConnection;62;0;32;5 | ||
|  | WireConnection;62;1;52;5 | ||
|  | WireConnection;62;2;149;0 | ||
|  | WireConnection;63;0;52;3 | ||
|  | WireConnection;63;1;32;3 | ||
|  | WireConnection;63;2;149;0 | ||
|  | WireConnection;60;1;32;3 | ||
|  | WireConnection;60;0;63;0 | ||
|  | WireConnection;57;1;77;0 | ||
|  | WireConnection;57;0;55;0 | ||
|  | WireConnection;59;1;32;5 | ||
|  | WireConnection;59;0;62;0 | ||
|  | WireConnection;58;1;81;0 | ||
|  | WireConnection;58;0;56;0 | ||
|  | WireConnection;61;1;32;8 | ||
|  | WireConnection;61;0;64;0 | ||
|  | WireConnection;0;0;57;0 | ||
|  | WireConnection;0;1;58;0 | ||
|  | WireConnection;0;2;32;6 | ||
|  | WireConnection;0;3;60;0 | ||
|  | WireConnection;0;4;59;0 | ||
|  | WireConnection;0;5;61;0 | ||
|  | ASEEND*/ | ||
|  | //CHKSM=B749605B3719A927ECCBD6CCE3553872D4636013 |