12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985 |
- // Made with Amplify Shader Editor v1.9.1.5
- // Available at the Unity Asset Store - http://u3d.as/y3X
- Shader "LT/AlphaMoveTurbDissolve"
- {
- Properties
- {
- [HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
- [HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
- [ASEBegin]_CTime("_CTime", Float) = 1
- [HDR]_Main_Color("Main_Color", Color) = (1,1,1,1)
- _light("亮度", Float) = 1
- _Alpha("Alpha", Range( 0 , 1)) = 1
- _Main_Tex("Main_Tex", 2D) = "white" {}
- _Main_UV("Main_UV", Vector) = (0,0,0,0)
- _CustomDataMainUV("CustomDataMainUV", Range( 0 , 1)) = 0
- _Turb_Noise("Turb_Noise", 2D) = "white" {}
- _Turb_Value("Turb_Value", Float) = 0
- _Turb_UV("Turb_UV", Vector) = (0,0,0,0)
- _dissolve("dissolve", 2D) = "white" {}
- _Diss_value("Diss_value", Float) = 0
- _Soft_value("Soft_value", Float) = 0
- _CustomDataDissolve("CustomDataDissolve", Range( 0 , 1)) = 0
- _Diss_UV("Diss_UV", Vector) = (0,0,0,0)
- _Mask("Mask", 2D) = "white" {}
- _Mask_UV("Mask_UV", Vector) = (0,0,0,0)
- [ASEEnd][Enum(ParticCtrlMainUVOff,0,ParticCtrlMainUVOn,1)]_CustomDataMainUV1("maskAlpha", Float) = 0
- //_TessPhongStrength( "Tess Phong Strength", Range( 0, 1 ) ) = 0.5
- //_TessValue( "Tess Max Tessellation", Range( 1, 32 ) ) = 16
- //_TessMin( "Tess Min Distance", Float ) = 10
- //_TessMax( "Tess Max Distance", Float ) = 25
- //_TessEdgeLength ( "Tess Edge length", Range( 2, 50 ) ) = 16
- //_TessMaxDisp( "Tess Max Displacement", Float ) = 25
- [HideInInspector] _QueueOffset("_QueueOffset", Float) = 0
- [HideInInspector] _QueueControl("_QueueControl", Float) = -1
- [HideInInspector][NoScaleOffset] unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
- [HideInInspector][NoScaleOffset] unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
- [HideInInspector][NoScaleOffset] unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
- }
- SubShader
- {
- LOD 0
-
- Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" "UniversalMaterialType"="Unlit" }
- Cull Off
- AlphaToMask Off
-
- HLSLINCLUDE
- #pragma target 3.5
- #pragma prefer_hlslcc gles
- #pragma exclude_renderers xboxone xboxseries playstation ps4 switch // ensure rendering platforms toggle list is visible
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl"
- #ifndef ASE_TESS_FUNCS
- #define ASE_TESS_FUNCS
- float4 FixedTess( float tessValue )
- {
- return tessValue;
- }
- float CalcDistanceTessFactor (float4 vertex, float minDist, float maxDist, float tess, float4x4 o2w, float3 cameraPos )
- {
- float3 wpos = mul(o2w,vertex).xyz;
- float dist = distance (wpos, cameraPos);
- float f = clamp(1.0 - (dist - minDist) / (maxDist - minDist), 0.01, 1.0) * tess;
- return f;
- }
- float4 CalcTriEdgeTessFactors (float3 triVertexFactors)
- {
- float4 tess;
- tess.x = 0.5 * (triVertexFactors.y + triVertexFactors.z);
- tess.y = 0.5 * (triVertexFactors.x + triVertexFactors.z);
- tess.z = 0.5 * (triVertexFactors.x + triVertexFactors.y);
- tess.w = (triVertexFactors.x + triVertexFactors.y + triVertexFactors.z) / 3.0f;
- return tess;
- }
- float CalcEdgeTessFactor (float3 wpos0, float3 wpos1, float edgeLen, float3 cameraPos, float4 scParams )
- {
- float dist = distance (0.5 * (wpos0+wpos1), cameraPos);
- float len = distance(wpos0, wpos1);
- float f = max(len * scParams.y / (edgeLen * dist), 1.0);
- return f;
- }
- float DistanceFromPlane (float3 pos, float4 plane)
- {
- float d = dot (float4(pos,1.0f), plane);
- return d;
- }
- bool WorldViewFrustumCull (float3 wpos0, float3 wpos1, float3 wpos2, float cullEps, float4 planes[6] )
- {
- float4 planeTest;
- planeTest.x = (( DistanceFromPlane(wpos0, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
- (( DistanceFromPlane(wpos1, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
- (( DistanceFromPlane(wpos2, planes[0]) > -cullEps) ? 1.0f : 0.0f );
- planeTest.y = (( DistanceFromPlane(wpos0, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
- (( DistanceFromPlane(wpos1, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
- (( DistanceFromPlane(wpos2, planes[1]) > -cullEps) ? 1.0f : 0.0f );
- planeTest.z = (( DistanceFromPlane(wpos0, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
- (( DistanceFromPlane(wpos1, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
- (( DistanceFromPlane(wpos2, planes[2]) > -cullEps) ? 1.0f : 0.0f );
- planeTest.w = (( DistanceFromPlane(wpos0, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
- (( DistanceFromPlane(wpos1, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
- (( DistanceFromPlane(wpos2, planes[3]) > -cullEps) ? 1.0f : 0.0f );
- return !all (planeTest);
- }
- float4 DistanceBasedTess( float4 v0, float4 v1, float4 v2, float tess, float minDist, float maxDist, float4x4 o2w, float3 cameraPos )
- {
- float3 f;
- f.x = CalcDistanceTessFactor (v0,minDist,maxDist,tess,o2w,cameraPos);
- f.y = CalcDistanceTessFactor (v1,minDist,maxDist,tess,o2w,cameraPos);
- f.z = CalcDistanceTessFactor (v2,minDist,maxDist,tess,o2w,cameraPos);
- return CalcTriEdgeTessFactors (f);
- }
- float4 EdgeLengthBasedTess( float4 v0, float4 v1, float4 v2, float edgeLength, float4x4 o2w, float3 cameraPos, float4 scParams )
- {
- float3 pos0 = mul(o2w,v0).xyz;
- float3 pos1 = mul(o2w,v1).xyz;
- float3 pos2 = mul(o2w,v2).xyz;
- float4 tess;
- tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
- tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
- tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
- tess.w = (tess.x + tess.y + tess.z) / 3.0f;
- return tess;
- }
- float4 EdgeLengthBasedTessCull( float4 v0, float4 v1, float4 v2, float edgeLength, float maxDisplacement, float4x4 o2w, float3 cameraPos, float4 scParams, float4 planes[6] )
- {
- float3 pos0 = mul(o2w,v0).xyz;
- float3 pos1 = mul(o2w,v1).xyz;
- float3 pos2 = mul(o2w,v2).xyz;
- float4 tess;
- if (WorldViewFrustumCull(pos0, pos1, pos2, maxDisplacement, planes))
- {
- tess = 0.0f;
- }
- else
- {
- tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
- tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
- tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
- tess.w = (tess.x + tess.y + tess.z) / 3.0f;
- }
- return tess;
- }
- #endif //ASE_TESS_FUNCS
- ENDHLSL
-
- Pass
- {
-
- Name "Forward"
- Tags { "LightMode"="UniversalForwardOnly" }
- Blend SrcAlpha OneMinusSrcAlpha, One OneMinusSrcAlpha
- ZWrite Off
- ZTest LEqual
- Offset 0 , 0
- ColorMask RGBA
-
- HLSLPROGRAM
- #pragma multi_compile_instancing
- #define _RECEIVE_SHADOWS_OFF 1
- #define _SURFACE_TYPE_TRANSPARENT 1
- #define ASE_SRP_VERSION 120108
- #pragma multi_compile _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
- #pragma multi_compile _ LIGHTMAP_ON
- #pragma multi_compile _ DIRLIGHTMAP_COMBINED
- #pragma shader_feature _ _SAMPLE_GI
- #pragma multi_compile _ DEBUG_DISPLAY
- #pragma vertex vert
- #pragma fragment frag
- #define SHADERPASS SHADERPASS_UNLIT
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"
- #define ASE_NEEDS_FRAG_COLOR
- struct VertexInput
- {
- float4 vertex : POSITION;
- float3 ase_normal : NORMAL;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct VertexOutput
- {
- float4 clipPos : SV_POSITION;
- #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
- float3 worldPos : TEXCOORD0;
- #endif
- #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
- float4 shadowCoord : TEXCOORD1;
- #endif
- #ifdef ASE_FOG
- float fogFactor : TEXCOORD2;
- #endif
- float4 ase_texcoord3 : TEXCOORD3;
- float4 ase_texcoord4 : TEXCOORD4;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- UNITY_VERTEX_OUTPUT_STEREO
- };
- CBUFFER_START(UnityPerMaterial)
- float4 _Turb_Noise_ST;
- float4 _Main_Tex_ST;
- float4 _Main_Color;
- float4 _dissolve_ST;
- float4 _Mask_ST;
- float2 _Turb_UV;
- float2 _Mask_UV;
- float2 _Main_UV;
- float2 _Diss_UV;
- float _Alpha;
- float _CTime;
- float _Diss_value;
- float _CustomDataDissolve;
- float _light;
- float _CustomDataMainUV;
- float _Turb_Value;
- float _Soft_value;
- float _CustomDataMainUV1;
- #ifdef ASE_TESSELLATION
- float _TessPhongStrength;
- float _TessValue;
- float _TessMin;
- float _TessMax;
- float _TessEdgeLength;
- float _TessMaxDisp;
- #endif
- CBUFFER_END
- sampler2D _Main_Tex;
- sampler2D _Turb_Noise;
- sampler2D _dissolve;
- sampler2D _Mask;
-
- VertexOutput VertexFunction ( VertexInput v )
- {
- VertexOutput o = (VertexOutput)0;
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_TRANSFER_INSTANCE_ID(v, o);
- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
- o.ase_texcoord3.xy = v.ase_texcoord.xy;
- o.ase_texcoord4 = v.ase_texcoord1;
- o.ase_color = v.ase_color;
-
- //setting value to unused interpolator channels and avoid initialization warnings
- o.ase_texcoord3.zw = 0;
- #ifdef ASE_ABSOLUTE_VERTEX_POS
- float3 defaultVertexValue = v.vertex.xyz;
- #else
- float3 defaultVertexValue = float3(0, 0, 0);
- #endif
- float3 vertexValue = defaultVertexValue;
- #ifdef ASE_ABSOLUTE_VERTEX_POS
- v.vertex.xyz = vertexValue;
- #else
- v.vertex.xyz += vertexValue;
- #endif
- v.ase_normal = v.ase_normal;
- float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
- float4 positionCS = TransformWorldToHClip( positionWS );
- #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
- o.worldPos = positionWS;
- #endif
- #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
- VertexPositionInputs vertexInput = (VertexPositionInputs)0;
- vertexInput.positionWS = positionWS;
- vertexInput.positionCS = positionCS;
- o.shadowCoord = GetShadowCoord( vertexInput );
- #endif
- #ifdef ASE_FOG
- o.fogFactor = ComputeFogFactor( positionCS.z );
- #endif
- o.clipPos = positionCS;
- return o;
- }
- #if defined(ASE_TESSELLATION)
- struct VertexControl
- {
- float4 vertex : INTERNALTESSPOS;
- float3 ase_normal : NORMAL;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct TessellationFactors
- {
- float edge[3] : SV_TessFactor;
- float inside : SV_InsideTessFactor;
- };
- VertexControl vert ( VertexInput v )
- {
- VertexControl o;
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_TRANSFER_INSTANCE_ID(v, o);
- o.vertex = v.vertex;
- o.ase_normal = v.ase_normal;
- o.ase_texcoord = v.ase_texcoord;
- o.ase_texcoord1 = v.ase_texcoord1;
- o.ase_color = v.ase_color;
- return o;
- }
- TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
- {
- TessellationFactors o;
- float4 tf = 1;
- float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
- float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
- #if defined(ASE_FIXED_TESSELLATION)
- tf = FixedTess( tessValue );
- #elif defined(ASE_DISTANCE_TESSELLATION)
- tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
- #elif defined(ASE_LENGTH_TESSELLATION)
- tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
- #elif defined(ASE_LENGTH_CULL_TESSELLATION)
- tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
- #endif
- o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
- return o;
- }
- [domain("tri")]
- [partitioning("fractional_odd")]
- [outputtopology("triangle_cw")]
- [patchconstantfunc("TessellationFunction")]
- [outputcontrolpoints(3)]
- VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
- {
- return patch[id];
- }
- [domain("tri")]
- VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
- {
- VertexInput o = (VertexInput) 0;
- o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
- o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
- o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
- o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
- o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
- #if defined(ASE_PHONG_TESSELLATION)
- float3 pp[3];
- for (int i = 0; i < 3; ++i)
- 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));
- float phongStrength = _TessPhongStrength;
- o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
- #endif
- UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
- return VertexFunction(o);
- }
- #else
- VertexOutput vert ( VertexInput v )
- {
- return VertexFunction( v );
- }
- #endif
- half4 frag ( VertexOutput IN ) : SV_Target
- {
- UNITY_SETUP_INSTANCE_ID( IN );
- UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
- #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
- float3 WorldPosition = IN.worldPos;
- #endif
- float4 ShadowCoords = float4( 0, 0, 0, 0 );
- #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
- #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
- ShadowCoords = IN.shadowCoord;
- #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
- ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
- #endif
- #endif
- float2 uv_Turb_Noise = IN.ase_texcoord3.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
- float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * 1.0 ) + uv_Turb_Noise);
- float2 uv_Main_Tex = IN.ase_texcoord3.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
- float2 panner19 = ( 1.0 * _Time.y * ( _Main_UV * 1.0 ) + uv_Main_Tex);
- float4 texCoord45 = IN.ase_texcoord4;
- texCoord45.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
- float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
- float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
- float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
-
- float4 texCoord48 = IN.ase_texcoord4;
- texCoord48.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
- float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
- float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
- float2 uv_dissolve = IN.ase_texcoord3.xy * _dissolve_ST.xy + _dissolve_ST.zw;
- float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
- float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _Soft_value ) , tex2D( _dissolve, panner31 ).r);
- float2 uv_Mask = IN.ase_texcoord3.xy * _Mask_ST.xy + _Mask_ST.zw;
- float2 panner65 = ( 1.0 * _Time.y * ( _Mask_UV * float2( 0,0 ) ) + uv_Mask);
- float4 tex2DNode37 = tex2D( _Mask, panner65 );
- float lerpResult75 = lerp( tex2DNode37.r , tex2DNode37.a , _CustomDataMainUV1);
-
- float3 BakedAlbedo = 0;
- float3 BakedEmission = 0;
- float3 Color = ( ( tex2DNode10 * _Main_Color * IN.ase_color ) * _light ).rgb;
- float Alpha = ( smoothstepResult33 * _Alpha * tex2DNode10.a * IN.ase_color.a * _Main_Color.a * lerpResult75 );
- float AlphaClipThreshold = 0.5;
- float AlphaClipThresholdShadow = 0.5;
- #ifdef _ALPHATEST_ON
- clip( Alpha - AlphaClipThreshold );
- #endif
- #if defined(_DBUFFER)
- ApplyDecalToBaseColor(IN.clipPos, Color);
- #endif
- #if defined(_ALPHAPREMULTIPLY_ON)
- Color *= Alpha;
- #endif
- #ifdef LOD_FADE_CROSSFADE
- LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
- #endif
- #ifdef ASE_FOG
- Color = MixFog( Color, IN.fogFactor );
- #endif
- return half4( Color, Alpha );
- }
- ENDHLSL
- }
-
- Pass
- {
-
- Name "DepthOnly"
- Tags { "LightMode"="DepthOnly" }
- ZWrite On
- ColorMask 0
- AlphaToMask Off
- HLSLPROGRAM
- #pragma multi_compile_instancing
- #define _RECEIVE_SHADOWS_OFF 1
- #define _SURFACE_TYPE_TRANSPARENT 1
- #define ASE_SRP_VERSION 120108
- #pragma vertex vert
- #pragma fragment frag
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
-
- struct VertexInput
- {
- float4 vertex : POSITION;
- float3 ase_normal : NORMAL;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct VertexOutput
- {
- float4 clipPos : SV_POSITION;
- #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
- float3 worldPos : TEXCOORD0;
- #endif
- #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
- float4 shadowCoord : TEXCOORD1;
- #endif
- float4 ase_texcoord2 : TEXCOORD2;
- float4 ase_texcoord3 : TEXCOORD3;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- UNITY_VERTEX_OUTPUT_STEREO
- };
- CBUFFER_START(UnityPerMaterial)
- float4 _Turb_Noise_ST;
- float4 _Main_Tex_ST;
- float4 _Main_Color;
- float4 _dissolve_ST;
- float4 _Mask_ST;
- float2 _Turb_UV;
- float2 _Mask_UV;
- float2 _Main_UV;
- float2 _Diss_UV;
- float _Alpha;
- float _CTime;
- float _Diss_value;
- float _CustomDataDissolve;
- float _light;
- float _CustomDataMainUV;
- float _Turb_Value;
- float _Soft_value;
- float _CustomDataMainUV1;
- #ifdef ASE_TESSELLATION
- float _TessPhongStrength;
- float _TessValue;
- float _TessMin;
- float _TessMax;
- float _TessEdgeLength;
- float _TessMaxDisp;
- #endif
- CBUFFER_END
- sampler2D _dissolve;
- sampler2D _Main_Tex;
- sampler2D _Turb_Noise;
- sampler2D _Mask;
-
- VertexOutput VertexFunction( VertexInput v )
- {
- VertexOutput o = (VertexOutput)0;
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_TRANSFER_INSTANCE_ID(v, o);
- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
- o.ase_texcoord2 = v.ase_texcoord1;
- o.ase_texcoord3.xy = v.ase_texcoord.xy;
- o.ase_color = v.ase_color;
-
- //setting value to unused interpolator channels and avoid initialization warnings
- o.ase_texcoord3.zw = 0;
- #ifdef ASE_ABSOLUTE_VERTEX_POS
- float3 defaultVertexValue = v.vertex.xyz;
- #else
- float3 defaultVertexValue = float3(0, 0, 0);
- #endif
- float3 vertexValue = defaultVertexValue;
- #ifdef ASE_ABSOLUTE_VERTEX_POS
- v.vertex.xyz = vertexValue;
- #else
- v.vertex.xyz += vertexValue;
- #endif
- v.ase_normal = v.ase_normal;
- float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
- #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
- o.worldPos = positionWS;
- #endif
- o.clipPos = TransformWorldToHClip( positionWS );
- #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
- VertexPositionInputs vertexInput = (VertexPositionInputs)0;
- vertexInput.positionWS = positionWS;
- vertexInput.positionCS = o.clipPos;
- o.shadowCoord = GetShadowCoord( vertexInput );
- #endif
- return o;
- }
- #if defined(ASE_TESSELLATION)
- struct VertexControl
- {
- float4 vertex : INTERNALTESSPOS;
- float3 ase_normal : NORMAL;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct TessellationFactors
- {
- float edge[3] : SV_TessFactor;
- float inside : SV_InsideTessFactor;
- };
- VertexControl vert ( VertexInput v )
- {
- VertexControl o;
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_TRANSFER_INSTANCE_ID(v, o);
- o.vertex = v.vertex;
- o.ase_normal = v.ase_normal;
- o.ase_texcoord1 = v.ase_texcoord1;
- o.ase_texcoord = v.ase_texcoord;
- o.ase_color = v.ase_color;
- return o;
- }
- TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
- {
- TessellationFactors o;
- float4 tf = 1;
- float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
- float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
- #if defined(ASE_FIXED_TESSELLATION)
- tf = FixedTess( tessValue );
- #elif defined(ASE_DISTANCE_TESSELLATION)
- tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
- #elif defined(ASE_LENGTH_TESSELLATION)
- tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
- #elif defined(ASE_LENGTH_CULL_TESSELLATION)
- tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
- #endif
- o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
- return o;
- }
- [domain("tri")]
- [partitioning("fractional_odd")]
- [outputtopology("triangle_cw")]
- [patchconstantfunc("TessellationFunction")]
- [outputcontrolpoints(3)]
- VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
- {
- return patch[id];
- }
- [domain("tri")]
- VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
- {
- VertexInput o = (VertexInput) 0;
- o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
- o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
- o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
- o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
- o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
- #if defined(ASE_PHONG_TESSELLATION)
- float3 pp[3];
- for (int i = 0; i < 3; ++i)
- 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));
- float phongStrength = _TessPhongStrength;
- o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
- #endif
- UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
- return VertexFunction(o);
- }
- #else
- VertexOutput vert ( VertexInput v )
- {
- return VertexFunction( v );
- }
- #endif
- half4 frag(VertexOutput IN ) : SV_TARGET
- {
- UNITY_SETUP_INSTANCE_ID(IN);
- UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
- #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
- float3 WorldPosition = IN.worldPos;
- #endif
- float4 ShadowCoords = float4( 0, 0, 0, 0 );
- #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
- #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
- ShadowCoords = IN.shadowCoord;
- #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
- ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
- #endif
- #endif
- float4 texCoord48 = IN.ase_texcoord2;
- texCoord48.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
- float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
- float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
- float2 uv_dissolve = IN.ase_texcoord3.xy * _dissolve_ST.xy + _dissolve_ST.zw;
- float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
- float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _Soft_value ) , tex2D( _dissolve, panner31 ).r);
- float2 uv_Turb_Noise = IN.ase_texcoord3.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
- float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * 1.0 ) + uv_Turb_Noise);
- float2 uv_Main_Tex = IN.ase_texcoord3.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
- float2 panner19 = ( 1.0 * _Time.y * ( _Main_UV * 1.0 ) + uv_Main_Tex);
- float4 texCoord45 = IN.ase_texcoord2;
- texCoord45.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
- float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
- float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
- float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
- float2 uv_Mask = IN.ase_texcoord3.xy * _Mask_ST.xy + _Mask_ST.zw;
- float2 panner65 = ( 1.0 * _Time.y * ( _Mask_UV * float2( 0,0 ) ) + uv_Mask);
- float4 tex2DNode37 = tex2D( _Mask, panner65 );
- float lerpResult75 = lerp( tex2DNode37.r , tex2DNode37.a , _CustomDataMainUV1);
-
- float Alpha = ( smoothstepResult33 * _Alpha * tex2DNode10.a * IN.ase_color.a * _Main_Color.a * lerpResult75 );
- float AlphaClipThreshold = 0.5;
- #ifdef _ALPHATEST_ON
- clip(Alpha - AlphaClipThreshold);
- #endif
- #ifdef LOD_FADE_CROSSFADE
- LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
- #endif
- return 0;
- }
- ENDHLSL
- }
-
- Pass
- {
-
- Name "SceneSelectionPass"
- Tags { "LightMode"="SceneSelectionPass" }
- Cull Off
- HLSLPROGRAM
- #pragma multi_compile_instancing
- #define _RECEIVE_SHADOWS_OFF 1
- #define _SURFACE_TYPE_TRANSPARENT 1
- #define ASE_SRP_VERSION 120108
- #pragma vertex vert
- #pragma fragment frag
- #define ATTRIBUTES_NEED_NORMAL
- #define ATTRIBUTES_NEED_TANGENT
- #define SHADERPASS SHADERPASS_DEPTHONLY
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
-
- struct VertexInput
- {
- float4 vertex : POSITION;
- float3 ase_normal : NORMAL;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct VertexOutput
- {
- float4 clipPos : SV_POSITION;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- UNITY_VERTEX_OUTPUT_STEREO
- };
- CBUFFER_START(UnityPerMaterial)
- float4 _Turb_Noise_ST;
- float4 _Main_Tex_ST;
- float4 _Main_Color;
- float4 _dissolve_ST;
- float4 _Mask_ST;
- float2 _Turb_UV;
- float2 _Mask_UV;
- float2 _Main_UV;
- float2 _Diss_UV;
- float _Alpha;
- float _CTime;
- float _Diss_value;
- float _CustomDataDissolve;
- float _light;
- float _CustomDataMainUV;
- float _Turb_Value;
- float _Soft_value;
- float _CustomDataMainUV1;
- #ifdef ASE_TESSELLATION
- float _TessPhongStrength;
- float _TessValue;
- float _TessMin;
- float _TessMax;
- float _TessEdgeLength;
- float _TessMaxDisp;
- #endif
- CBUFFER_END
- sampler2D _dissolve;
- sampler2D _Main_Tex;
- sampler2D _Turb_Noise;
- sampler2D _Mask;
-
- int _ObjectId;
- int _PassValue;
- struct SurfaceDescription
- {
- float Alpha;
- float AlphaClipThreshold;
- };
- VertexOutput VertexFunction(VertexInput v )
- {
- VertexOutput o;
- ZERO_INITIALIZE(VertexOutput, o);
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_TRANSFER_INSTANCE_ID(v, o);
- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
- o.ase_texcoord = v.ase_texcoord1;
- o.ase_texcoord1.xy = v.ase_texcoord.xy;
- o.ase_color = v.ase_color;
-
- //setting value to unused interpolator channels and avoid initialization warnings
- o.ase_texcoord1.zw = 0;
- #ifdef ASE_ABSOLUTE_VERTEX_POS
- float3 defaultVertexValue = v.vertex.xyz;
- #else
- float3 defaultVertexValue = float3(0, 0, 0);
- #endif
- float3 vertexValue = defaultVertexValue;
- #ifdef ASE_ABSOLUTE_VERTEX_POS
- v.vertex.xyz = vertexValue;
- #else
- v.vertex.xyz += vertexValue;
- #endif
- v.ase_normal = v.ase_normal;
- float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
- o.clipPos = TransformWorldToHClip(positionWS);
- return o;
- }
- #if defined(ASE_TESSELLATION)
- struct VertexControl
- {
- float4 vertex : INTERNALTESSPOS;
- float3 ase_normal : NORMAL;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct TessellationFactors
- {
- float edge[3] : SV_TessFactor;
- float inside : SV_InsideTessFactor;
- };
- VertexControl vert ( VertexInput v )
- {
- VertexControl o;
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_TRANSFER_INSTANCE_ID(v, o);
- o.vertex = v.vertex;
- o.ase_normal = v.ase_normal;
- o.ase_texcoord1 = v.ase_texcoord1;
- o.ase_texcoord = v.ase_texcoord;
- o.ase_color = v.ase_color;
- return o;
- }
- TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
- {
- TessellationFactors o;
- float4 tf = 1;
- float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
- float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
- #if defined(ASE_FIXED_TESSELLATION)
- tf = FixedTess( tessValue );
- #elif defined(ASE_DISTANCE_TESSELLATION)
- tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
- #elif defined(ASE_LENGTH_TESSELLATION)
- tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
- #elif defined(ASE_LENGTH_CULL_TESSELLATION)
- tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
- #endif
- o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
- return o;
- }
- [domain("tri")]
- [partitioning("fractional_odd")]
- [outputtopology("triangle_cw")]
- [patchconstantfunc("TessellationFunction")]
- [outputcontrolpoints(3)]
- VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
- {
- return patch[id];
- }
- [domain("tri")]
- VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
- {
- VertexInput o = (VertexInput) 0;
- o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
- o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
- o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
- o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
- o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
- #if defined(ASE_PHONG_TESSELLATION)
- float3 pp[3];
- for (int i = 0; i < 3; ++i)
- 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));
- float phongStrength = _TessPhongStrength;
- o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
- #endif
- UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
- return VertexFunction(o);
- }
- #else
- VertexOutput vert ( VertexInput v )
- {
- return VertexFunction( v );
- }
- #endif
- half4 frag(VertexOutput IN ) : SV_TARGET
- {
- SurfaceDescription surfaceDescription = (SurfaceDescription)0;
- float4 texCoord48 = IN.ase_texcoord;
- texCoord48.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
- float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
- float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
- float2 uv_dissolve = IN.ase_texcoord1.xy * _dissolve_ST.xy + _dissolve_ST.zw;
- float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
- float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _Soft_value ) , tex2D( _dissolve, panner31 ).r);
- float2 uv_Turb_Noise = IN.ase_texcoord1.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
- float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * 1.0 ) + uv_Turb_Noise);
- float2 uv_Main_Tex = IN.ase_texcoord1.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
- float2 panner19 = ( 1.0 * _Time.y * ( _Main_UV * 1.0 ) + uv_Main_Tex);
- float4 texCoord45 = IN.ase_texcoord;
- texCoord45.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
- float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
- float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
- float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
- float2 uv_Mask = IN.ase_texcoord1.xy * _Mask_ST.xy + _Mask_ST.zw;
- float2 panner65 = ( 1.0 * _Time.y * ( _Mask_UV * float2( 0,0 ) ) + uv_Mask);
- float4 tex2DNode37 = tex2D( _Mask, panner65 );
- float lerpResult75 = lerp( tex2DNode37.r , tex2DNode37.a , _CustomDataMainUV1);
-
- surfaceDescription.Alpha = ( smoothstepResult33 * _Alpha * tex2DNode10.a * IN.ase_color.a * _Main_Color.a * lerpResult75 );
- surfaceDescription.AlphaClipThreshold = 0.5;
- #if _ALPHATEST_ON
- float alphaClipThreshold = 0.01f;
- #if ALPHA_CLIP_THRESHOLD
- alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
- #endif
- clip(surfaceDescription.Alpha - alphaClipThreshold);
- #endif
- half4 outColor = half4(_ObjectId, _PassValue, 1.0, 1.0);
- return outColor;
- }
- ENDHLSL
- }
-
- Pass
- {
-
- Name "ScenePickingPass"
- Tags { "LightMode"="Picking" }
- HLSLPROGRAM
- #pragma multi_compile_instancing
- #define _RECEIVE_SHADOWS_OFF 1
- #define _SURFACE_TYPE_TRANSPARENT 1
- #define ASE_SRP_VERSION 120108
- #pragma vertex vert
- #pragma fragment frag
- #define ATTRIBUTES_NEED_NORMAL
- #define ATTRIBUTES_NEED_TANGENT
- #define SHADERPASS SHADERPASS_DEPTHONLY
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
-
- struct VertexInput
- {
- float4 vertex : POSITION;
- float3 ase_normal : NORMAL;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct VertexOutput
- {
- float4 clipPos : SV_POSITION;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- UNITY_VERTEX_OUTPUT_STEREO
- };
- CBUFFER_START(UnityPerMaterial)
- float4 _Turb_Noise_ST;
- float4 _Main_Tex_ST;
- float4 _Main_Color;
- float4 _dissolve_ST;
- float4 _Mask_ST;
- float2 _Turb_UV;
- float2 _Mask_UV;
- float2 _Main_UV;
- float2 _Diss_UV;
- float _Alpha;
- float _CTime;
- float _Diss_value;
- float _CustomDataDissolve;
- float _light;
- float _CustomDataMainUV;
- float _Turb_Value;
- float _Soft_value;
- float _CustomDataMainUV1;
- #ifdef ASE_TESSELLATION
- float _TessPhongStrength;
- float _TessValue;
- float _TessMin;
- float _TessMax;
- float _TessEdgeLength;
- float _TessMaxDisp;
- #endif
- CBUFFER_END
- sampler2D _dissolve;
- sampler2D _Main_Tex;
- sampler2D _Turb_Noise;
- sampler2D _Mask;
-
- float4 _SelectionID;
- struct SurfaceDescription
- {
- float Alpha;
- float AlphaClipThreshold;
- };
- VertexOutput VertexFunction(VertexInput v )
- {
- VertexOutput o;
- ZERO_INITIALIZE(VertexOutput, o);
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_TRANSFER_INSTANCE_ID(v, o);
- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
- o.ase_texcoord = v.ase_texcoord1;
- o.ase_texcoord1.xy = v.ase_texcoord.xy;
- o.ase_color = v.ase_color;
-
- //setting value to unused interpolator channels and avoid initialization warnings
- o.ase_texcoord1.zw = 0;
- #ifdef ASE_ABSOLUTE_VERTEX_POS
- float3 defaultVertexValue = v.vertex.xyz;
- #else
- float3 defaultVertexValue = float3(0, 0, 0);
- #endif
- float3 vertexValue = defaultVertexValue;
- #ifdef ASE_ABSOLUTE_VERTEX_POS
- v.vertex.xyz = vertexValue;
- #else
- v.vertex.xyz += vertexValue;
- #endif
- v.ase_normal = v.ase_normal;
- float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
- o.clipPos = TransformWorldToHClip(positionWS);
- return o;
- }
- #if defined(ASE_TESSELLATION)
- struct VertexControl
- {
- float4 vertex : INTERNALTESSPOS;
- float3 ase_normal : NORMAL;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct TessellationFactors
- {
- float edge[3] : SV_TessFactor;
- float inside : SV_InsideTessFactor;
- };
- VertexControl vert ( VertexInput v )
- {
- VertexControl o;
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_TRANSFER_INSTANCE_ID(v, o);
- o.vertex = v.vertex;
- o.ase_normal = v.ase_normal;
- o.ase_texcoord1 = v.ase_texcoord1;
- o.ase_texcoord = v.ase_texcoord;
- o.ase_color = v.ase_color;
- return o;
- }
- TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
- {
- TessellationFactors o;
- float4 tf = 1;
- float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
- float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
- #if defined(ASE_FIXED_TESSELLATION)
- tf = FixedTess( tessValue );
- #elif defined(ASE_DISTANCE_TESSELLATION)
- tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
- #elif defined(ASE_LENGTH_TESSELLATION)
- tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
- #elif defined(ASE_LENGTH_CULL_TESSELLATION)
- tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
- #endif
- o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
- return o;
- }
- [domain("tri")]
- [partitioning("fractional_odd")]
- [outputtopology("triangle_cw")]
- [patchconstantfunc("TessellationFunction")]
- [outputcontrolpoints(3)]
- VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
- {
- return patch[id];
- }
- [domain("tri")]
- VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
- {
- VertexInput o = (VertexInput) 0;
- o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
- o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
- o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
- o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
- o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
- #if defined(ASE_PHONG_TESSELLATION)
- float3 pp[3];
- for (int i = 0; i < 3; ++i)
- 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));
- float phongStrength = _TessPhongStrength;
- o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
- #endif
- UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
- return VertexFunction(o);
- }
- #else
- VertexOutput vert ( VertexInput v )
- {
- return VertexFunction( v );
- }
- #endif
- half4 frag(VertexOutput IN ) : SV_TARGET
- {
- SurfaceDescription surfaceDescription = (SurfaceDescription)0;
- float4 texCoord48 = IN.ase_texcoord;
- texCoord48.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
- float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
- float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
- float2 uv_dissolve = IN.ase_texcoord1.xy * _dissolve_ST.xy + _dissolve_ST.zw;
- float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
- float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _Soft_value ) , tex2D( _dissolve, panner31 ).r);
- float2 uv_Turb_Noise = IN.ase_texcoord1.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
- float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * 1.0 ) + uv_Turb_Noise);
- float2 uv_Main_Tex = IN.ase_texcoord1.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
- float2 panner19 = ( 1.0 * _Time.y * ( _Main_UV * 1.0 ) + uv_Main_Tex);
- float4 texCoord45 = IN.ase_texcoord;
- texCoord45.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
- float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
- float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
- float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
- float2 uv_Mask = IN.ase_texcoord1.xy * _Mask_ST.xy + _Mask_ST.zw;
- float2 panner65 = ( 1.0 * _Time.y * ( _Mask_UV * float2( 0,0 ) ) + uv_Mask);
- float4 tex2DNode37 = tex2D( _Mask, panner65 );
- float lerpResult75 = lerp( tex2DNode37.r , tex2DNode37.a , _CustomDataMainUV1);
-
- surfaceDescription.Alpha = ( smoothstepResult33 * _Alpha * tex2DNode10.a * IN.ase_color.a * _Main_Color.a * lerpResult75 );
- surfaceDescription.AlphaClipThreshold = 0.5;
- #if _ALPHATEST_ON
- float alphaClipThreshold = 0.01f;
- #if ALPHA_CLIP_THRESHOLD
- alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
- #endif
- clip(surfaceDescription.Alpha - alphaClipThreshold);
- #endif
- half4 outColor = 0;
- outColor = _SelectionID;
- return outColor;
- }
- ENDHLSL
- }
-
- Pass
- {
-
- Name "DepthNormals"
- Tags { "LightMode"="DepthNormalsOnly" }
- ZTest LEqual
- ZWrite On
- HLSLPROGRAM
- #pragma multi_compile_instancing
- #define _RECEIVE_SHADOWS_OFF 1
- #define _SURFACE_TYPE_TRANSPARENT 1
- #define ASE_SRP_VERSION 120108
- #pragma vertex vert
- #pragma fragment frag
- #define ATTRIBUTES_NEED_NORMAL
- #define ATTRIBUTES_NEED_TANGENT
- #define VARYINGS_NEED_NORMAL_WS
- #define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
-
- struct VertexInput
- {
- float4 vertex : POSITION;
- float3 ase_normal : NORMAL;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct VertexOutput
- {
- float4 clipPos : SV_POSITION;
- float3 normalWS : TEXCOORD0;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_texcoord2 : TEXCOORD2;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- UNITY_VERTEX_OUTPUT_STEREO
- };
- CBUFFER_START(UnityPerMaterial)
- float4 _Turb_Noise_ST;
- float4 _Main_Tex_ST;
- float4 _Main_Color;
- float4 _dissolve_ST;
- float4 _Mask_ST;
- float2 _Turb_UV;
- float2 _Mask_UV;
- float2 _Main_UV;
- float2 _Diss_UV;
- float _Alpha;
- float _CTime;
- float _Diss_value;
- float _CustomDataDissolve;
- float _light;
- float _CustomDataMainUV;
- float _Turb_Value;
- float _Soft_value;
- float _CustomDataMainUV1;
- #ifdef ASE_TESSELLATION
- float _TessPhongStrength;
- float _TessValue;
- float _TessMin;
- float _TessMax;
- float _TessEdgeLength;
- float _TessMaxDisp;
- #endif
- CBUFFER_END
- sampler2D _dissolve;
- sampler2D _Main_Tex;
- sampler2D _Turb_Noise;
- sampler2D _Mask;
-
- struct SurfaceDescription
- {
- float Alpha;
- float AlphaClipThreshold;
- };
- VertexOutput VertexFunction(VertexInput v )
- {
- VertexOutput o;
- ZERO_INITIALIZE(VertexOutput, o);
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_TRANSFER_INSTANCE_ID(v, o);
- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
- o.ase_texcoord1 = v.ase_texcoord1;
- o.ase_texcoord2.xy = v.ase_texcoord.xy;
- o.ase_color = v.ase_color;
-
- //setting value to unused interpolator channels and avoid initialization warnings
- o.ase_texcoord2.zw = 0;
- #ifdef ASE_ABSOLUTE_VERTEX_POS
- float3 defaultVertexValue = v.vertex.xyz;
- #else
- float3 defaultVertexValue = float3(0, 0, 0);
- #endif
- float3 vertexValue = defaultVertexValue;
- #ifdef ASE_ABSOLUTE_VERTEX_POS
- v.vertex.xyz = vertexValue;
- #else
- v.vertex.xyz += vertexValue;
- #endif
- v.ase_normal = v.ase_normal;
- float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
- float3 normalWS = TransformObjectToWorldNormal(v.ase_normal);
- o.clipPos = TransformWorldToHClip(positionWS);
- o.normalWS.xyz = normalWS;
- return o;
- }
- #if defined(ASE_TESSELLATION)
- struct VertexControl
- {
- float4 vertex : INTERNALTESSPOS;
- float3 ase_normal : NORMAL;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct TessellationFactors
- {
- float edge[3] : SV_TessFactor;
- float inside : SV_InsideTessFactor;
- };
- VertexControl vert ( VertexInput v )
- {
- VertexControl o;
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_TRANSFER_INSTANCE_ID(v, o);
- o.vertex = v.vertex;
- o.ase_normal = v.ase_normal;
- o.ase_texcoord1 = v.ase_texcoord1;
- o.ase_texcoord = v.ase_texcoord;
- o.ase_color = v.ase_color;
- return o;
- }
- TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
- {
- TessellationFactors o;
- float4 tf = 1;
- float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
- float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
- #if defined(ASE_FIXED_TESSELLATION)
- tf = FixedTess( tessValue );
- #elif defined(ASE_DISTANCE_TESSELLATION)
- tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
- #elif defined(ASE_LENGTH_TESSELLATION)
- tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
- #elif defined(ASE_LENGTH_CULL_TESSELLATION)
- tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
- #endif
- o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
- return o;
- }
- [domain("tri")]
- [partitioning("fractional_odd")]
- [outputtopology("triangle_cw")]
- [patchconstantfunc("TessellationFunction")]
- [outputcontrolpoints(3)]
- VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
- {
- return patch[id];
- }
- [domain("tri")]
- VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
- {
- VertexInput o = (VertexInput) 0;
- o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
- o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
- o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
- o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
- o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
- #if defined(ASE_PHONG_TESSELLATION)
- float3 pp[3];
- for (int i = 0; i < 3; ++i)
- 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));
- float phongStrength = _TessPhongStrength;
- o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
- #endif
- UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
- return VertexFunction(o);
- }
- #else
- VertexOutput vert ( VertexInput v )
- {
- return VertexFunction( v );
- }
- #endif
- half4 frag(VertexOutput IN ) : SV_TARGET
- {
- SurfaceDescription surfaceDescription = (SurfaceDescription)0;
- float4 texCoord48 = IN.ase_texcoord1;
- texCoord48.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
- float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
- float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
- float2 uv_dissolve = IN.ase_texcoord2.xy * _dissolve_ST.xy + _dissolve_ST.zw;
- float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
- float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _Soft_value ) , tex2D( _dissolve, panner31 ).r);
- float2 uv_Turb_Noise = IN.ase_texcoord2.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
- float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * 1.0 ) + uv_Turb_Noise);
- float2 uv_Main_Tex = IN.ase_texcoord2.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
- float2 panner19 = ( 1.0 * _Time.y * ( _Main_UV * 1.0 ) + uv_Main_Tex);
- float4 texCoord45 = IN.ase_texcoord1;
- texCoord45.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
- float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
- float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
- float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
- float2 uv_Mask = IN.ase_texcoord2.xy * _Mask_ST.xy + _Mask_ST.zw;
- float2 panner65 = ( 1.0 * _Time.y * ( _Mask_UV * float2( 0,0 ) ) + uv_Mask);
- float4 tex2DNode37 = tex2D( _Mask, panner65 );
- float lerpResult75 = lerp( tex2DNode37.r , tex2DNode37.a , _CustomDataMainUV1);
-
- surfaceDescription.Alpha = ( smoothstepResult33 * _Alpha * tex2DNode10.a * IN.ase_color.a * _Main_Color.a * lerpResult75 );
- surfaceDescription.AlphaClipThreshold = 0.5;
- #if _ALPHATEST_ON
- clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold);
- #endif
- #ifdef LOD_FADE_CROSSFADE
- LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
- #endif
- float3 normalWS = IN.normalWS;
- return half4(NormalizeNormalPerPixel(normalWS), 0.0);
- }
- ENDHLSL
- }
-
- Pass
- {
-
- Name "DepthNormalsOnly"
- Tags { "LightMode"="DepthNormalsOnly" }
- ZTest LEqual
- ZWrite On
- HLSLPROGRAM
- #pragma multi_compile_instancing
- #define _RECEIVE_SHADOWS_OFF 1
- #define _SURFACE_TYPE_TRANSPARENT 1
- #define ASE_SRP_VERSION 120108
- #pragma exclude_renderers glcore gles gles3
- #pragma vertex vert
- #pragma fragment frag
- #define ATTRIBUTES_NEED_NORMAL
- #define ATTRIBUTES_NEED_TANGENT
- #define ATTRIBUTES_NEED_TEXCOORD1
- #define VARYINGS_NEED_NORMAL_WS
- #define VARYINGS_NEED_TANGENT_WS
- #define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
-
- struct VertexInput
- {
- float4 vertex : POSITION;
- float3 ase_normal : NORMAL;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct VertexOutput
- {
- float4 clipPos : SV_POSITION;
- float3 normalWS : TEXCOORD0;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_texcoord2 : TEXCOORD2;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- UNITY_VERTEX_OUTPUT_STEREO
- };
- CBUFFER_START(UnityPerMaterial)
- float4 _Turb_Noise_ST;
- float4 _Main_Tex_ST;
- float4 _Main_Color;
- float4 _dissolve_ST;
- float4 _Mask_ST;
- float2 _Turb_UV;
- float2 _Mask_UV;
- float2 _Main_UV;
- float2 _Diss_UV;
- float _Alpha;
- float _CTime;
- float _Diss_value;
- float _CustomDataDissolve;
- float _light;
- float _CustomDataMainUV;
- float _Turb_Value;
- float _Soft_value;
- float _CustomDataMainUV1;
- #ifdef ASE_TESSELLATION
- float _TessPhongStrength;
- float _TessValue;
- float _TessMin;
- float _TessMax;
- float _TessEdgeLength;
- float _TessMaxDisp;
- #endif
- CBUFFER_END
- sampler2D _dissolve;
- sampler2D _Main_Tex;
- sampler2D _Turb_Noise;
- sampler2D _Mask;
-
- struct SurfaceDescription
- {
- float Alpha;
- float AlphaClipThreshold;
- };
- VertexOutput VertexFunction(VertexInput v )
- {
- VertexOutput o;
- ZERO_INITIALIZE(VertexOutput, o);
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_TRANSFER_INSTANCE_ID(v, o);
- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
- o.ase_texcoord1 = v.ase_texcoord1;
- o.ase_texcoord2.xy = v.ase_texcoord.xy;
- o.ase_color = v.ase_color;
-
- //setting value to unused interpolator channels and avoid initialization warnings
- o.ase_texcoord2.zw = 0;
- #ifdef ASE_ABSOLUTE_VERTEX_POS
- float3 defaultVertexValue = v.vertex.xyz;
- #else
- float3 defaultVertexValue = float3(0, 0, 0);
- #endif
- float3 vertexValue = defaultVertexValue;
- #ifdef ASE_ABSOLUTE_VERTEX_POS
- v.vertex.xyz = vertexValue;
- #else
- v.vertex.xyz += vertexValue;
- #endif
- v.ase_normal = v.ase_normal;
- float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
- float3 normalWS = TransformObjectToWorldNormal(v.ase_normal);
- o.clipPos = TransformWorldToHClip(positionWS);
- o.normalWS.xyz = normalWS;
- return o;
- }
- #if defined(ASE_TESSELLATION)
- struct VertexControl
- {
- float4 vertex : INTERNALTESSPOS;
- float3 ase_normal : NORMAL;
- float4 ase_texcoord1 : TEXCOORD1;
- float4 ase_texcoord : TEXCOORD0;
- float4 ase_color : COLOR;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct TessellationFactors
- {
- float edge[3] : SV_TessFactor;
- float inside : SV_InsideTessFactor;
- };
- VertexControl vert ( VertexInput v )
- {
- VertexControl o;
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_TRANSFER_INSTANCE_ID(v, o);
- o.vertex = v.vertex;
- o.ase_normal = v.ase_normal;
- o.ase_texcoord1 = v.ase_texcoord1;
- o.ase_texcoord = v.ase_texcoord;
- o.ase_color = v.ase_color;
- return o;
- }
- TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
- {
- TessellationFactors o;
- float4 tf = 1;
- float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
- float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
- #if defined(ASE_FIXED_TESSELLATION)
- tf = FixedTess( tessValue );
- #elif defined(ASE_DISTANCE_TESSELLATION)
- tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
- #elif defined(ASE_LENGTH_TESSELLATION)
- tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
- #elif defined(ASE_LENGTH_CULL_TESSELLATION)
- tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
- #endif
- o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
- return o;
- }
- [domain("tri")]
- [partitioning("fractional_odd")]
- [outputtopology("triangle_cw")]
- [patchconstantfunc("TessellationFunction")]
- [outputcontrolpoints(3)]
- VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
- {
- return patch[id];
- }
- [domain("tri")]
- VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
- {
- VertexInput o = (VertexInput) 0;
- o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
- o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
- o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
- o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
- o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
- #if defined(ASE_PHONG_TESSELLATION)
- float3 pp[3];
- for (int i = 0; i < 3; ++i)
- 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));
- float phongStrength = _TessPhongStrength;
- o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
- #endif
- UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
- return VertexFunction(o);
- }
- #else
- VertexOutput vert ( VertexInput v )
- {
- return VertexFunction( v );
- }
- #endif
- half4 frag(VertexOutput IN ) : SV_TARGET
- {
- SurfaceDescription surfaceDescription = (SurfaceDescription)0;
- float4 texCoord48 = IN.ase_texcoord1;
- texCoord48.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
- float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
- float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
- float2 uv_dissolve = IN.ase_texcoord2.xy * _dissolve_ST.xy + _dissolve_ST.zw;
- float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
- float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _Soft_value ) , tex2D( _dissolve, panner31 ).r);
- float2 uv_Turb_Noise = IN.ase_texcoord2.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
- float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * 1.0 ) + uv_Turb_Noise);
- float2 uv_Main_Tex = IN.ase_texcoord2.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
- float2 panner19 = ( 1.0 * _Time.y * ( _Main_UV * 1.0 ) + uv_Main_Tex);
- float4 texCoord45 = IN.ase_texcoord1;
- texCoord45.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
- float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
- float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
- float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
- float2 uv_Mask = IN.ase_texcoord2.xy * _Mask_ST.xy + _Mask_ST.zw;
- float2 panner65 = ( 1.0 * _Time.y * ( _Mask_UV * float2( 0,0 ) ) + uv_Mask);
- float4 tex2DNode37 = tex2D( _Mask, panner65 );
- float lerpResult75 = lerp( tex2DNode37.r , tex2DNode37.a , _CustomDataMainUV1);
-
- surfaceDescription.Alpha = ( smoothstepResult33 * _Alpha * tex2DNode10.a * IN.ase_color.a * _Main_Color.a * lerpResult75 );
- surfaceDescription.AlphaClipThreshold = 0.5;
- #if _ALPHATEST_ON
- clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold);
- #endif
- #ifdef LOD_FADE_CROSSFADE
- LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
- #endif
- float3 normalWS = IN.normalWS;
- return half4(NormalizeNormalPerPixel(normalWS), 0.0);
- }
- ENDHLSL
- }
-
- }
-
- CustomEditor "UnityEditor.ShaderGraphUnlitGUI"
- FallBack "Hidden/Shader Graph/FallbackError"
-
- Fallback "Hidden/InternalErrorShader"
- }
- /*ASEBEGIN
- Version=19105
- Node;AmplifyShaderEditor.CommentaryNode;22;-2105.63,-240.8798;Inherit;False;1495.365;1020.31;Comment;16;16;18;19;17;14;11;15;12;20;13;46;59;60;61;62;73;;1,1,1,1;0;0
- Node;AmplifyShaderEditor.CommentaryNode;39;-2211.743,831.0613;Inherit;False;808.6021;543.3561;Comment;6;45;44;43;42;41;40;数据流控制 uv 滚动;1,1,1,1;0;0
- Node;AmplifyShaderEditor.Vector2Node;13;-2000.162,-9.00322;Float;False;Property;_Turb_UV;Turb_UV;10;0;Create;True;0;0;0;False;0;False;0,0;0.34,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
- Node;AmplifyShaderEditor.FunctionNode;59;-1957.849,684.8309;Inherit;False;CombatTiem;0;;3;6465787bb8dbe784ea48b961c788deef;0;0;1;FLOAT;0
- Node;AmplifyShaderEditor.CommentaryNode;56;-1380.696,1089.031;Inherit;False;641.1201;500.7061;Comment;6;51;49;48;32;50;69;;1,1,1,1;0;0
- Node;AmplifyShaderEditor.Vector2Node;30;-1315.274,898.8879;Float;False;Property;_Diss_UV;Diss_UV;15;0;Create;True;0;0;0;False;0;False;0,0;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
- Node;AmplifyShaderEditor.PannerNode;12;-1709.95,-39.18789;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
- Node;AmplifyShaderEditor.RangedFloatNode;40;-1953.16,1262.573;Inherit;False;Property;_CustomDataMainUV;CustomDataMainUV;7;0;Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
- Node;AmplifyShaderEditor.DynamicAppendNode;44;-1896.038,906.0115;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
- Node;AmplifyShaderEditor.TextureCoordinatesNode;18;-1919.318,402.2365;Inherit;False;0;10;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
- Node;AmplifyShaderEditor.RangedFloatNode;51;-1330.696,1474.337;Inherit;False;Property;_CustomDataDissolve;CustomDataDissolve;14;0;Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
- Node;AmplifyShaderEditor.FunctionNode;66;-495.3539,1826.354;Inherit;False;CombatTiem;0;;5;6465787bb8dbe784ea48b961c788deef;0;0;1;FLOAT;0
- Node;AmplifyShaderEditor.SamplerNode;11;-1454.453,-68.04037;Inherit;True;Property;_Turb_Noise;Turb_Noise;8;0;Create;True;0;0;0;False;0;False;-1;None;ba8e3153c88e4af40a789c9067028654;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
- Node;AmplifyShaderEditor.TextureCoordinatesNode;48;-1221.662,1253.969;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
- Node;AmplifyShaderEditor.Vector2Node;68;-486.153,1699.273;Float;False;Property;_Mask_UV;Mask_UV;17;0;Create;False;0;0;0;False;0;False;0,0;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
- Node;AmplifyShaderEditor.SimpleMultiplyOpNode;64;-1136.475,947.9694;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
- Node;AmplifyShaderEditor.TextureCoordinatesNode;29;-1294,776.9401;Inherit;False;0;28;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
- Node;AmplifyShaderEditor.SimpleAddOpNode;41;-1696.486,908.3846;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
- Node;AmplifyShaderEditor.RangedFloatNode;16;-1363.593,179.8082;Float;False;Property;_Turb_Value;Turb_Value;9;0;Create;True;0;0;0;False;0;False;0;-0.14;0;0;0;1;FLOAT;0
- Node;AmplifyShaderEditor.RangedFloatNode;32;-1110.199,1139.031;Float;False;Property;_Diss_value;Diss_value;12;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
- Node;AmplifyShaderEditor.PannerNode;19;-1621.324,464.6074;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
- Node;AmplifyShaderEditor.RoundOpNode;43;-1555.143,1109.573;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
- Node;AmplifyShaderEditor.RoundOpNode;49;-1046.297,1440.184;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
- Node;AmplifyShaderEditor.LerpOp;50;-873.476,1428.276;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
- Node;AmplifyShaderEditor.TextureCoordinatesNode;38;-469.3394,1518.796;Inherit;False;0;37;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
- Node;AmplifyShaderEditor.SimpleMultiplyOpNode;67;-308.3539,1750.354;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
- Node;AmplifyShaderEditor.PannerNode;31;-988.3259,835.3927;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
- Node;AmplifyShaderEditor.RangedFloatNode;34;-665.1521,1408.687;Float;False;Property;_Soft_value;Soft_value;13;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
- Node;AmplifyShaderEditor.SimpleMultiplyOpNode;15;-1140.439,22.43915;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
- Node;AmplifyShaderEditor.SamplerNode;28;-780.1833,832.465;Inherit;True;Property;_dissolve;dissolve;11;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
- Node;AmplifyShaderEditor.PannerNode;65;-241.2869,1611.327;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
- Node;AmplifyShaderEditor.LerpOp;69;-889.1187,1142.983;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
- Node;AmplifyShaderEditor.SimpleAddOpNode;35;-461.4336,1273.171;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
- Node;AmplifyShaderEditor.SimpleAddOpNode;17;-845.2657,43.11723;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
- Node;AmplifyShaderEditor.VertexColorNode;27;-457.5723,413.3982;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
- Node;AmplifyShaderEditor.SmoothstepOpNode;33;-259.1566,927.1394;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
- Node;AmplifyShaderEditor.ColorNode;26;-478.6241,211.8819;Float;False;Property;_Main_Color;Main_Color;2;1;[HDR];Create;True;0;0;0;False;0;False;1,1,1,1;1,1,1,1;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
- Node;AmplifyShaderEditor.SamplerNode;37;-41.70288,1510.922;Inherit;True;Property;_Mask;Mask;16;0;Create;True;0;0;0;False;0;False;-1;None;c82f6b2fb4f9fdc42b5c1d7f523eb952;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
- Node;AmplifyShaderEditor.RangedFloatNode;25;-218.4993,1165.523;Inherit;False;Property;_Alpha;Alpha;4;0;Create;True;0;0;0;False;0;False;1;1;0;1;0;1;FLOAT;0
- Node;AmplifyShaderEditor.SimpleMultiplyOpNode;23;-177.6045,131.307;Inherit;True;3;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;1;COLOR;0
- Node;AmplifyShaderEditor.SimpleMultiplyOpNode;70;176.3574,215.2679;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
- Node;AmplifyShaderEditor.RangedFloatNode;71;24.25736,358.2679;Inherit;False;Property;_light;亮度;3;0;Create;False;0;0;0;False;0;False;1;1;0;0;0;1;FLOAT;0
- Node;AmplifyShaderEditor.SimpleMultiplyOpNode;36;159.732,861.6415;Inherit;False;6;6;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;1;FLOAT;0
- Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;0;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;0;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
- Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;7;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;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;Hidden/InternalErrorShader;0;0;Standard;0;False;0
- Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;9;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;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;Hidden/InternalErrorShader;0;0;Standard;0;False;0
- Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;3;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;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;Hidden/InternalErrorShader;0;0;Standard;0;False;0
- Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;2;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;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;Hidden/InternalErrorShader;0;0;Standard;0;False;0
- Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;1;398.8127,118.6854;Float;False;True;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;13;LT/AlphaMoveTurbDissolve;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;UniversalMaterialType=Unlit;True;3;True;7;d3d11;glcore;gles;gles3;metal;vulkan;ps5;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;True;2;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=UniversalForwardOnly;False;False;0;Hidden/InternalErrorShader;0;0;Standard;23;Surface;1;637910504726801164; Blend;0;0;Two Sided;0;637919111376163442;Forward Only;0;0;Cast Shadows;0;637910503133663964; Use Shadow Threshold;0;0;Receive Shadows;0;637910503141455090;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
- Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;4;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;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;Hidden/InternalErrorShader;0;0;Standard;0;False;0
- Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;5;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;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;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;True;2;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=Universal2D;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
- Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;6;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;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;Hidden/InternalErrorShader;0;0;Standard;0;False;0
- Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;8;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;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;Hidden/InternalErrorShader;0;0;Standard;0;False;0
- Node;AmplifyShaderEditor.FunctionNode;63;-1323.475,1023.969;Inherit;False;CombatTiem;0;;6;6465787bb8dbe784ea48b961c788deef;0;0;1;FLOAT;0
- Node;AmplifyShaderEditor.FunctionNode;62;-2033.332,143.8488;Inherit;False;CombatTiem;0;;7;6465787bb8dbe784ea48b961c788deef;0;0;1;FLOAT;0
- Node;AmplifyShaderEditor.TextureCoordinatesNode;14;-2055.63,-190.8798;Inherit;False;0;11;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
- Node;AmplifyShaderEditor.SamplerNode;10;-568.9546,-20.36676;Inherit;True;Property;_Main_Tex;Main_Tex;5;0;Create;True;0;0;0;False;0;False;-1;None;0245012cb01649a4cb7c52cdf73cf9d0;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
- Node;AmplifyShaderEditor.Vector2Node;20;-1956.617,546.7686;Float;False;Property;_Main_UV;Main_UV;6;0;Create;True;0;0;0;False;0;False;0,0;1.39,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
- Node;AmplifyShaderEditor.LerpOp;46;-1209.387,515.3032;Inherit;False;3;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;1;FLOAT2;0
- Node;AmplifyShaderEditor.TextureCoordinatesNode;45;-2161.742,881.0615;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
- Node;AmplifyShaderEditor.TextureCoordinatesNode;42;-1920.383,1077.022;Inherit;False;0;10;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
- Node;AmplifyShaderEditor.SimpleMultiplyOpNode;60;-1744.325,610.8806;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
- Node;AmplifyShaderEditor.RangedFloatNode;73;-1974.191,223.6252;Inherit;False;Constant;_Float1;Float 1;16;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
- Node;AmplifyShaderEditor.SimpleMultiplyOpNode;61;-1844.332,71.8488;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
- Node;AmplifyShaderEditor.RangedFloatNode;72;-1778.355,717.684;Inherit;False;Constant;_Float0;Float 0;16;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
- Node;AmplifyShaderEditor.LerpOp;75;307.676,1762.991;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
- Node;AmplifyShaderEditor.RangedFloatNode;74;49.44926,1819.848;Inherit;False;Property;_CustomDataMainUV1;maskAlpha;18;1;[Enum];Create;False;0;2;ParticCtrlMainUVOff;0;ParticCtrlMainUVOn;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0
- WireConnection;12;0;14;0
- WireConnection;12;2;61;0
- WireConnection;44;0;45;3
- WireConnection;44;1;45;4
- WireConnection;11;1;12;0
- WireConnection;64;0;30;0
- WireConnection;64;1;63;0
- WireConnection;41;0;44;0
- WireConnection;41;1;42;0
- WireConnection;19;0;18;0
- WireConnection;19;2;60;0
- WireConnection;43;0;40;0
- WireConnection;49;0;51;0
- WireConnection;50;0;32;0
- WireConnection;50;1;48;1
- WireConnection;50;2;49;0
- WireConnection;67;0;68;0
- WireConnection;31;0;29;0
- WireConnection;31;2;64;0
- WireConnection;15;0;11;1
- WireConnection;15;1;16;0
- WireConnection;28;1;31;0
- WireConnection;65;0;38;0
- WireConnection;65;2;67;0
- WireConnection;69;0;32;0
- WireConnection;69;1;48;1
- WireConnection;69;2;51;0
- WireConnection;35;0;50;0
- WireConnection;35;1;34;0
- WireConnection;17;0;15;0
- WireConnection;17;1;46;0
- WireConnection;33;0;28;1
- WireConnection;33;1;69;0
- WireConnection;33;2;35;0
- WireConnection;37;1;65;0
- WireConnection;23;0;10;0
- WireConnection;23;1;26;0
- WireConnection;23;2;27;0
- WireConnection;70;0;23;0
- WireConnection;70;1;71;0
- WireConnection;36;0;33;0
- WireConnection;36;1;25;0
- WireConnection;36;2;10;4
- WireConnection;36;3;27;4
- WireConnection;36;4;26;4
- WireConnection;36;5;75;0
- WireConnection;1;2;70;0
- WireConnection;1;3;36;0
- WireConnection;10;1;17;0
- WireConnection;46;0;19;0
- WireConnection;46;1;41;0
- WireConnection;46;2;43;0
- WireConnection;60;0;20;0
- WireConnection;60;1;72;0
- WireConnection;61;0;13;0
- WireConnection;61;1;73;0
- WireConnection;75;0;37;1
- WireConnection;75;1;37;4
- WireConnection;75;2;74;0
- ASEEND*/
- //CHKSM=D299C33E979EC27404EBA8969B3400E8CFBA8C53
|