shuimoFX.shader 78 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886
  1. // Made with Amplify Shader Editor v1.9.1.5
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "LT/shuimoFX"
  4. {
  5. Properties
  6. {
  7. [HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
  8. [HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
  9. [ASEBegin]_Main_Tex("Main_Tex", 2D) = "white" {}
  10. _CTime("_CTime", Float) = 1
  11. _TextureGao("高亮贴图", 2D) = "white" {}
  12. _ColorGG("高光Color", Color) = (0,0.7602248,1,1)
  13. _Rj2Tex("溶解2贴图", 2D) = "white" {}
  14. _RJraodong("溶解扰动", 2D) = "white" {}
  15. _RJraodongqd("溶解扰动强度", Float) = 0.2
  16. _RJraodongsd("溶解扰动速度", Float) = 0.2
  17. _AlphaQD("不透明强度", Float) = 1
  18. _RJ1soft("RJ1软度", Range( 0 , 1)) = 0
  19. _RJ2soft("RJ2软度", Range( 0 , 1)) = 0
  20. _dissolve("dissolve", 2D) = "white" {}
  21. [ASEEnd]_Soft_value("Soft_value", Range( 0 , 1)) = 0
  22. [HideInInspector] _texcoord( "", 2D ) = "white" {}
  23. //_TessPhongStrength( "Tess Phong Strength", Range( 0, 1 ) ) = 0.5
  24. //_TessValue( "Tess Max Tessellation", Range( 1, 32 ) ) = 16
  25. //_TessMin( "Tess Min Distance", Float ) = 10
  26. //_TessMax( "Tess Max Distance", Float ) = 25
  27. //_TessEdgeLength ( "Tess Edge length", Range( 2, 50 ) ) = 16
  28. //_TessMaxDisp( "Tess Max Displacement", Float ) = 25
  29. [HideInInspector] _QueueOffset("_QueueOffset", Float) = 0
  30. [HideInInspector] _QueueControl("_QueueControl", Float) = -1
  31. [HideInInspector][NoScaleOffset] unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
  32. [HideInInspector][NoScaleOffset] unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
  33. [HideInInspector][NoScaleOffset] unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
  34. }
  35. SubShader
  36. {
  37. LOD 0
  38. Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" "UniversalMaterialType"="Unlit" }
  39. Cull Off
  40. AlphaToMask Off
  41. HLSLINCLUDE
  42. #pragma target 3.5
  43. #pragma prefer_hlslcc gles
  44. // ensure rendering platforms toggle list is visible
  45. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
  46. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl"
  47. #ifndef ASE_TESS_FUNCS
  48. #define ASE_TESS_FUNCS
  49. float4 FixedTess( float tessValue )
  50. {
  51. return tessValue;
  52. }
  53. float CalcDistanceTessFactor (float4 vertex, float minDist, float maxDist, float tess, float4x4 o2w, float3 cameraPos )
  54. {
  55. float3 wpos = mul(o2w,vertex).xyz;
  56. float dist = distance (wpos, cameraPos);
  57. float f = clamp(1.0 - (dist - minDist) / (maxDist - minDist), 0.01, 1.0) * tess;
  58. return f;
  59. }
  60. float4 CalcTriEdgeTessFactors (float3 triVertexFactors)
  61. {
  62. float4 tess;
  63. tess.x = 0.5 * (triVertexFactors.y + triVertexFactors.z);
  64. tess.y = 0.5 * (triVertexFactors.x + triVertexFactors.z);
  65. tess.z = 0.5 * (triVertexFactors.x + triVertexFactors.y);
  66. tess.w = (triVertexFactors.x + triVertexFactors.y + triVertexFactors.z) / 3.0f;
  67. return tess;
  68. }
  69. float CalcEdgeTessFactor (float3 wpos0, float3 wpos1, float edgeLen, float3 cameraPos, float4 scParams )
  70. {
  71. float dist = distance (0.5 * (wpos0+wpos1), cameraPos);
  72. float len = distance(wpos0, wpos1);
  73. float f = max(len * scParams.y / (edgeLen * dist), 1.0);
  74. return f;
  75. }
  76. float DistanceFromPlane (float3 pos, float4 plane)
  77. {
  78. float d = dot (float4(pos,1.0f), plane);
  79. return d;
  80. }
  81. bool WorldViewFrustumCull (float3 wpos0, float3 wpos1, float3 wpos2, float cullEps, float4 planes[6] )
  82. {
  83. float4 planeTest;
  84. planeTest.x = (( DistanceFromPlane(wpos0, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
  85. (( DistanceFromPlane(wpos1, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
  86. (( DistanceFromPlane(wpos2, planes[0]) > -cullEps) ? 1.0f : 0.0f );
  87. planeTest.y = (( DistanceFromPlane(wpos0, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
  88. (( DistanceFromPlane(wpos1, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
  89. (( DistanceFromPlane(wpos2, planes[1]) > -cullEps) ? 1.0f : 0.0f );
  90. planeTest.z = (( DistanceFromPlane(wpos0, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
  91. (( DistanceFromPlane(wpos1, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
  92. (( DistanceFromPlane(wpos2, planes[2]) > -cullEps) ? 1.0f : 0.0f );
  93. planeTest.w = (( DistanceFromPlane(wpos0, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
  94. (( DistanceFromPlane(wpos1, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
  95. (( DistanceFromPlane(wpos2, planes[3]) > -cullEps) ? 1.0f : 0.0f );
  96. return !all (planeTest);
  97. }
  98. float4 DistanceBasedTess( float4 v0, float4 v1, float4 v2, float tess, float minDist, float maxDist, float4x4 o2w, float3 cameraPos )
  99. {
  100. float3 f;
  101. f.x = CalcDistanceTessFactor (v0,minDist,maxDist,tess,o2w,cameraPos);
  102. f.y = CalcDistanceTessFactor (v1,minDist,maxDist,tess,o2w,cameraPos);
  103. f.z = CalcDistanceTessFactor (v2,minDist,maxDist,tess,o2w,cameraPos);
  104. return CalcTriEdgeTessFactors (f);
  105. }
  106. float4 EdgeLengthBasedTess( float4 v0, float4 v1, float4 v2, float edgeLength, float4x4 o2w, float3 cameraPos, float4 scParams )
  107. {
  108. float3 pos0 = mul(o2w,v0).xyz;
  109. float3 pos1 = mul(o2w,v1).xyz;
  110. float3 pos2 = mul(o2w,v2).xyz;
  111. float4 tess;
  112. tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
  113. tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
  114. tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
  115. tess.w = (tess.x + tess.y + tess.z) / 3.0f;
  116. return tess;
  117. }
  118. float4 EdgeLengthBasedTessCull( float4 v0, float4 v1, float4 v2, float edgeLength, float maxDisplacement, float4x4 o2w, float3 cameraPos, float4 scParams, float4 planes[6] )
  119. {
  120. float3 pos0 = mul(o2w,v0).xyz;
  121. float3 pos1 = mul(o2w,v1).xyz;
  122. float3 pos2 = mul(o2w,v2).xyz;
  123. float4 tess;
  124. if (WorldViewFrustumCull(pos0, pos1, pos2, maxDisplacement, planes))
  125. {
  126. tess = 0.0f;
  127. }
  128. else
  129. {
  130. tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
  131. tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
  132. tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
  133. tess.w = (tess.x + tess.y + tess.z) / 3.0f;
  134. }
  135. return tess;
  136. }
  137. #endif //ASE_TESS_FUNCS
  138. ENDHLSL
  139. Pass
  140. {
  141. Name "Forward"
  142. Tags { "LightMode"="UniversalForwardOnly" }
  143. Blend SrcAlpha OneMinusSrcAlpha, One OneMinusSrcAlpha
  144. ZWrite Off
  145. ZTest LEqual
  146. Offset 0 , 0
  147. ColorMask RGBA
  148. HLSLPROGRAM
  149. #pragma multi_compile_instancing
  150. #define _SURFACE_TYPE_TRANSPARENT 1
  151. #define _RECEIVE_SHADOWS_OFF 1
  152. #define ASE_SRP_VERSION 120108
  153. #pragma multi_compile _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
  154. #pragma multi_compile _ LIGHTMAP_ON
  155. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  156. #pragma shader_feature _ _SAMPLE_GI
  157. #pragma multi_compile _ DEBUG_DISPLAY
  158. #pragma vertex vert
  159. #pragma fragment frag
  160. #define SHADERPASS SHADERPASS_UNLIT
  161. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  162. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  163. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  164. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  165. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  166. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  167. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
  168. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  169. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl"
  170. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  171. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"
  172. #define ASE_NEEDS_FRAG_COLOR
  173. struct VertexInput
  174. {
  175. float4 vertex : POSITION;
  176. float3 ase_normal : NORMAL;
  177. float4 ase_texcoord : TEXCOORD0;
  178. float4 ase_texcoord1 : TEXCOORD1;
  179. float4 ase_color : COLOR;
  180. UNITY_VERTEX_INPUT_INSTANCE_ID
  181. };
  182. struct VertexOutput
  183. {
  184. float4 clipPos : SV_POSITION;
  185. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  186. float3 worldPos : TEXCOORD0;
  187. #endif
  188. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  189. float4 shadowCoord : TEXCOORD1;
  190. #endif
  191. #ifdef ASE_FOG
  192. float fogFactor : TEXCOORD2;
  193. #endif
  194. float4 ase_texcoord3 : TEXCOORD3;
  195. float4 ase_texcoord4 : TEXCOORD4;
  196. float4 ase_color : COLOR;
  197. UNITY_VERTEX_INPUT_INSTANCE_ID
  198. UNITY_VERTEX_OUTPUT_STEREO
  199. };
  200. CBUFFER_START(UnityPerMaterial)
  201. float4 _TextureGao_ST;
  202. float4 _ColorGG;
  203. float4 _Main_Tex_ST;
  204. float4 _RJraodong_ST;
  205. float4 _dissolve_ST;
  206. float _RJ1soft;
  207. float _RJraodongsd;
  208. float _CTime;
  209. float _RJraodongqd;
  210. float _RJ2soft;
  211. float _Soft_value;
  212. float _AlphaQD;
  213. #ifdef ASE_TESSELLATION
  214. float _TessPhongStrength;
  215. float _TessValue;
  216. float _TessMin;
  217. float _TessMax;
  218. float _TessEdgeLength;
  219. float _TessMaxDisp;
  220. #endif
  221. CBUFFER_END
  222. sampler2D _TextureGao;
  223. sampler2D _Main_Tex;
  224. sampler2D _RJraodong;
  225. sampler2D _Rj2Tex;
  226. sampler2D _dissolve;
  227. VertexOutput VertexFunction ( VertexInput v )
  228. {
  229. VertexOutput o = (VertexOutput)0;
  230. UNITY_SETUP_INSTANCE_ID(v);
  231. UNITY_TRANSFER_INSTANCE_ID(v, o);
  232. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  233. o.ase_texcoord3.xy = v.ase_texcoord.xy;
  234. o.ase_texcoord4 = v.ase_texcoord1;
  235. o.ase_color = v.ase_color;
  236. //setting value to unused interpolator channels and avoid initialization warnings
  237. o.ase_texcoord3.zw = 0;
  238. #ifdef ASE_ABSOLUTE_VERTEX_POS
  239. float3 defaultVertexValue = v.vertex.xyz;
  240. #else
  241. float3 defaultVertexValue = float3(0, 0, 0);
  242. #endif
  243. float3 vertexValue = defaultVertexValue;
  244. #ifdef ASE_ABSOLUTE_VERTEX_POS
  245. v.vertex.xyz = vertexValue;
  246. #else
  247. v.vertex.xyz += vertexValue;
  248. #endif
  249. v.ase_normal = v.ase_normal;
  250. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  251. float4 positionCS = TransformWorldToHClip( positionWS );
  252. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  253. o.worldPos = positionWS;
  254. #endif
  255. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  256. VertexPositionInputs vertexInput = (VertexPositionInputs)0;
  257. vertexInput.positionWS = positionWS;
  258. vertexInput.positionCS = positionCS;
  259. o.shadowCoord = GetShadowCoord( vertexInput );
  260. #endif
  261. #ifdef ASE_FOG
  262. o.fogFactor = ComputeFogFactor( positionCS.z );
  263. #endif
  264. o.clipPos = positionCS;
  265. return o;
  266. }
  267. #if defined(ASE_TESSELLATION)
  268. struct VertexControl
  269. {
  270. float4 vertex : INTERNALTESSPOS;
  271. float3 ase_normal : NORMAL;
  272. float4 ase_texcoord : TEXCOORD0;
  273. float4 ase_texcoord1 : TEXCOORD1;
  274. float4 ase_color : COLOR;
  275. UNITY_VERTEX_INPUT_INSTANCE_ID
  276. };
  277. struct TessellationFactors
  278. {
  279. float edge[3] : SV_TessFactor;
  280. float inside : SV_InsideTessFactor;
  281. };
  282. VertexControl vert ( VertexInput v )
  283. {
  284. VertexControl o;
  285. UNITY_SETUP_INSTANCE_ID(v);
  286. UNITY_TRANSFER_INSTANCE_ID(v, o);
  287. o.vertex = v.vertex;
  288. o.ase_normal = v.ase_normal;
  289. o.ase_texcoord = v.ase_texcoord;
  290. o.ase_texcoord1 = v.ase_texcoord1;
  291. o.ase_color = v.ase_color;
  292. return o;
  293. }
  294. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  295. {
  296. TessellationFactors o;
  297. float4 tf = 1;
  298. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  299. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  300. #if defined(ASE_FIXED_TESSELLATION)
  301. tf = FixedTess( tessValue );
  302. #elif defined(ASE_DISTANCE_TESSELLATION)
  303. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  304. #elif defined(ASE_LENGTH_TESSELLATION)
  305. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  306. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  307. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  308. #endif
  309. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  310. return o;
  311. }
  312. [domain("tri")]
  313. [partitioning("fractional_odd")]
  314. [outputtopology("triangle_cw")]
  315. [patchconstantfunc("TessellationFunction")]
  316. [outputcontrolpoints(3)]
  317. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  318. {
  319. return patch[id];
  320. }
  321. [domain("tri")]
  322. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  323. {
  324. VertexInput o = (VertexInput) 0;
  325. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  326. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  327. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  328. o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  329. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  330. #if defined(ASE_PHONG_TESSELLATION)
  331. float3 pp[3];
  332. for (int i = 0; i < 3; ++i)
  333. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  334. float phongStrength = _TessPhongStrength;
  335. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  336. #endif
  337. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  338. return VertexFunction(o);
  339. }
  340. #else
  341. VertexOutput vert ( VertexInput v )
  342. {
  343. return VertexFunction( v );
  344. }
  345. #endif
  346. half4 frag ( VertexOutput IN ) : SV_Target
  347. {
  348. UNITY_SETUP_INSTANCE_ID( IN );
  349. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
  350. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  351. float3 WorldPosition = IN.worldPos;
  352. #endif
  353. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  354. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  355. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  356. ShadowCoords = IN.shadowCoord;
  357. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  358. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  359. #endif
  360. #endif
  361. float2 uv_TextureGao = IN.ase_texcoord3.xy * _TextureGao_ST.xy + _TextureGao_ST.zw;
  362. float4 texCoord127 = IN.ase_texcoord4;
  363. texCoord127.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
  364. float2 uv_Main_Tex = IN.ase_texcoord3.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  365. float temp_output_133_0 = ( 1.0 - texCoord127.x );
  366. float2 texCoord37 = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  367. float2 temp_cast_1 = (( _RJraodongsd * _CTime )).xx;
  368. float2 uv_RJraodong = IN.ase_texcoord3.xy * _RJraodong_ST.xy + _RJraodong_ST.zw;
  369. float2 panner121 = ( 1.0 * _Time.y * temp_cast_1 + uv_RJraodong);
  370. float temp_output_116_0 = ( tex2D( _RJraodong, panner121 ).r * _RJraodongqd );
  371. float smoothstepResult98 = smoothstep( temp_output_133_0 , ( temp_output_133_0 + _RJ1soft ) , (( texCoord37 + temp_output_116_0 )).x);
  372. float temp_output_134_0 = ( 1.0 - texCoord127.y );
  373. float2 texCoord52 = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  374. float smoothstepResult108 = smoothstep( temp_output_134_0 , ( temp_output_134_0 + _RJ2soft ) , tex2D( _Rj2Tex, ( temp_output_116_0 + texCoord52 ) ).r);
  375. float2 uv_dissolve = IN.ase_texcoord3.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  376. float smoothstepResult136 = smoothstep( texCoord127.w , ( texCoord127.w + _Soft_value ) , tex2D( _dissolve, uv_dissolve ).r);
  377. float3 BakedAlbedo = 0;
  378. float3 BakedEmission = 0;
  379. float3 Color = ( tex2D( _TextureGao, uv_TextureGao ).r * texCoord127.z * _ColorGG * IN.ase_color ).rgb;
  380. float Alpha = ( ( ( tex2D( _Main_Tex, uv_Main_Tex ).a * ( smoothstepResult98 * smoothstepResult108 ) ) * IN.ase_color.a ) * smoothstepResult136 * _AlphaQD );
  381. float AlphaClipThreshold = 0.5;
  382. float AlphaClipThresholdShadow = 0.5;
  383. #ifdef _ALPHATEST_ON
  384. clip( Alpha - AlphaClipThreshold );
  385. #endif
  386. #if defined(_DBUFFER)
  387. ApplyDecalToBaseColor(IN.clipPos, Color);
  388. #endif
  389. #if defined(_ALPHAPREMULTIPLY_ON)
  390. Color *= Alpha;
  391. #endif
  392. #ifdef LOD_FADE_CROSSFADE
  393. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  394. #endif
  395. #ifdef ASE_FOG
  396. Color = MixFog( Color, IN.fogFactor );
  397. #endif
  398. return half4( Color, Alpha );
  399. }
  400. ENDHLSL
  401. }
  402. Pass
  403. {
  404. Name "DepthOnly"
  405. Tags { "LightMode"="DepthOnly" }
  406. ZWrite On
  407. ColorMask 0
  408. AlphaToMask Off
  409. HLSLPROGRAM
  410. #pragma multi_compile_instancing
  411. #define _SURFACE_TYPE_TRANSPARENT 1
  412. #define _RECEIVE_SHADOWS_OFF 1
  413. #define ASE_SRP_VERSION 120108
  414. #pragma vertex vert
  415. #pragma fragment frag
  416. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  417. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  418. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  419. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  420. struct VertexInput
  421. {
  422. float4 vertex : POSITION;
  423. float3 ase_normal : NORMAL;
  424. float4 ase_texcoord : TEXCOORD0;
  425. float4 ase_texcoord1 : TEXCOORD1;
  426. float4 ase_color : COLOR;
  427. UNITY_VERTEX_INPUT_INSTANCE_ID
  428. };
  429. struct VertexOutput
  430. {
  431. float4 clipPos : SV_POSITION;
  432. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  433. float3 worldPos : TEXCOORD0;
  434. #endif
  435. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  436. float4 shadowCoord : TEXCOORD1;
  437. #endif
  438. float4 ase_texcoord2 : TEXCOORD2;
  439. float4 ase_texcoord3 : TEXCOORD3;
  440. float4 ase_color : COLOR;
  441. UNITY_VERTEX_INPUT_INSTANCE_ID
  442. UNITY_VERTEX_OUTPUT_STEREO
  443. };
  444. CBUFFER_START(UnityPerMaterial)
  445. float4 _TextureGao_ST;
  446. float4 _ColorGG;
  447. float4 _Main_Tex_ST;
  448. float4 _RJraodong_ST;
  449. float4 _dissolve_ST;
  450. float _RJ1soft;
  451. float _RJraodongsd;
  452. float _CTime;
  453. float _RJraodongqd;
  454. float _RJ2soft;
  455. float _Soft_value;
  456. float _AlphaQD;
  457. #ifdef ASE_TESSELLATION
  458. float _TessPhongStrength;
  459. float _TessValue;
  460. float _TessMin;
  461. float _TessMax;
  462. float _TessEdgeLength;
  463. float _TessMaxDisp;
  464. #endif
  465. CBUFFER_END
  466. sampler2D _Main_Tex;
  467. sampler2D _RJraodong;
  468. sampler2D _Rj2Tex;
  469. sampler2D _dissolve;
  470. VertexOutput VertexFunction( VertexInput v )
  471. {
  472. VertexOutput o = (VertexOutput)0;
  473. UNITY_SETUP_INSTANCE_ID(v);
  474. UNITY_TRANSFER_INSTANCE_ID(v, o);
  475. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  476. o.ase_texcoord2.xy = v.ase_texcoord.xy;
  477. o.ase_texcoord3 = v.ase_texcoord1;
  478. o.ase_color = v.ase_color;
  479. //setting value to unused interpolator channels and avoid initialization warnings
  480. o.ase_texcoord2.zw = 0;
  481. #ifdef ASE_ABSOLUTE_VERTEX_POS
  482. float3 defaultVertexValue = v.vertex.xyz;
  483. #else
  484. float3 defaultVertexValue = float3(0, 0, 0);
  485. #endif
  486. float3 vertexValue = defaultVertexValue;
  487. #ifdef ASE_ABSOLUTE_VERTEX_POS
  488. v.vertex.xyz = vertexValue;
  489. #else
  490. v.vertex.xyz += vertexValue;
  491. #endif
  492. v.ase_normal = v.ase_normal;
  493. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  494. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  495. o.worldPos = positionWS;
  496. #endif
  497. o.clipPos = TransformWorldToHClip( positionWS );
  498. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  499. VertexPositionInputs vertexInput = (VertexPositionInputs)0;
  500. vertexInput.positionWS = positionWS;
  501. vertexInput.positionCS = o.clipPos;
  502. o.shadowCoord = GetShadowCoord( vertexInput );
  503. #endif
  504. return o;
  505. }
  506. #if defined(ASE_TESSELLATION)
  507. struct VertexControl
  508. {
  509. float4 vertex : INTERNALTESSPOS;
  510. float3 ase_normal : NORMAL;
  511. float4 ase_texcoord : TEXCOORD0;
  512. float4 ase_texcoord1 : TEXCOORD1;
  513. float4 ase_color : COLOR;
  514. UNITY_VERTEX_INPUT_INSTANCE_ID
  515. };
  516. struct TessellationFactors
  517. {
  518. float edge[3] : SV_TessFactor;
  519. float inside : SV_InsideTessFactor;
  520. };
  521. VertexControl vert ( VertexInput v )
  522. {
  523. VertexControl o;
  524. UNITY_SETUP_INSTANCE_ID(v);
  525. UNITY_TRANSFER_INSTANCE_ID(v, o);
  526. o.vertex = v.vertex;
  527. o.ase_normal = v.ase_normal;
  528. o.ase_texcoord = v.ase_texcoord;
  529. o.ase_texcoord1 = v.ase_texcoord1;
  530. o.ase_color = v.ase_color;
  531. return o;
  532. }
  533. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  534. {
  535. TessellationFactors o;
  536. float4 tf = 1;
  537. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  538. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  539. #if defined(ASE_FIXED_TESSELLATION)
  540. tf = FixedTess( tessValue );
  541. #elif defined(ASE_DISTANCE_TESSELLATION)
  542. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  543. #elif defined(ASE_LENGTH_TESSELLATION)
  544. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  545. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  546. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  547. #endif
  548. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  549. return o;
  550. }
  551. [domain("tri")]
  552. [partitioning("fractional_odd")]
  553. [outputtopology("triangle_cw")]
  554. [patchconstantfunc("TessellationFunction")]
  555. [outputcontrolpoints(3)]
  556. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  557. {
  558. return patch[id];
  559. }
  560. [domain("tri")]
  561. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  562. {
  563. VertexInput o = (VertexInput) 0;
  564. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  565. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  566. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  567. o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  568. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  569. #if defined(ASE_PHONG_TESSELLATION)
  570. float3 pp[3];
  571. for (int i = 0; i < 3; ++i)
  572. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  573. float phongStrength = _TessPhongStrength;
  574. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  575. #endif
  576. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  577. return VertexFunction(o);
  578. }
  579. #else
  580. VertexOutput vert ( VertexInput v )
  581. {
  582. return VertexFunction( v );
  583. }
  584. #endif
  585. half4 frag(VertexOutput IN ) : SV_TARGET
  586. {
  587. UNITY_SETUP_INSTANCE_ID(IN);
  588. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
  589. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  590. float3 WorldPosition = IN.worldPos;
  591. #endif
  592. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  593. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  594. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  595. ShadowCoords = IN.shadowCoord;
  596. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  597. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  598. #endif
  599. #endif
  600. float2 uv_Main_Tex = IN.ase_texcoord2.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  601. float4 texCoord127 = IN.ase_texcoord3;
  602. texCoord127.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  603. float temp_output_133_0 = ( 1.0 - texCoord127.x );
  604. float2 texCoord37 = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
  605. float2 temp_cast_0 = (( _RJraodongsd * _CTime )).xx;
  606. float2 uv_RJraodong = IN.ase_texcoord2.xy * _RJraodong_ST.xy + _RJraodong_ST.zw;
  607. float2 panner121 = ( 1.0 * _Time.y * temp_cast_0 + uv_RJraodong);
  608. float temp_output_116_0 = ( tex2D( _RJraodong, panner121 ).r * _RJraodongqd );
  609. float smoothstepResult98 = smoothstep( temp_output_133_0 , ( temp_output_133_0 + _RJ1soft ) , (( texCoord37 + temp_output_116_0 )).x);
  610. float temp_output_134_0 = ( 1.0 - texCoord127.y );
  611. float2 texCoord52 = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
  612. float smoothstepResult108 = smoothstep( temp_output_134_0 , ( temp_output_134_0 + _RJ2soft ) , tex2D( _Rj2Tex, ( temp_output_116_0 + texCoord52 ) ).r);
  613. float2 uv_dissolve = IN.ase_texcoord2.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  614. float smoothstepResult136 = smoothstep( texCoord127.w , ( texCoord127.w + _Soft_value ) , tex2D( _dissolve, uv_dissolve ).r);
  615. float Alpha = ( ( ( tex2D( _Main_Tex, uv_Main_Tex ).a * ( smoothstepResult98 * smoothstepResult108 ) ) * IN.ase_color.a ) * smoothstepResult136 * _AlphaQD );
  616. float AlphaClipThreshold = 0.5;
  617. #ifdef _ALPHATEST_ON
  618. clip(Alpha - AlphaClipThreshold);
  619. #endif
  620. #ifdef LOD_FADE_CROSSFADE
  621. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  622. #endif
  623. return 0;
  624. }
  625. ENDHLSL
  626. }
  627. Pass
  628. {
  629. Name "SceneSelectionPass"
  630. Tags { "LightMode"="SceneSelectionPass" }
  631. Cull Off
  632. HLSLPROGRAM
  633. #pragma multi_compile_instancing
  634. #define _SURFACE_TYPE_TRANSPARENT 1
  635. #define _RECEIVE_SHADOWS_OFF 1
  636. #define ASE_SRP_VERSION 120108
  637. #pragma vertex vert
  638. #pragma fragment frag
  639. #define ATTRIBUTES_NEED_NORMAL
  640. #define ATTRIBUTES_NEED_TANGENT
  641. #define SHADERPASS SHADERPASS_DEPTHONLY
  642. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  643. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  644. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  645. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  646. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  647. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  648. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  649. struct VertexInput
  650. {
  651. float4 vertex : POSITION;
  652. float3 ase_normal : NORMAL;
  653. float4 ase_texcoord : TEXCOORD0;
  654. float4 ase_texcoord1 : TEXCOORD1;
  655. float4 ase_color : COLOR;
  656. UNITY_VERTEX_INPUT_INSTANCE_ID
  657. };
  658. struct VertexOutput
  659. {
  660. float4 clipPos : SV_POSITION;
  661. float4 ase_texcoord : TEXCOORD0;
  662. float4 ase_texcoord1 : TEXCOORD1;
  663. float4 ase_color : COLOR;
  664. UNITY_VERTEX_INPUT_INSTANCE_ID
  665. UNITY_VERTEX_OUTPUT_STEREO
  666. };
  667. CBUFFER_START(UnityPerMaterial)
  668. float4 _TextureGao_ST;
  669. float4 _ColorGG;
  670. float4 _Main_Tex_ST;
  671. float4 _RJraodong_ST;
  672. float4 _dissolve_ST;
  673. float _RJ1soft;
  674. float _RJraodongsd;
  675. float _CTime;
  676. float _RJraodongqd;
  677. float _RJ2soft;
  678. float _Soft_value;
  679. float _AlphaQD;
  680. #ifdef ASE_TESSELLATION
  681. float _TessPhongStrength;
  682. float _TessValue;
  683. float _TessMin;
  684. float _TessMax;
  685. float _TessEdgeLength;
  686. float _TessMaxDisp;
  687. #endif
  688. CBUFFER_END
  689. sampler2D _Main_Tex;
  690. sampler2D _RJraodong;
  691. sampler2D _Rj2Tex;
  692. sampler2D _dissolve;
  693. int _ObjectId;
  694. int _PassValue;
  695. struct SurfaceDescription
  696. {
  697. float Alpha;
  698. float AlphaClipThreshold;
  699. };
  700. VertexOutput VertexFunction(VertexInput v )
  701. {
  702. VertexOutput o;
  703. ZERO_INITIALIZE(VertexOutput, o);
  704. UNITY_SETUP_INSTANCE_ID(v);
  705. UNITY_TRANSFER_INSTANCE_ID(v, o);
  706. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  707. o.ase_texcoord.xy = v.ase_texcoord.xy;
  708. o.ase_texcoord1 = v.ase_texcoord1;
  709. o.ase_color = v.ase_color;
  710. //setting value to unused interpolator channels and avoid initialization warnings
  711. o.ase_texcoord.zw = 0;
  712. #ifdef ASE_ABSOLUTE_VERTEX_POS
  713. float3 defaultVertexValue = v.vertex.xyz;
  714. #else
  715. float3 defaultVertexValue = float3(0, 0, 0);
  716. #endif
  717. float3 vertexValue = defaultVertexValue;
  718. #ifdef ASE_ABSOLUTE_VERTEX_POS
  719. v.vertex.xyz = vertexValue;
  720. #else
  721. v.vertex.xyz += vertexValue;
  722. #endif
  723. v.ase_normal = v.ase_normal;
  724. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  725. o.clipPos = TransformWorldToHClip(positionWS);
  726. return o;
  727. }
  728. #if defined(ASE_TESSELLATION)
  729. struct VertexControl
  730. {
  731. float4 vertex : INTERNALTESSPOS;
  732. float3 ase_normal : NORMAL;
  733. float4 ase_texcoord : TEXCOORD0;
  734. float4 ase_texcoord1 : TEXCOORD1;
  735. float4 ase_color : COLOR;
  736. UNITY_VERTEX_INPUT_INSTANCE_ID
  737. };
  738. struct TessellationFactors
  739. {
  740. float edge[3] : SV_TessFactor;
  741. float inside : SV_InsideTessFactor;
  742. };
  743. VertexControl vert ( VertexInput v )
  744. {
  745. VertexControl o;
  746. UNITY_SETUP_INSTANCE_ID(v);
  747. UNITY_TRANSFER_INSTANCE_ID(v, o);
  748. o.vertex = v.vertex;
  749. o.ase_normal = v.ase_normal;
  750. o.ase_texcoord = v.ase_texcoord;
  751. o.ase_texcoord1 = v.ase_texcoord1;
  752. o.ase_color = v.ase_color;
  753. return o;
  754. }
  755. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  756. {
  757. TessellationFactors o;
  758. float4 tf = 1;
  759. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  760. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  761. #if defined(ASE_FIXED_TESSELLATION)
  762. tf = FixedTess( tessValue );
  763. #elif defined(ASE_DISTANCE_TESSELLATION)
  764. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  765. #elif defined(ASE_LENGTH_TESSELLATION)
  766. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  767. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  768. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  769. #endif
  770. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  771. return o;
  772. }
  773. [domain("tri")]
  774. [partitioning("fractional_odd")]
  775. [outputtopology("triangle_cw")]
  776. [patchconstantfunc("TessellationFunction")]
  777. [outputcontrolpoints(3)]
  778. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  779. {
  780. return patch[id];
  781. }
  782. [domain("tri")]
  783. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  784. {
  785. VertexInput o = (VertexInput) 0;
  786. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  787. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  788. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  789. o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  790. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  791. #if defined(ASE_PHONG_TESSELLATION)
  792. float3 pp[3];
  793. for (int i = 0; i < 3; ++i)
  794. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  795. float phongStrength = _TessPhongStrength;
  796. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  797. #endif
  798. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  799. return VertexFunction(o);
  800. }
  801. #else
  802. VertexOutput vert ( VertexInput v )
  803. {
  804. return VertexFunction( v );
  805. }
  806. #endif
  807. half4 frag(VertexOutput IN ) : SV_TARGET
  808. {
  809. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  810. float2 uv_Main_Tex = IN.ase_texcoord.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  811. float4 texCoord127 = IN.ase_texcoord1;
  812. texCoord127.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
  813. float temp_output_133_0 = ( 1.0 - texCoord127.x );
  814. float2 texCoord37 = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  815. float2 temp_cast_0 = (( _RJraodongsd * _CTime )).xx;
  816. float2 uv_RJraodong = IN.ase_texcoord.xy * _RJraodong_ST.xy + _RJraodong_ST.zw;
  817. float2 panner121 = ( 1.0 * _Time.y * temp_cast_0 + uv_RJraodong);
  818. float temp_output_116_0 = ( tex2D( _RJraodong, panner121 ).r * _RJraodongqd );
  819. float smoothstepResult98 = smoothstep( temp_output_133_0 , ( temp_output_133_0 + _RJ1soft ) , (( texCoord37 + temp_output_116_0 )).x);
  820. float temp_output_134_0 = ( 1.0 - texCoord127.y );
  821. float2 texCoord52 = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  822. float smoothstepResult108 = smoothstep( temp_output_134_0 , ( temp_output_134_0 + _RJ2soft ) , tex2D( _Rj2Tex, ( temp_output_116_0 + texCoord52 ) ).r);
  823. float2 uv_dissolve = IN.ase_texcoord.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  824. float smoothstepResult136 = smoothstep( texCoord127.w , ( texCoord127.w + _Soft_value ) , tex2D( _dissolve, uv_dissolve ).r);
  825. surfaceDescription.Alpha = ( ( ( tex2D( _Main_Tex, uv_Main_Tex ).a * ( smoothstepResult98 * smoothstepResult108 ) ) * IN.ase_color.a ) * smoothstepResult136 * _AlphaQD );
  826. surfaceDescription.AlphaClipThreshold = 0.5;
  827. #if _ALPHATEST_ON
  828. float alphaClipThreshold = 0.01f;
  829. #if ALPHA_CLIP_THRESHOLD
  830. alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
  831. #endif
  832. clip(surfaceDescription.Alpha - alphaClipThreshold);
  833. #endif
  834. half4 outColor = half4(_ObjectId, _PassValue, 1.0, 1.0);
  835. return outColor;
  836. }
  837. ENDHLSL
  838. }
  839. Pass
  840. {
  841. Name "ScenePickingPass"
  842. Tags { "LightMode"="Picking" }
  843. HLSLPROGRAM
  844. #pragma multi_compile_instancing
  845. #define _SURFACE_TYPE_TRANSPARENT 1
  846. #define _RECEIVE_SHADOWS_OFF 1
  847. #define ASE_SRP_VERSION 120108
  848. #pragma vertex vert
  849. #pragma fragment frag
  850. #define ATTRIBUTES_NEED_NORMAL
  851. #define ATTRIBUTES_NEED_TANGENT
  852. #define SHADERPASS SHADERPASS_DEPTHONLY
  853. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  854. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  855. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  856. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  857. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  858. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  859. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  860. struct VertexInput
  861. {
  862. float4 vertex : POSITION;
  863. float3 ase_normal : NORMAL;
  864. float4 ase_texcoord : TEXCOORD0;
  865. float4 ase_texcoord1 : TEXCOORD1;
  866. float4 ase_color : COLOR;
  867. UNITY_VERTEX_INPUT_INSTANCE_ID
  868. };
  869. struct VertexOutput
  870. {
  871. float4 clipPos : SV_POSITION;
  872. float4 ase_texcoord : TEXCOORD0;
  873. float4 ase_texcoord1 : TEXCOORD1;
  874. float4 ase_color : COLOR;
  875. UNITY_VERTEX_INPUT_INSTANCE_ID
  876. UNITY_VERTEX_OUTPUT_STEREO
  877. };
  878. CBUFFER_START(UnityPerMaterial)
  879. float4 _TextureGao_ST;
  880. float4 _ColorGG;
  881. float4 _Main_Tex_ST;
  882. float4 _RJraodong_ST;
  883. float4 _dissolve_ST;
  884. float _RJ1soft;
  885. float _RJraodongsd;
  886. float _CTime;
  887. float _RJraodongqd;
  888. float _RJ2soft;
  889. float _Soft_value;
  890. float _AlphaQD;
  891. #ifdef ASE_TESSELLATION
  892. float _TessPhongStrength;
  893. float _TessValue;
  894. float _TessMin;
  895. float _TessMax;
  896. float _TessEdgeLength;
  897. float _TessMaxDisp;
  898. #endif
  899. CBUFFER_END
  900. sampler2D _Main_Tex;
  901. sampler2D _RJraodong;
  902. sampler2D _Rj2Tex;
  903. sampler2D _dissolve;
  904. float4 _SelectionID;
  905. struct SurfaceDescription
  906. {
  907. float Alpha;
  908. float AlphaClipThreshold;
  909. };
  910. VertexOutput VertexFunction(VertexInput v )
  911. {
  912. VertexOutput o;
  913. ZERO_INITIALIZE(VertexOutput, o);
  914. UNITY_SETUP_INSTANCE_ID(v);
  915. UNITY_TRANSFER_INSTANCE_ID(v, o);
  916. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  917. o.ase_texcoord.xy = v.ase_texcoord.xy;
  918. o.ase_texcoord1 = v.ase_texcoord1;
  919. o.ase_color = v.ase_color;
  920. //setting value to unused interpolator channels and avoid initialization warnings
  921. o.ase_texcoord.zw = 0;
  922. #ifdef ASE_ABSOLUTE_VERTEX_POS
  923. float3 defaultVertexValue = v.vertex.xyz;
  924. #else
  925. float3 defaultVertexValue = float3(0, 0, 0);
  926. #endif
  927. float3 vertexValue = defaultVertexValue;
  928. #ifdef ASE_ABSOLUTE_VERTEX_POS
  929. v.vertex.xyz = vertexValue;
  930. #else
  931. v.vertex.xyz += vertexValue;
  932. #endif
  933. v.ase_normal = v.ase_normal;
  934. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  935. o.clipPos = TransformWorldToHClip(positionWS);
  936. return o;
  937. }
  938. #if defined(ASE_TESSELLATION)
  939. struct VertexControl
  940. {
  941. float4 vertex : INTERNALTESSPOS;
  942. float3 ase_normal : NORMAL;
  943. float4 ase_texcoord : TEXCOORD0;
  944. float4 ase_texcoord1 : TEXCOORD1;
  945. float4 ase_color : COLOR;
  946. UNITY_VERTEX_INPUT_INSTANCE_ID
  947. };
  948. struct TessellationFactors
  949. {
  950. float edge[3] : SV_TessFactor;
  951. float inside : SV_InsideTessFactor;
  952. };
  953. VertexControl vert ( VertexInput v )
  954. {
  955. VertexControl o;
  956. UNITY_SETUP_INSTANCE_ID(v);
  957. UNITY_TRANSFER_INSTANCE_ID(v, o);
  958. o.vertex = v.vertex;
  959. o.ase_normal = v.ase_normal;
  960. o.ase_texcoord = v.ase_texcoord;
  961. o.ase_texcoord1 = v.ase_texcoord1;
  962. o.ase_color = v.ase_color;
  963. return o;
  964. }
  965. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  966. {
  967. TessellationFactors o;
  968. float4 tf = 1;
  969. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  970. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  971. #if defined(ASE_FIXED_TESSELLATION)
  972. tf = FixedTess( tessValue );
  973. #elif defined(ASE_DISTANCE_TESSELLATION)
  974. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  975. #elif defined(ASE_LENGTH_TESSELLATION)
  976. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  977. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  978. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  979. #endif
  980. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  981. return o;
  982. }
  983. [domain("tri")]
  984. [partitioning("fractional_odd")]
  985. [outputtopology("triangle_cw")]
  986. [patchconstantfunc("TessellationFunction")]
  987. [outputcontrolpoints(3)]
  988. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  989. {
  990. return patch[id];
  991. }
  992. [domain("tri")]
  993. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  994. {
  995. VertexInput o = (VertexInput) 0;
  996. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  997. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  998. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  999. o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  1000. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  1001. #if defined(ASE_PHONG_TESSELLATION)
  1002. float3 pp[3];
  1003. for (int i = 0; i < 3; ++i)
  1004. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  1005. float phongStrength = _TessPhongStrength;
  1006. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  1007. #endif
  1008. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  1009. return VertexFunction(o);
  1010. }
  1011. #else
  1012. VertexOutput vert ( VertexInput v )
  1013. {
  1014. return VertexFunction( v );
  1015. }
  1016. #endif
  1017. half4 frag(VertexOutput IN ) : SV_TARGET
  1018. {
  1019. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  1020. float2 uv_Main_Tex = IN.ase_texcoord.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  1021. float4 texCoord127 = IN.ase_texcoord1;
  1022. texCoord127.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
  1023. float temp_output_133_0 = ( 1.0 - texCoord127.x );
  1024. float2 texCoord37 = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  1025. float2 temp_cast_0 = (( _RJraodongsd * _CTime )).xx;
  1026. float2 uv_RJraodong = IN.ase_texcoord.xy * _RJraodong_ST.xy + _RJraodong_ST.zw;
  1027. float2 panner121 = ( 1.0 * _Time.y * temp_cast_0 + uv_RJraodong);
  1028. float temp_output_116_0 = ( tex2D( _RJraodong, panner121 ).r * _RJraodongqd );
  1029. float smoothstepResult98 = smoothstep( temp_output_133_0 , ( temp_output_133_0 + _RJ1soft ) , (( texCoord37 + temp_output_116_0 )).x);
  1030. float temp_output_134_0 = ( 1.0 - texCoord127.y );
  1031. float2 texCoord52 = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  1032. float smoothstepResult108 = smoothstep( temp_output_134_0 , ( temp_output_134_0 + _RJ2soft ) , tex2D( _Rj2Tex, ( temp_output_116_0 + texCoord52 ) ).r);
  1033. float2 uv_dissolve = IN.ase_texcoord.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  1034. float smoothstepResult136 = smoothstep( texCoord127.w , ( texCoord127.w + _Soft_value ) , tex2D( _dissolve, uv_dissolve ).r);
  1035. surfaceDescription.Alpha = ( ( ( tex2D( _Main_Tex, uv_Main_Tex ).a * ( smoothstepResult98 * smoothstepResult108 ) ) * IN.ase_color.a ) * smoothstepResult136 * _AlphaQD );
  1036. surfaceDescription.AlphaClipThreshold = 0.5;
  1037. #if _ALPHATEST_ON
  1038. float alphaClipThreshold = 0.01f;
  1039. #if ALPHA_CLIP_THRESHOLD
  1040. alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
  1041. #endif
  1042. clip(surfaceDescription.Alpha - alphaClipThreshold);
  1043. #endif
  1044. half4 outColor = 0;
  1045. outColor = _SelectionID;
  1046. return outColor;
  1047. }
  1048. ENDHLSL
  1049. }
  1050. Pass
  1051. {
  1052. Name "DepthNormals"
  1053. Tags { "LightMode"="DepthNormalsOnly" }
  1054. ZTest LEqual
  1055. ZWrite On
  1056. HLSLPROGRAM
  1057. #pragma multi_compile_instancing
  1058. #define _SURFACE_TYPE_TRANSPARENT 1
  1059. #define _RECEIVE_SHADOWS_OFF 1
  1060. #define ASE_SRP_VERSION 120108
  1061. #pragma vertex vert
  1062. #pragma fragment frag
  1063. #define ATTRIBUTES_NEED_NORMAL
  1064. #define ATTRIBUTES_NEED_TANGENT
  1065. #define VARYINGS_NEED_NORMAL_WS
  1066. #define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
  1067. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1068. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1069. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1070. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1071. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1072. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1073. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1074. struct VertexInput
  1075. {
  1076. float4 vertex : POSITION;
  1077. float3 ase_normal : NORMAL;
  1078. float4 ase_texcoord : TEXCOORD0;
  1079. float4 ase_texcoord1 : TEXCOORD1;
  1080. float4 ase_color : COLOR;
  1081. UNITY_VERTEX_INPUT_INSTANCE_ID
  1082. };
  1083. struct VertexOutput
  1084. {
  1085. float4 clipPos : SV_POSITION;
  1086. float3 normalWS : TEXCOORD0;
  1087. float4 ase_texcoord1 : TEXCOORD1;
  1088. float4 ase_texcoord2 : TEXCOORD2;
  1089. float4 ase_color : COLOR;
  1090. UNITY_VERTEX_INPUT_INSTANCE_ID
  1091. UNITY_VERTEX_OUTPUT_STEREO
  1092. };
  1093. CBUFFER_START(UnityPerMaterial)
  1094. float4 _TextureGao_ST;
  1095. float4 _ColorGG;
  1096. float4 _Main_Tex_ST;
  1097. float4 _RJraodong_ST;
  1098. float4 _dissolve_ST;
  1099. float _RJ1soft;
  1100. float _RJraodongsd;
  1101. float _CTime;
  1102. float _RJraodongqd;
  1103. float _RJ2soft;
  1104. float _Soft_value;
  1105. float _AlphaQD;
  1106. #ifdef ASE_TESSELLATION
  1107. float _TessPhongStrength;
  1108. float _TessValue;
  1109. float _TessMin;
  1110. float _TessMax;
  1111. float _TessEdgeLength;
  1112. float _TessMaxDisp;
  1113. #endif
  1114. CBUFFER_END
  1115. sampler2D _Main_Tex;
  1116. sampler2D _RJraodong;
  1117. sampler2D _Rj2Tex;
  1118. sampler2D _dissolve;
  1119. struct SurfaceDescription
  1120. {
  1121. float Alpha;
  1122. float AlphaClipThreshold;
  1123. };
  1124. VertexOutput VertexFunction(VertexInput v )
  1125. {
  1126. VertexOutput o;
  1127. ZERO_INITIALIZE(VertexOutput, o);
  1128. UNITY_SETUP_INSTANCE_ID(v);
  1129. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1130. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  1131. o.ase_texcoord1.xy = v.ase_texcoord.xy;
  1132. o.ase_texcoord2 = v.ase_texcoord1;
  1133. o.ase_color = v.ase_color;
  1134. //setting value to unused interpolator channels and avoid initialization warnings
  1135. o.ase_texcoord1.zw = 0;
  1136. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1137. float3 defaultVertexValue = v.vertex.xyz;
  1138. #else
  1139. float3 defaultVertexValue = float3(0, 0, 0);
  1140. #endif
  1141. float3 vertexValue = defaultVertexValue;
  1142. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1143. v.vertex.xyz = vertexValue;
  1144. #else
  1145. v.vertex.xyz += vertexValue;
  1146. #endif
  1147. v.ase_normal = v.ase_normal;
  1148. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  1149. float3 normalWS = TransformObjectToWorldNormal(v.ase_normal);
  1150. o.clipPos = TransformWorldToHClip(positionWS);
  1151. o.normalWS.xyz = normalWS;
  1152. return o;
  1153. }
  1154. #if defined(ASE_TESSELLATION)
  1155. struct VertexControl
  1156. {
  1157. float4 vertex : INTERNALTESSPOS;
  1158. float3 ase_normal : NORMAL;
  1159. float4 ase_texcoord : TEXCOORD0;
  1160. float4 ase_texcoord1 : TEXCOORD1;
  1161. float4 ase_color : COLOR;
  1162. UNITY_VERTEX_INPUT_INSTANCE_ID
  1163. };
  1164. struct TessellationFactors
  1165. {
  1166. float edge[3] : SV_TessFactor;
  1167. float inside : SV_InsideTessFactor;
  1168. };
  1169. VertexControl vert ( VertexInput v )
  1170. {
  1171. VertexControl o;
  1172. UNITY_SETUP_INSTANCE_ID(v);
  1173. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1174. o.vertex = v.vertex;
  1175. o.ase_normal = v.ase_normal;
  1176. o.ase_texcoord = v.ase_texcoord;
  1177. o.ase_texcoord1 = v.ase_texcoord1;
  1178. o.ase_color = v.ase_color;
  1179. return o;
  1180. }
  1181. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  1182. {
  1183. TessellationFactors o;
  1184. float4 tf = 1;
  1185. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1186. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1187. #if defined(ASE_FIXED_TESSELLATION)
  1188. tf = FixedTess( tessValue );
  1189. #elif defined(ASE_DISTANCE_TESSELLATION)
  1190. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1191. #elif defined(ASE_LENGTH_TESSELLATION)
  1192. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1193. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1194. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1195. #endif
  1196. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  1197. return o;
  1198. }
  1199. [domain("tri")]
  1200. [partitioning("fractional_odd")]
  1201. [outputtopology("triangle_cw")]
  1202. [patchconstantfunc("TessellationFunction")]
  1203. [outputcontrolpoints(3)]
  1204. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1205. {
  1206. return patch[id];
  1207. }
  1208. [domain("tri")]
  1209. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1210. {
  1211. VertexInput o = (VertexInput) 0;
  1212. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  1213. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  1214. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  1215. o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  1216. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  1217. #if defined(ASE_PHONG_TESSELLATION)
  1218. float3 pp[3];
  1219. for (int i = 0; i < 3; ++i)
  1220. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  1221. float phongStrength = _TessPhongStrength;
  1222. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  1223. #endif
  1224. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  1225. return VertexFunction(o);
  1226. }
  1227. #else
  1228. VertexOutput vert ( VertexInput v )
  1229. {
  1230. return VertexFunction( v );
  1231. }
  1232. #endif
  1233. half4 frag(VertexOutput IN ) : SV_TARGET
  1234. {
  1235. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  1236. float2 uv_Main_Tex = IN.ase_texcoord1.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  1237. float4 texCoord127 = IN.ase_texcoord2;
  1238. texCoord127.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
  1239. float temp_output_133_0 = ( 1.0 - texCoord127.x );
  1240. float2 texCoord37 = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
  1241. float2 temp_cast_0 = (( _RJraodongsd * _CTime )).xx;
  1242. float2 uv_RJraodong = IN.ase_texcoord1.xy * _RJraodong_ST.xy + _RJraodong_ST.zw;
  1243. float2 panner121 = ( 1.0 * _Time.y * temp_cast_0 + uv_RJraodong);
  1244. float temp_output_116_0 = ( tex2D( _RJraodong, panner121 ).r * _RJraodongqd );
  1245. float smoothstepResult98 = smoothstep( temp_output_133_0 , ( temp_output_133_0 + _RJ1soft ) , (( texCoord37 + temp_output_116_0 )).x);
  1246. float temp_output_134_0 = ( 1.0 - texCoord127.y );
  1247. float2 texCoord52 = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
  1248. float smoothstepResult108 = smoothstep( temp_output_134_0 , ( temp_output_134_0 + _RJ2soft ) , tex2D( _Rj2Tex, ( temp_output_116_0 + texCoord52 ) ).r);
  1249. float2 uv_dissolve = IN.ase_texcoord1.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  1250. float smoothstepResult136 = smoothstep( texCoord127.w , ( texCoord127.w + _Soft_value ) , tex2D( _dissolve, uv_dissolve ).r);
  1251. surfaceDescription.Alpha = ( ( ( tex2D( _Main_Tex, uv_Main_Tex ).a * ( smoothstepResult98 * smoothstepResult108 ) ) * IN.ase_color.a ) * smoothstepResult136 * _AlphaQD );
  1252. surfaceDescription.AlphaClipThreshold = 0.5;
  1253. #if _ALPHATEST_ON
  1254. clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold);
  1255. #endif
  1256. #ifdef LOD_FADE_CROSSFADE
  1257. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  1258. #endif
  1259. float3 normalWS = IN.normalWS;
  1260. return half4(NormalizeNormalPerPixel(normalWS), 0.0);
  1261. }
  1262. ENDHLSL
  1263. }
  1264. Pass
  1265. {
  1266. Name "DepthNormalsOnly"
  1267. Tags { "LightMode"="DepthNormalsOnly" }
  1268. ZTest LEqual
  1269. ZWrite On
  1270. HLSLPROGRAM
  1271. #pragma multi_compile_instancing
  1272. #define _SURFACE_TYPE_TRANSPARENT 1
  1273. #define _RECEIVE_SHADOWS_OFF 1
  1274. #define ASE_SRP_VERSION 120108
  1275. #pragma exclude_renderers glcore gles gles3
  1276. #pragma vertex vert
  1277. #pragma fragment frag
  1278. #define ATTRIBUTES_NEED_NORMAL
  1279. #define ATTRIBUTES_NEED_TANGENT
  1280. #define ATTRIBUTES_NEED_TEXCOORD1
  1281. #define VARYINGS_NEED_NORMAL_WS
  1282. #define VARYINGS_NEED_TANGENT_WS
  1283. #define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
  1284. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1285. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1286. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1287. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1288. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1289. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1290. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1291. struct VertexInput
  1292. {
  1293. float4 vertex : POSITION;
  1294. float3 ase_normal : NORMAL;
  1295. float4 ase_texcoord : TEXCOORD0;
  1296. float4 ase_texcoord1 : TEXCOORD1;
  1297. float4 ase_color : COLOR;
  1298. UNITY_VERTEX_INPUT_INSTANCE_ID
  1299. };
  1300. struct VertexOutput
  1301. {
  1302. float4 clipPos : SV_POSITION;
  1303. float3 normalWS : TEXCOORD0;
  1304. float4 ase_texcoord1 : TEXCOORD1;
  1305. float4 ase_texcoord2 : TEXCOORD2;
  1306. float4 ase_color : COLOR;
  1307. UNITY_VERTEX_INPUT_INSTANCE_ID
  1308. UNITY_VERTEX_OUTPUT_STEREO
  1309. };
  1310. CBUFFER_START(UnityPerMaterial)
  1311. float4 _TextureGao_ST;
  1312. float4 _ColorGG;
  1313. float4 _Main_Tex_ST;
  1314. float4 _RJraodong_ST;
  1315. float4 _dissolve_ST;
  1316. float _RJ1soft;
  1317. float _RJraodongsd;
  1318. float _CTime;
  1319. float _RJraodongqd;
  1320. float _RJ2soft;
  1321. float _Soft_value;
  1322. float _AlphaQD;
  1323. #ifdef ASE_TESSELLATION
  1324. float _TessPhongStrength;
  1325. float _TessValue;
  1326. float _TessMin;
  1327. float _TessMax;
  1328. float _TessEdgeLength;
  1329. float _TessMaxDisp;
  1330. #endif
  1331. CBUFFER_END
  1332. sampler2D _Main_Tex;
  1333. sampler2D _RJraodong;
  1334. sampler2D _Rj2Tex;
  1335. sampler2D _dissolve;
  1336. struct SurfaceDescription
  1337. {
  1338. float Alpha;
  1339. float AlphaClipThreshold;
  1340. };
  1341. VertexOutput VertexFunction(VertexInput v )
  1342. {
  1343. VertexOutput o;
  1344. ZERO_INITIALIZE(VertexOutput, o);
  1345. UNITY_SETUP_INSTANCE_ID(v);
  1346. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1347. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  1348. o.ase_texcoord1.xy = v.ase_texcoord.xy;
  1349. o.ase_texcoord2 = v.ase_texcoord1;
  1350. o.ase_color = v.ase_color;
  1351. //setting value to unused interpolator channels and avoid initialization warnings
  1352. o.ase_texcoord1.zw = 0;
  1353. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1354. float3 defaultVertexValue = v.vertex.xyz;
  1355. #else
  1356. float3 defaultVertexValue = float3(0, 0, 0);
  1357. #endif
  1358. float3 vertexValue = defaultVertexValue;
  1359. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1360. v.vertex.xyz = vertexValue;
  1361. #else
  1362. v.vertex.xyz += vertexValue;
  1363. #endif
  1364. v.ase_normal = v.ase_normal;
  1365. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  1366. float3 normalWS = TransformObjectToWorldNormal(v.ase_normal);
  1367. o.clipPos = TransformWorldToHClip(positionWS);
  1368. o.normalWS.xyz = normalWS;
  1369. return o;
  1370. }
  1371. #if defined(ASE_TESSELLATION)
  1372. struct VertexControl
  1373. {
  1374. float4 vertex : INTERNALTESSPOS;
  1375. float3 ase_normal : NORMAL;
  1376. float4 ase_texcoord : TEXCOORD0;
  1377. float4 ase_texcoord1 : TEXCOORD1;
  1378. float4 ase_color : COLOR;
  1379. UNITY_VERTEX_INPUT_INSTANCE_ID
  1380. };
  1381. struct TessellationFactors
  1382. {
  1383. float edge[3] : SV_TessFactor;
  1384. float inside : SV_InsideTessFactor;
  1385. };
  1386. VertexControl vert ( VertexInput v )
  1387. {
  1388. VertexControl o;
  1389. UNITY_SETUP_INSTANCE_ID(v);
  1390. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1391. o.vertex = v.vertex;
  1392. o.ase_normal = v.ase_normal;
  1393. o.ase_texcoord = v.ase_texcoord;
  1394. o.ase_texcoord1 = v.ase_texcoord1;
  1395. o.ase_color = v.ase_color;
  1396. return o;
  1397. }
  1398. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  1399. {
  1400. TessellationFactors o;
  1401. float4 tf = 1;
  1402. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1403. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1404. #if defined(ASE_FIXED_TESSELLATION)
  1405. tf = FixedTess( tessValue );
  1406. #elif defined(ASE_DISTANCE_TESSELLATION)
  1407. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1408. #elif defined(ASE_LENGTH_TESSELLATION)
  1409. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1410. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1411. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1412. #endif
  1413. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  1414. return o;
  1415. }
  1416. [domain("tri")]
  1417. [partitioning("fractional_odd")]
  1418. [outputtopology("triangle_cw")]
  1419. [patchconstantfunc("TessellationFunction")]
  1420. [outputcontrolpoints(3)]
  1421. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1422. {
  1423. return patch[id];
  1424. }
  1425. [domain("tri")]
  1426. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1427. {
  1428. VertexInput o = (VertexInput) 0;
  1429. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  1430. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  1431. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  1432. o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  1433. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  1434. #if defined(ASE_PHONG_TESSELLATION)
  1435. float3 pp[3];
  1436. for (int i = 0; i < 3; ++i)
  1437. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  1438. float phongStrength = _TessPhongStrength;
  1439. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  1440. #endif
  1441. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  1442. return VertexFunction(o);
  1443. }
  1444. #else
  1445. VertexOutput vert ( VertexInput v )
  1446. {
  1447. return VertexFunction( v );
  1448. }
  1449. #endif
  1450. half4 frag(VertexOutput IN ) : SV_TARGET
  1451. {
  1452. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  1453. float2 uv_Main_Tex = IN.ase_texcoord1.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  1454. float4 texCoord127 = IN.ase_texcoord2;
  1455. texCoord127.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
  1456. float temp_output_133_0 = ( 1.0 - texCoord127.x );
  1457. float2 texCoord37 = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
  1458. float2 temp_cast_0 = (( _RJraodongsd * _CTime )).xx;
  1459. float2 uv_RJraodong = IN.ase_texcoord1.xy * _RJraodong_ST.xy + _RJraodong_ST.zw;
  1460. float2 panner121 = ( 1.0 * _Time.y * temp_cast_0 + uv_RJraodong);
  1461. float temp_output_116_0 = ( tex2D( _RJraodong, panner121 ).r * _RJraodongqd );
  1462. float smoothstepResult98 = smoothstep( temp_output_133_0 , ( temp_output_133_0 + _RJ1soft ) , (( texCoord37 + temp_output_116_0 )).x);
  1463. float temp_output_134_0 = ( 1.0 - texCoord127.y );
  1464. float2 texCoord52 = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
  1465. float smoothstepResult108 = smoothstep( temp_output_134_0 , ( temp_output_134_0 + _RJ2soft ) , tex2D( _Rj2Tex, ( temp_output_116_0 + texCoord52 ) ).r);
  1466. float2 uv_dissolve = IN.ase_texcoord1.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  1467. float smoothstepResult136 = smoothstep( texCoord127.w , ( texCoord127.w + _Soft_value ) , tex2D( _dissolve, uv_dissolve ).r);
  1468. surfaceDescription.Alpha = ( ( ( tex2D( _Main_Tex, uv_Main_Tex ).a * ( smoothstepResult98 * smoothstepResult108 ) ) * IN.ase_color.a ) * smoothstepResult136 * _AlphaQD );
  1469. surfaceDescription.AlphaClipThreshold = 0.5;
  1470. #if _ALPHATEST_ON
  1471. clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold);
  1472. #endif
  1473. #ifdef LOD_FADE_CROSSFADE
  1474. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  1475. #endif
  1476. float3 normalWS = IN.normalWS;
  1477. return half4(NormalizeNormalPerPixel(normalWS), 0.0);
  1478. }
  1479. ENDHLSL
  1480. }
  1481. }
  1482. CustomEditor "UnityEditor.ShaderGraphUnlitGUI"
  1483. FallBack "Hidden/Shader Graph/FallbackError"
  1484. Fallback Off
  1485. }
  1486. /*ASEBEGIN
  1487. Version=19105
  1488. Node;AmplifyShaderEditor.CommentaryNode;124;-3122.723,527.3883;Inherit;False;3110.388;1122.132;Comment;11;113;112;47;117;116;50;120;121;118;122;123;;1,1,1,1;0;0
  1489. Node;AmplifyShaderEditor.CommentaryNode;113;-1876.465,1094.753;Inherit;False;1499.007;534.9006;Comment;7;52;51;46;108;110;111;134;竖 溶解;1,1,1,1;0;0
  1490. Node;AmplifyShaderEditor.CommentaryNode;112;-1818.383,577.3884;Inherit;False;1419.736;462.948;;8;49;38;37;98;100;101;127;133;横 溶解;1,1,1,1;0;0
  1491. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;57;-22.53371,-659.0623;Inherit;True;4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;1;COLOR;0
  1492. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;47;-248.5367,888.9625;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1493. Node;AmplifyShaderEditor.SimpleAddOpNode;49;-1547.168,772.3397;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
  1494. Node;AmplifyShaderEditor.SimpleAddOpNode;51;-1568.548,1144.753;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
  1495. Node;AmplifyShaderEditor.SmoothstepOpNode;108;-633.6574,1178.406;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
  1496. Node;AmplifyShaderEditor.SimpleAddOpNode;111;-841.564,1389.221;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1497. Node;AmplifyShaderEditor.RangedFloatNode;110;-1123.576,1534.12;Inherit;False;Property;_RJ2soft;RJ2软度;11;0;Create;False;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
  1498. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;116;-2159.588,988.0412;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1499. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;120;-2855.274,1090.91;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1500. Node;AmplifyShaderEditor.PannerNode;121;-2707.124,978.3328;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
  1501. Node;AmplifyShaderEditor.FunctionNode;118;-3042.274,1166.908;Inherit;False;CombatTiem;1;;18;6465787bb8dbe784ea48b961c788deef;0;0;1;FLOAT;0
  1502. Node;AmplifyShaderEditor.RangedFloatNode;123;-3072.723,1059.87;Inherit;False;Property;_RJraodongsd;溶解扰动速度;8;0;Create;False;0;0;0;False;0;False;0.2;0.2;0;0;0;1;FLOAT;0
  1503. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;0;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ExtraPrePass;0;0;ExtraPrePass;5;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;3;True;12;all;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;0;False;False;0;;0;0;Standard;0;False;0
  1504. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;2;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ShadowCaster;0;2;ShadowCaster;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;3;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=ShadowCaster;False;False;0;;0;0;Standard;0;False;0
  1505. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;3;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthOnly;0;3;DepthOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;3;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;False;False;True;1;LightMode=DepthOnly;False;False;0;;0;0;Standard;0;False;0
  1506. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;4;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Meta;0;4;Meta;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;3;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Meta;False;False;0;;0;0;Standard;0;False;0
  1507. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;5;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Universal2D;0;5;Universal2D;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;3;True;12;all;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=Universal2D;False;False;0;;0;0;Standard;0;False;0
  1508. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;6;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;SceneSelectionPass;0;6;SceneSelectionPass;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;3;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=SceneSelectionPass;False;False;0;;0;0;Standard;0;False;0
  1509. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;7;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ScenePickingPass;0;7;ScenePickingPass;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;3;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Picking;False;False;0;;0;0;Standard;0;False;0
  1510. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;8;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthNormals;0;8;DepthNormals;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;3;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;False;0;;0;0;Standard;0;False;0
  1511. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;9;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthNormalsOnly;0;9;DepthNormalsOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;3;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;True;9;d3d11;metal;vulkan;xboxone;xboxseries;playstation;ps4;ps5;switch;0;;0;0;Standard;0;False;0
  1512. Node;AmplifyShaderEditor.VertexColorNode;13;-452.2453,-399.0883;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1513. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;125;618.9279,676.3478;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1514. Node;AmplifyShaderEditor.SmoothstepOpNode;98;-646.3629,639.8658;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
  1515. Node;AmplifyShaderEditor.SamplerNode;15;-341.4379,340.2539;Inherit;True;Property;_Main_Tex;Main_Tex;0;0;Create;True;0;0;0;False;0;False;-1;3bad35766d7c60f4788cc42fec4d5aea;8dd972cbb6cdc024a9da718d46ea3dfc;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1516. Node;AmplifyShaderEditor.SamplerNode;46;-1410.536,1231.844;Inherit;True;Property;_Rj2Tex;溶解2贴图;5;0;Create;False;0;0;0;False;0;False;-1;f77f8f8d7482c1b44b0dad32ff004bec;f77f8f8d7482c1b44b0dad32ff004bec;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1517. Node;AmplifyShaderEditor.ColorNode;59;-480.6215,-613.0028;Inherit;False;Property;_ColorGG;高光Color;4;0;Create;False;0;0;0;False;0;False;0,0.7602248,1,1;1,1,1,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1518. Node;AmplifyShaderEditor.SamplerNode;56;-433.2884,-1086.773;Inherit;True;Property;_TextureGao;高亮贴图;3;0;Create;False;0;0;0;False;0;False;-1;38a4e7dc480d0ec42ad7228c1b113799;38a4e7dc480d0ec42ad7228c1b113799;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1519. Node;AmplifyShaderEditor.SimpleAddOpNode;101;-842.5375,825.6483;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1520. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;34;240.2974,593.1702;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1521. Node;AmplifyShaderEditor.RangedFloatNode;100;-1118.647,961.122;Inherit;False;Property;_RJ1soft;RJ1软度;10;0;Create;False;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
  1522. Node;AmplifyShaderEditor.ComponentMaskNode;38;-1399.271,617.3162;Inherit;True;True;False;True;True;1;0;FLOAT2;0,0;False;1;FLOAT;0
  1523. Node;AmplifyShaderEditor.TextureCoordinatesNode;37;-1772.102,628.3884;Inherit;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1524. Node;AmplifyShaderEditor.TextureCoordinatesNode;52;-1824.465,1287.135;Inherit;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1525. Node;AmplifyShaderEditor.OneMinusNode;133;-1151.474,811.0007;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  1526. Node;AmplifyShaderEditor.OneMinusNode;134;-1030.856,1157.78;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  1527. Node;AmplifyShaderEditor.SamplerNode;50;-2492.553,958.5914;Inherit;True;Property;_RJraodong;溶解扰动;6;0;Create;False;0;0;0;False;0;False;-1;8dd972cbb6cdc024a9da718d46ea3dfc;8dd972cbb6cdc024a9da718d46ea3dfc;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1528. Node;AmplifyShaderEditor.TextureCoordinatesNode;122;-3012.799,919.8809;Inherit;False;0;50;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1529. Node;AmplifyShaderEditor.RangedFloatNode;117;-2399.234,1195.414;Inherit;False;Property;_RJraodongqd;溶解扰动强度;7;0;Create;False;0;0;0;False;0;False;0.2;0;0;0;0;1;FLOAT;0
  1530. Node;AmplifyShaderEditor.TextureCoordinatesNode;127;-1400.381,819.1682;Inherit;False;1;-1;4;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1531. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;1;1279.203,104.858;Float;False;True;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;13;LT/shuimoFX;2992e84f91cbeb14eab234972e07ea9d;True;Forward;0;1;Forward;8;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;2;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;UniversalMaterialType=Unlit;True;3;True;12;all;0;False;True;1;5;False;;10;False;;1;1;False;;10;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;2;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=UniversalForwardOnly;False;False;0;;0;0;Standard;23;Surface;1;638131065495537529; Blend;0;0;Two Sided;0;638131065545881943;Forward Only;0;0;Cast Shadows;0;638131069026349120; Use Shadow Threshold;0;0;Receive Shadows;0;638131069032950813;GPU Instancing;1;0;LOD CrossFade;0;0;Built-in Fog;0;0;DOTS Instancing;0;0;Meta Pass;0;0;Extra Pre Pass;0;0;Tessellation;0;0; Phong;0;0; Strength;0.5,False,;0; Type;0;0; Tess;16,False,;0; Min;10,False,;0; Max;25,False,;0; Edge Length;16,False,;0; Max Displacement;25,False,;0;Vertex Position,InvertActionOnDeselection;1;0;0;10;False;True;False;True;False;False;True;True;True;True;False;;False;0
  1532. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;135;1231.466,504.9752;Inherit;False;3;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
  1533. Node;AmplifyShaderEditor.SamplerNode;137;583.6639,962.5555;Inherit;True;Property;_dissolve;dissolve;12;0;Create;True;0;0;0;False;0;False;-1;None;3d0080a1107b2fb4ca479dec7b44ff5a;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1534. Node;AmplifyShaderEditor.SimpleAddOpNode;138;706.7897,1220.821;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1535. Node;AmplifyShaderEditor.SmoothstepOpNode;136;965.3692,1020.568;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
  1536. Node;AmplifyShaderEditor.RangedFloatNode;126;1138.926,829.6756;Inherit;False;Property;_AlphaQD;不透明强度;9;0;Create;False;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
  1537. Node;AmplifyShaderEditor.RangedFloatNode;139;559.7842,1362.523;Float;False;Property;_Soft_value;Soft_value;13;0;Create;True;0;0;0;False;0;False;0;0.2;0;1;0;1;FLOAT;0
  1538. WireConnection;57;0;56;1
  1539. WireConnection;57;1;127;3
  1540. WireConnection;57;2;59;0
  1541. WireConnection;57;3;13;0
  1542. WireConnection;47;0;98;0
  1543. WireConnection;47;1;108;0
  1544. WireConnection;49;0;37;0
  1545. WireConnection;49;1;116;0
  1546. WireConnection;51;0;116;0
  1547. WireConnection;51;1;52;0
  1548. WireConnection;108;0;46;1
  1549. WireConnection;108;1;134;0
  1550. WireConnection;108;2;111;0
  1551. WireConnection;111;0;134;0
  1552. WireConnection;111;1;110;0
  1553. WireConnection;116;0;50;1
  1554. WireConnection;116;1;117;0
  1555. WireConnection;120;0;123;0
  1556. WireConnection;120;1;118;0
  1557. WireConnection;121;0;122;0
  1558. WireConnection;121;2;120;0
  1559. WireConnection;125;0;34;0
  1560. WireConnection;125;1;13;4
  1561. WireConnection;98;0;38;0
  1562. WireConnection;98;1;133;0
  1563. WireConnection;98;2;101;0
  1564. WireConnection;46;1;51;0
  1565. WireConnection;101;0;133;0
  1566. WireConnection;101;1;100;0
  1567. WireConnection;34;0;15;4
  1568. WireConnection;34;1;47;0
  1569. WireConnection;38;0;49;0
  1570. WireConnection;133;0;127;1
  1571. WireConnection;134;0;127;2
  1572. WireConnection;50;1;121;0
  1573. WireConnection;1;2;57;0
  1574. WireConnection;1;3;135;0
  1575. WireConnection;135;0;125;0
  1576. WireConnection;135;1;136;0
  1577. WireConnection;135;2;126;0
  1578. WireConnection;138;0;127;4
  1579. WireConnection;138;1;139;0
  1580. WireConnection;136;0;137;1
  1581. WireConnection;136;1;127;4
  1582. WireConnection;136;2;138;0
  1583. ASEEND*/
  1584. //CHKSM=F55DB33B12E9CFEC4D6B71EE90FF69B62F37108F