PT_Rock_Shader.shader 196 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611
  1. // Made with Amplify Shader Editor v1.9.8
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "Polytope Studio/PT_Rock_Shader"
  4. {
  5. Properties
  6. {
  7. [HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
  8. [HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
  9. [NoScaleOffset]_BaseTexture("Base Texture", 2D) = "white" {}
  10. _Smoothness("Smoothness", Range( 0 , 1)) = 0.2
  11. [Toggle(_GRADIENTONOFF_ON)] _GRADIENTONOFF("GRADIENT ON/OFF", Float) = 0
  12. [HDR]_TopColor("Top Color", Color) = (0.4811321,0.4036026,0.2382966,1)
  13. [HDR]_GroundColor("Ground Color", Color) = (0.08490568,0.05234205,0.04846032,1)
  14. [HideInInspector]_SnowDirection("Snow Direction", Vector) = (0.1,1,0.1,0)
  15. _Gradient("Gradient ", Range( 0 , 1)) = 1
  16. [Toggle]_WorldObjectGradient("World/Object Gradient", Float) = 1
  17. [Toggle(_DECALSONOFF_ON)] _DECALSONOFF("DECALS ON/OFF", Float) = 0
  18. [NoScaleOffset]_DecalsTexture("Decals Texture", 2D) = "white" {}
  19. _DecalsColor("Decals Color", Color) = (0,0,0,0)
  20. [Toggle]_DECALEMISSIONONOFF("DECAL EMISSION ON/OFF", Float) = 1
  21. [HDR]_DecakEmissionColor("Decak Emission Color", Color) = (1,0.9248579,0,0)
  22. _DecalEmissionIntensity("Decal Emission Intensity", Range( 0 , 10)) = 4
  23. [Toggle]_ANIMATEDECALEMISSIONONOFF("ANIMATE DECAL EMISSION ON/OFF", Float) = 1
  24. [Toggle(_DETAILTEXTUREONOFF_ON)] _DETAILTEXTUREONOFF("DETAIL TEXTURE ON/OFF", Float) = 0
  25. [NoScaleOffset]_DetailTexture("Detail Texture", 2D) = "white" {}
  26. _DetailTextureTiling("Detail Texture Tiling", Range( 0.1 , 10)) = 0.5
  27. [Toggle(_SNOWONOFF_ON)] _SNOWONOFF("SNOW ON/OFF", Float) = 0
  28. _SnowCoverage("Snow Coverage", Range( 0 , 1)) = 0.46
  29. _SnowAmount("Snow Amount", Range( 0 , 1)) = 1
  30. _SnowFade("Snow Fade", Range( 0 , 1)) = 0.32
  31. [Toggle]_SnowNoiseOnOff("Snow Noise On/Off", Float) = 1
  32. _SnowNoiseScale("Snow Noise Scale", Range( 0 , 100)) = 87.23351
  33. _SnowNoiseContrast("Snow Noise Contrast", Range( 0 , 1)) = 0.002
  34. [HideInInspector]_Vector1("Vector 1", Vector) = (0,1,0,0)
  35. [Toggle(_TOPPROJECTIONONOFF_ON)] _TOPPROJECTIONONOFF("TOP PROJECTION ON/OFF", Float) = 0
  36. [NoScaleOffset]_TopProjectionTexture("Top Projection Texture", 2D) = "white" {}
  37. _TopProjectionTextureTiling("Top Projection Texture Tiling", Range( 0.1 , 10)) = 0.5
  38. _TopProjectionTextureCoverage("Top Projection Texture Coverage", Range( 0 , 1)) = 1
  39. [HDR]_OreColor("Ore Color", Color) = (1,0.9248579,0,0)
  40. [Toggle]_OREEMISSIONONOFF("ORE EMISSION ON/OFF", Float) = 0
  41. [HDR]_OreEmissionColor("Ore Emission Color", Color) = (1,0.9248579,0,0)
  42. _OreEmissionIntensity("Ore Emission Intensity", Range( 0 , 10)) = 1
  43. [Toggle]_ANIMATEOREEMISSIONONOFF("ANIMATE ORE EMISSION ON/OFF", Float) = 0
  44. [HideInInspector] _texcoord2( "", 2D ) = "white" {}
  45. [HideInInspector] _texcoord( "", 2D ) = "white" {}
  46. //_TransmissionShadow( "Transmission Shadow", Range( 0, 1 ) ) = 0.5
  47. //_TransStrength( "Trans Strength", Range( 0, 50 ) ) = 1
  48. //_TransNormal( "Trans Normal Distortion", Range( 0, 1 ) ) = 0.5
  49. //_TransScattering( "Trans Scattering", Range( 1, 50 ) ) = 2
  50. //_TransDirect( "Trans Direct", Range( 0, 1 ) ) = 0.9
  51. //_TransAmbient( "Trans Ambient", Range( 0, 1 ) ) = 0.1
  52. //_TransShadow( "Trans Shadow", Range( 0, 1 ) ) = 0.5
  53. //_TessPhongStrength( "Tess Phong Strength", Range( 0, 1 ) ) = 0.5
  54. //_TessValue( "Tess Max Tessellation", Range( 1, 32 ) ) = 16
  55. //_TessMin( "Tess Min Distance", Float ) = 10
  56. //_TessMax( "Tess Max Distance", Float ) = 25
  57. //_TessEdgeLength ( "Tess Edge length", Range( 2, 50 ) ) = 16
  58. //_TessMaxDisp( "Tess Max Displacement", Float ) = 25
  59. [HideInInspector][ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1
  60. [HideInInspector][ToggleOff] _EnvironmentReflections("Environment Reflections", Float) = 1
  61. [HideInInspector][ToggleOff] _ReceiveShadows("Receive Shadows", Float) = 1.0
  62. [HideInInspector] _QueueOffset("_QueueOffset", Float) = 0
  63. [HideInInspector] _QueueControl("_QueueControl", Float) = -1
  64. [HideInInspector][NoScaleOffset] unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
  65. [HideInInspector][NoScaleOffset] unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
  66. [HideInInspector][NoScaleOffset] unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
  67. //[HideInInspector][ToggleUI] _AddPrecomputedVelocity("Add Precomputed Velocity", Float) = 1
  68. }
  69. SubShader
  70. {
  71. LOD 0
  72. Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Opaque" "Queue"="Geometry" "UniversalMaterialType"="Lit" }
  73. Cull Back
  74. ZWrite On
  75. ZTest LEqual
  76. Offset 0 , 0
  77. AlphaToMask Off
  78. HLSLINCLUDE
  79. #pragma target 4.5
  80. #pragma prefer_hlslcc gles
  81. // ensure rendering platforms toggle list is visible
  82. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
  83. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl"
  84. #ifndef ASE_TESS_FUNCS
  85. #define ASE_TESS_FUNCS
  86. float4 FixedTess( float tessValue )
  87. {
  88. return tessValue;
  89. }
  90. float CalcDistanceTessFactor (float4 vertex, float minDist, float maxDist, float tess, float4x4 o2w, float3 cameraPos )
  91. {
  92. float3 wpos = mul(o2w,vertex).xyz;
  93. float dist = distance (wpos, cameraPos);
  94. float f = clamp(1.0 - (dist - minDist) / (maxDist - minDist), 0.01, 1.0) * tess;
  95. return f;
  96. }
  97. float4 CalcTriEdgeTessFactors (float3 triVertexFactors)
  98. {
  99. float4 tess;
  100. tess.x = 0.5 * (triVertexFactors.y + triVertexFactors.z);
  101. tess.y = 0.5 * (triVertexFactors.x + triVertexFactors.z);
  102. tess.z = 0.5 * (triVertexFactors.x + triVertexFactors.y);
  103. tess.w = (triVertexFactors.x + triVertexFactors.y + triVertexFactors.z) / 3.0f;
  104. return tess;
  105. }
  106. float CalcEdgeTessFactor (float3 wpos0, float3 wpos1, float edgeLen, float3 cameraPos, float4 scParams )
  107. {
  108. float dist = distance (0.5 * (wpos0+wpos1), cameraPos);
  109. float len = distance(wpos0, wpos1);
  110. float f = max(len * scParams.y / (edgeLen * dist), 1.0);
  111. return f;
  112. }
  113. float DistanceFromPlane (float3 pos, float4 plane)
  114. {
  115. float d = dot (float4(pos,1.0f), plane);
  116. return d;
  117. }
  118. bool WorldViewFrustumCull (float3 wpos0, float3 wpos1, float3 wpos2, float cullEps, float4 planes[6] )
  119. {
  120. float4 planeTest;
  121. planeTest.x = (( DistanceFromPlane(wpos0, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
  122. (( DistanceFromPlane(wpos1, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
  123. (( DistanceFromPlane(wpos2, planes[0]) > -cullEps) ? 1.0f : 0.0f );
  124. planeTest.y = (( DistanceFromPlane(wpos0, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
  125. (( DistanceFromPlane(wpos1, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
  126. (( DistanceFromPlane(wpos2, planes[1]) > -cullEps) ? 1.0f : 0.0f );
  127. planeTest.z = (( DistanceFromPlane(wpos0, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
  128. (( DistanceFromPlane(wpos1, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
  129. (( DistanceFromPlane(wpos2, planes[2]) > -cullEps) ? 1.0f : 0.0f );
  130. planeTest.w = (( DistanceFromPlane(wpos0, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
  131. (( DistanceFromPlane(wpos1, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
  132. (( DistanceFromPlane(wpos2, planes[3]) > -cullEps) ? 1.0f : 0.0f );
  133. return !all (planeTest);
  134. }
  135. float4 DistanceBasedTess( float4 v0, float4 v1, float4 v2, float tess, float minDist, float maxDist, float4x4 o2w, float3 cameraPos )
  136. {
  137. float3 f;
  138. f.x = CalcDistanceTessFactor (v0,minDist,maxDist,tess,o2w,cameraPos);
  139. f.y = CalcDistanceTessFactor (v1,minDist,maxDist,tess,o2w,cameraPos);
  140. f.z = CalcDistanceTessFactor (v2,minDist,maxDist,tess,o2w,cameraPos);
  141. return CalcTriEdgeTessFactors (f);
  142. }
  143. float4 EdgeLengthBasedTess( float4 v0, float4 v1, float4 v2, float edgeLength, float4x4 o2w, float3 cameraPos, float4 scParams )
  144. {
  145. float3 pos0 = mul(o2w,v0).xyz;
  146. float3 pos1 = mul(o2w,v1).xyz;
  147. float3 pos2 = mul(o2w,v2).xyz;
  148. float4 tess;
  149. tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
  150. tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
  151. tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
  152. tess.w = (tess.x + tess.y + tess.z) / 3.0f;
  153. return tess;
  154. }
  155. float4 EdgeLengthBasedTessCull( float4 v0, float4 v1, float4 v2, float edgeLength, float maxDisplacement, float4x4 o2w, float3 cameraPos, float4 scParams, float4 planes[6] )
  156. {
  157. float3 pos0 = mul(o2w,v0).xyz;
  158. float3 pos1 = mul(o2w,v1).xyz;
  159. float3 pos2 = mul(o2w,v2).xyz;
  160. float4 tess;
  161. if (WorldViewFrustumCull(pos0, pos1, pos2, maxDisplacement, planes))
  162. {
  163. tess = 0.0f;
  164. }
  165. else
  166. {
  167. tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
  168. tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
  169. tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
  170. tess.w = (tess.x + tess.y + tess.z) / 3.0f;
  171. }
  172. return tess;
  173. }
  174. #endif //ASE_TESS_FUNCS
  175. ENDHLSL
  176. Pass
  177. {
  178. Name "Forward"
  179. Tags { "LightMode"="UniversalForward" }
  180. Blend One Zero, One Zero
  181. ZWrite On
  182. ZTest LEqual
  183. Offset 0 , 0
  184. ColorMask RGBA
  185. HLSLPROGRAM
  186. #pragma multi_compile_fragment _ALPHATEST_ON
  187. #define _NORMAL_DROPOFF_TS 1
  188. #pragma shader_feature_local _RECEIVE_SHADOWS_OFF
  189. #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
  190. #pragma multi_compile_instancing
  191. #pragma instancing_options renderinglayer
  192. #pragma multi_compile _ LOD_FADE_CROSSFADE
  193. #pragma multi_compile_fog
  194. #define ASE_FOG 1
  195. #define _EMISSION
  196. #define ASE_VERSION 19800
  197. #define ASE_SRP_VERSION 170003
  198. #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
  199. #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
  200. #pragma multi_compile _ EVALUATE_SH_MIXED EVALUATE_SH_VERTEX
  201. #pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS
  202. #pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING
  203. #pragma multi_compile_fragment _ _REFLECTION_PROBE_BOX_PROJECTION
  204. #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
  205. #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
  206. #pragma multi_compile _ _LIGHT_LAYERS
  207. #pragma multi_compile_fragment _ _LIGHT_COOKIES
  208. #pragma multi_compile _ _FORWARD_PLUS
  209. #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
  210. #pragma multi_compile _ SHADOWS_SHADOWMASK
  211. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  212. #pragma multi_compile _ LIGHTMAP_ON
  213. #pragma multi_compile _ DYNAMICLIGHTMAP_ON
  214. #pragma multi_compile _ USE_LEGACY_LIGHTMAPS
  215. #pragma vertex vert
  216. #pragma fragment frag
  217. #if defined(_SPECULAR_SETUP) && defined(_ASE_LIGHTING_SIMPLE)
  218. #define _SPECULAR_COLOR 1
  219. #endif
  220. #define SHADERPASS SHADERPASS_FORWARD
  221. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  222. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
  223. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl"
  224. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  225. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  226. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  227. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  228. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  229. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  230. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  231. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
  232. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
  233. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl"
  234. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  235. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
  236. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  237. #if defined(LOD_FADE_CROSSFADE)
  238. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
  239. #endif
  240. #if defined(UNITY_INSTANCING_ENABLED) && defined(_TERRAIN_INSTANCED_PERPIXEL_NORMAL)
  241. #define ENABLE_TERRAIN_PERPIXEL_NORMAL
  242. #endif
  243. #define ASE_NEEDS_FRAG_WORLD_POSITION
  244. #define ASE_NEEDS_FRAG_WORLD_NORMAL
  245. #define ASE_NEEDS_FRAG_COLOR
  246. #pragma shader_feature_local _SNOWONOFF_ON
  247. #pragma shader_feature_local _TOPPROJECTIONONOFF_ON
  248. #pragma shader_feature_local _DECALSONOFF_ON
  249. #pragma shader_feature_local _DETAILTEXTUREONOFF_ON
  250. #pragma shader_feature_local _GRADIENTONOFF_ON
  251. #if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45)
  252. #define ASE_SV_DEPTH SV_DepthLessEqual
  253. #define ASE_SV_POSITION_QUALIFIERS linear noperspective centroid
  254. #else
  255. #define ASE_SV_DEPTH SV_Depth
  256. #define ASE_SV_POSITION_QUALIFIERS
  257. #endif
  258. struct Attributes
  259. {
  260. float4 positionOS : POSITION;
  261. float3 normalOS : NORMAL;
  262. float4 tangentOS : TANGENT;
  263. float4 texcoord : TEXCOORD0;
  264. float4 texcoord1 : TEXCOORD1;
  265. float4 texcoord2 : TEXCOORD2;
  266. float4 ase_color : COLOR;
  267. UNITY_VERTEX_INPUT_INSTANCE_ID
  268. };
  269. struct PackedVaryings
  270. {
  271. ASE_SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION;
  272. float4 clipPosV : TEXCOORD0;
  273. float4 lightmapUVOrVertexSH : TEXCOORD1;
  274. #if defined(ASE_FOG) || defined(_ADDITIONAL_LIGHTS_VERTEX)
  275. half4 fogFactorAndVertexLight : TEXCOORD2;
  276. #endif
  277. float4 tSpace0 : TEXCOORD3;
  278. float4 tSpace1 : TEXCOORD4;
  279. float4 tSpace2 : TEXCOORD5;
  280. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  281. float4 shadowCoord : TEXCOORD6;
  282. #endif
  283. #if defined(DYNAMICLIGHTMAP_ON)
  284. float2 dynamicLightmapUV : TEXCOORD7;
  285. #endif
  286. #if defined(USE_APV_PROBE_OCCLUSION)
  287. float4 probeOcclusion : TEXCOORD8;
  288. #endif
  289. float4 ase_texcoord9 : TEXCOORD9;
  290. float4 ase_texcoord10 : TEXCOORD10;
  291. float4 ase_color : COLOR;
  292. UNITY_VERTEX_INPUT_INSTANCE_ID
  293. UNITY_VERTEX_OUTPUT_STEREO
  294. };
  295. CBUFFER_START(UnityPerMaterial)
  296. float4 _GroundColor;
  297. float4 _TopColor;
  298. float4 _DecalsColor;
  299. float4 _DecakEmissionColor;
  300. float4 _OreColor;
  301. float4 _OreEmissionColor;
  302. float3 _Vector1;
  303. float3 _SnowDirection;
  304. float _ANIMATEOREEMISSIONONOFF;
  305. float _OreEmissionIntensity;
  306. float _OREEMISSIONONOFF;
  307. float _ANIMATEDECALEMISSIONONOFF;
  308. float _DecalEmissionIntensity;
  309. float _DECALEMISSIONONOFF;
  310. float _SnowNoiseContrast;
  311. float _SnowCoverage;
  312. float _SnowFade;
  313. float _SnowAmount;
  314. float _SnowNoiseOnOff;
  315. float _TopProjectionTextureCoverage;
  316. float _TopProjectionTextureTiling;
  317. float _DetailTextureTiling;
  318. float _Gradient;
  319. float _WorldObjectGradient;
  320. float _SnowNoiseScale;
  321. float _Smoothness;
  322. #ifdef ASE_TRANSMISSION
  323. float _TransmissionShadow;
  324. #endif
  325. #ifdef ASE_TRANSLUCENCY
  326. float _TransStrength;
  327. float _TransNormal;
  328. float _TransScattering;
  329. float _TransDirect;
  330. float _TransAmbient;
  331. float _TransShadow;
  332. #endif
  333. #ifdef ASE_TESSELLATION
  334. float _TessPhongStrength;
  335. float _TessValue;
  336. float _TessMin;
  337. float _TessMax;
  338. float _TessEdgeLength;
  339. float _TessMaxDisp;
  340. #endif
  341. CBUFFER_END
  342. #ifdef SCENEPICKINGPASS
  343. float4 _SelectionID;
  344. #endif
  345. #ifdef SCENESELECTIONPASS
  346. int _ObjectId;
  347. int _PassValue;
  348. #endif
  349. sampler2D _BaseTexture;
  350. sampler2D _DetailTexture;
  351. sampler2D _DecalsTexture;
  352. sampler2D _TopProjectionTexture;
  353. inline float4 TriplanarSampling173( sampler2D topTexMap, sampler2D midTexMap, sampler2D botTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index )
  354. {
  355. float3 projNormal = ( pow( abs( worldNormal ), falloff ) );
  356. projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001;
  357. float3 nsign = sign( worldNormal );
  358. float negProjNormalY = max( 0, projNormal.y * -nsign.y );
  359. projNormal.y = max( 0, projNormal.y * nsign.y );
  360. half4 xNorm; half4 yNorm; half4 yNormN; half4 zNorm;
  361. xNorm = tex2D( midTexMap, tiling * worldPos.zy * float2( nsign.x, 1.0 ) );
  362. yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
  363. yNormN = tex2D( botTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
  364. zNorm = tex2D( midTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) );
  365. return xNorm * projNormal.x + yNorm * projNormal.y + yNormN * negProjNormalY + zNorm * projNormal.z;
  366. }
  367. inline float4 TriplanarSampling525( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index )
  368. {
  369. float3 projNormal = ( pow( abs( worldNormal ), falloff ) );
  370. projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001;
  371. float3 nsign = sign( worldNormal );
  372. half4 xNorm; half4 yNorm; half4 zNorm;
  373. xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2( nsign.x, 1.0 ) );
  374. yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
  375. zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) );
  376. return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z;
  377. }
  378. float3 mod2D289( float3 x ) { return x - floor( x * ( 1.0 / 289.0 ) ) * 289.0; }
  379. float2 mod2D289( float2 x ) { return x - floor( x * ( 1.0 / 289.0 ) ) * 289.0; }
  380. float3 permute( float3 x ) { return mod2D289( ( ( x * 34.0 ) + 1.0 ) * x ); }
  381. float snoise( float2 v )
  382. {
  383. const float4 C = float4( 0.211324865405187, 0.366025403784439, -0.577350269189626, 0.024390243902439 );
  384. float2 i = floor( v + dot( v, C.yy ) );
  385. float2 x0 = v - i + dot( i, C.xx );
  386. float2 i1;
  387. i1 = ( x0.x > x0.y ) ? float2( 1.0, 0.0 ) : float2( 0.0, 1.0 );
  388. float4 x12 = x0.xyxy + C.xxzz;
  389. x12.xy -= i1;
  390. i = mod2D289( i );
  391. float3 p = permute( permute( i.y + float3( 0.0, i1.y, 1.0 ) ) + i.x + float3( 0.0, i1.x, 1.0 ) );
  392. float3 m = max( 0.5 - float3( dot( x0, x0 ), dot( x12.xy, x12.xy ), dot( x12.zw, x12.zw ) ), 0.0 );
  393. m = m * m;
  394. m = m * m;
  395. float3 x = 2.0 * frac( p * C.www ) - 1.0;
  396. float3 h = abs( x ) - 0.5;
  397. float3 ox = floor( x + 0.5 );
  398. float3 a0 = x - ox;
  399. m *= 1.79284291400159 - 0.85373472095314 * ( a0 * a0 + h * h );
  400. float3 g;
  401. g.x = a0.x * x0.x + h.x * x0.y;
  402. g.yz = a0.yz * x12.xz + h.yz * x12.yw;
  403. return 130.0 * dot( m, g );
  404. }
  405. PackedVaryings VertexFunction( Attributes input )
  406. {
  407. PackedVaryings output = (PackedVaryings)0;
  408. UNITY_SETUP_INSTANCE_ID(input);
  409. UNITY_TRANSFER_INSTANCE_ID(input, output);
  410. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  411. output.ase_texcoord9.xy = input.texcoord.xy;
  412. output.ase_texcoord10 = input.positionOS;
  413. output.ase_texcoord9.zw = input.texcoord1.xy;
  414. output.ase_color = input.ase_color;
  415. #ifdef ASE_ABSOLUTE_VERTEX_POS
  416. float3 defaultVertexValue = input.positionOS.xyz;
  417. #else
  418. float3 defaultVertexValue = float3(0, 0, 0);
  419. #endif
  420. float3 vertexValue = defaultVertexValue;
  421. #ifdef ASE_ABSOLUTE_VERTEX_POS
  422. input.positionOS.xyz = vertexValue;
  423. #else
  424. input.positionOS.xyz += vertexValue;
  425. #endif
  426. input.normalOS = input.normalOS;
  427. input.tangentOS = input.tangentOS;
  428. VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
  429. VertexNormalInputs normalInput = GetVertexNormalInputs( input.normalOS, input.tangentOS );
  430. output.tSpace0 = float4( normalInput.normalWS, vertexInput.positionWS.x );
  431. output.tSpace1 = float4( normalInput.tangentWS, vertexInput.positionWS.y );
  432. output.tSpace2 = float4( normalInput.bitangentWS, vertexInput.positionWS.z );
  433. #if defined(LIGHTMAP_ON)
  434. OUTPUT_LIGHTMAP_UV( input.texcoord1, unity_LightmapST, output.lightmapUVOrVertexSH.xy );
  435. #endif
  436. #if defined(DYNAMICLIGHTMAP_ON)
  437. output.dynamicLightmapUV.xy = input.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw;
  438. #endif
  439. OUTPUT_SH4( vertexInput.positionWS, normalInput.normalWS.xyz, GetWorldSpaceNormalizeViewDir( vertexInput.positionWS ), output.lightmapUVOrVertexSH.xyz, output.probeOcclusion );
  440. #if defined(ENABLE_TERRAIN_PERPIXEL_NORMAL)
  441. output.lightmapUVOrVertexSH.zw = input.texcoord.xy;
  442. output.lightmapUVOrVertexSH.xy = input.texcoord.xy * unity_LightmapST.xy + unity_LightmapST.zw;
  443. #endif
  444. #if defined(ASE_FOG) || defined(_ADDITIONAL_LIGHTS_VERTEX)
  445. output.fogFactorAndVertexLight = 0;
  446. #if defined(ASE_FOG) && !defined(_FOG_FRAGMENT)
  447. output.fogFactorAndVertexLight.x = ComputeFogFactor(vertexInput.positionCS.z);
  448. #endif
  449. #ifdef _ADDITIONAL_LIGHTS_VERTEX
  450. half3 vertexLight = VertexLighting( vertexInput.positionWS, normalInput.normalWS );
  451. output.fogFactorAndVertexLight.yzw = vertexLight;
  452. #endif
  453. #endif
  454. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  455. output.shadowCoord = GetShadowCoord( vertexInput );
  456. #endif
  457. output.positionCS = vertexInput.positionCS;
  458. output.clipPosV = vertexInput.positionCS;
  459. return output;
  460. }
  461. #if defined(ASE_TESSELLATION)
  462. struct VertexControl
  463. {
  464. float4 positionOS : INTERNALTESSPOS;
  465. float3 normalOS : NORMAL;
  466. float4 tangentOS : TANGENT;
  467. float4 texcoord : TEXCOORD0;
  468. float4 texcoord1 : TEXCOORD1;
  469. float4 texcoord2 : TEXCOORD2;
  470. float4 ase_color : COLOR;
  471. UNITY_VERTEX_INPUT_INSTANCE_ID
  472. };
  473. struct TessellationFactors
  474. {
  475. float edge[3] : SV_TessFactor;
  476. float inside : SV_InsideTessFactor;
  477. };
  478. VertexControl vert ( Attributes input )
  479. {
  480. VertexControl output;
  481. UNITY_SETUP_INSTANCE_ID(input);
  482. UNITY_TRANSFER_INSTANCE_ID(input, output);
  483. output.positionOS = input.positionOS;
  484. output.normalOS = input.normalOS;
  485. output.tangentOS = input.tangentOS;
  486. output.texcoord = input.texcoord;
  487. output.texcoord1 = input.texcoord1;
  488. output.texcoord2 = input.texcoord2;
  489. output.ase_color = input.ase_color;
  490. return output;
  491. }
  492. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  493. {
  494. TessellationFactors output;
  495. float4 tf = 1;
  496. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  497. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  498. #if defined(ASE_FIXED_TESSELLATION)
  499. tf = FixedTess( tessValue );
  500. #elif defined(ASE_DISTANCE_TESSELLATION)
  501. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  502. #elif defined(ASE_LENGTH_TESSELLATION)
  503. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  504. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  505. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  506. #endif
  507. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  508. return output;
  509. }
  510. [domain("tri")]
  511. [partitioning("fractional_odd")]
  512. [outputtopology("triangle_cw")]
  513. [patchconstantfunc("TessellationFunction")]
  514. [outputcontrolpoints(3)]
  515. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  516. {
  517. return patch[id];
  518. }
  519. [domain("tri")]
  520. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  521. {
  522. Attributes output = (Attributes) 0;
  523. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  524. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  525. output.tangentOS = patch[0].tangentOS * bary.x + patch[1].tangentOS * bary.y + patch[2].tangentOS * bary.z;
  526. output.texcoord = patch[0].texcoord * bary.x + patch[1].texcoord * bary.y + patch[2].texcoord * bary.z;
  527. output.texcoord1 = patch[0].texcoord1 * bary.x + patch[1].texcoord1 * bary.y + patch[2].texcoord1 * bary.z;
  528. output.texcoord2 = patch[0].texcoord2 * bary.x + patch[1].texcoord2 * bary.y + patch[2].texcoord2 * bary.z;
  529. output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  530. #if defined(ASE_PHONG_TESSELLATION)
  531. float3 pp[3];
  532. for (int i = 0; i < 3; ++i)
  533. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  534. float phongStrength = _TessPhongStrength;
  535. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  536. #endif
  537. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  538. return VertexFunction(output);
  539. }
  540. #else
  541. PackedVaryings vert ( Attributes input )
  542. {
  543. return VertexFunction( input );
  544. }
  545. #endif
  546. half4 frag ( PackedVaryings input
  547. #ifdef ASE_DEPTH_WRITE_ON
  548. ,out float outputDepth : ASE_SV_DEPTH
  549. #endif
  550. #ifdef _WRITE_RENDERING_LAYERS
  551. , out float4 outRenderingLayers : SV_Target1
  552. #endif
  553. ) : SV_Target
  554. {
  555. UNITY_SETUP_INSTANCE_ID(input);
  556. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
  557. #if defined(LOD_FADE_CROSSFADE)
  558. LODFadeCrossFade( input.positionCS );
  559. #endif
  560. #if defined(ENABLE_TERRAIN_PERPIXEL_NORMAL)
  561. float2 sampleCoords = (input.lightmapUVOrVertexSH.zw / _TerrainHeightmapRecipSize.zw + 0.5f) * _TerrainHeightmapRecipSize.xy;
  562. float3 WorldNormal = TransformObjectToWorldNormal(normalize(SAMPLE_TEXTURE2D(_TerrainNormalmapTexture, sampler_TerrainNormalmapTexture, sampleCoords).rgb * 2 - 1));
  563. float3 WorldTangent = -cross(GetObjectToWorldMatrix()._13_23_33, WorldNormal);
  564. float3 WorldBiTangent = cross(WorldNormal, -WorldTangent);
  565. #else
  566. float3 WorldNormal = normalize( input.tSpace0.xyz );
  567. float3 WorldTangent = input.tSpace1.xyz;
  568. float3 WorldBiTangent = input.tSpace2.xyz;
  569. #endif
  570. float3 WorldPosition = float3(input.tSpace0.w,input.tSpace1.w,input.tSpace2.w);
  571. float3 WorldViewDirection = _WorldSpaceCameraPos.xyz - WorldPosition;
  572. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  573. float4 ClipPos = input.clipPosV;
  574. float4 ScreenPos = ComputeScreenPos( input.clipPosV );
  575. float2 NormalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(input.positionCS);
  576. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  577. ShadowCoords = input.shadowCoord;
  578. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  579. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  580. #endif
  581. WorldViewDirection = SafeNormalize( WorldViewDirection );
  582. float2 uv_BaseTexture490 = input.ase_texcoord9.xy;
  583. float4 BASETEXTURE498 = tex2D( _BaseTexture, uv_BaseTexture490 );
  584. float clampResult627 = clamp( ( ( (( _WorldObjectGradient )?( input.ase_texcoord10.y ):( WorldPosition.y )) + 1.5 ) * _Gradient ) , -1.0 , 1.0 );
  585. float4 lerpResult629 = lerp( _GroundColor , _TopColor , clampResult627);
  586. float4 Gradient630 = lerpResult629;
  587. float4 color644 = IsGammaSpace() ? float4(0.8962264,0.8962264,0.8962264,0) : float4(0.7799658,0.7799658,0.7799658,0);
  588. float4 blendOpSrc643 = BASETEXTURE498;
  589. float4 blendOpDest643 = color644;
  590. #ifdef _GRADIENTONOFF_ON
  591. float4 staticSwitch634 = ( Gradient630 * ( saturate( (( blendOpSrc643 > 0.5 ) ? ( 1.0 - ( 1.0 - 2.0 * ( blendOpSrc643 - 0.5 ) ) * ( 1.0 - blendOpDest643 ) ) : ( 2.0 * blendOpSrc643 * blendOpDest643 ) ) )) );
  592. #else
  593. float4 staticSwitch634 = BASETEXTURE498;
  594. #endif
  595. float2 temp_cast_0 = (_DetailTextureTiling).xx;
  596. float4 triplanar173 = TriplanarSampling173( _DetailTexture, _DetailTexture, _DetailTexture, WorldPosition, WorldNormal, 1.0, temp_cast_0, float3( 1,1,1 ), float3(0,0,0) );
  597. float4 DETAILTEXTUREvar414 = triplanar173;
  598. #ifdef _DETAILTEXTUREONOFF_ON
  599. float4 staticSwitch543 = ( DETAILTEXTUREvar414 * staticSwitch634 );
  600. #else
  601. float4 staticSwitch543 = staticSwitch634;
  602. #endif
  603. float4 decalscolor730 = _DecalsColor;
  604. float2 uv1_DecalsTexture495 = input.ase_texcoord9.zw;
  605. float DECALSMASK497 = tex2D( _DecalsTexture, uv1_DecalsTexture495 ).a;
  606. float4 lerpResult596 = lerp( staticSwitch543 , decalscolor730 , DECALSMASK497);
  607. #ifdef _DECALSONOFF_ON
  608. float4 staticSwitch600 = lerpResult596;
  609. #else
  610. float4 staticSwitch600 = staticSwitch543;
  611. #endif
  612. float2 temp_cast_4 = (_TopProjectionTextureTiling).xx;
  613. float4 triplanar525 = TriplanarSampling525( _TopProjectionTexture, WorldPosition, WorldNormal, 1.0, temp_cast_4, 1.0, 0 );
  614. float4 TOPPROJECTION527 = triplanar525;
  615. float dotResult524 = dot( WorldNormal , _Vector1 );
  616. float saferPower582 = abs( ( ( dotResult524 * _TopProjectionTextureCoverage ) * 3.0 ) );
  617. float clampResult584 = clamp( pow( saferPower582 , 5.0 ) , 0.0 , 1.0 );
  618. float TOPPROJECTIONMASK528 = clampResult584;
  619. float4 lerpResult555 = lerp( staticSwitch600 , TOPPROJECTION527 , TOPPROJECTIONMASK528);
  620. #ifdef _TOPPROJECTIONONOFF_ON
  621. float4 staticSwitch557 = lerpResult555;
  622. #else
  623. float4 staticSwitch557 = staticSwitch600;
  624. #endif
  625. float4 color205 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
  626. float dotResult211 = dot( WorldNormal , _SnowDirection );
  627. float smoothstepResult552 = smoothstep( 0.0 , _SnowFade , ( (-1.0 + (_SnowCoverage - 0.0) * (1.0 - -1.0) / (1.0 - 0.0)) + dotResult211 ));
  628. float4 temp_output_363_0 = ( ( (0.0 + (_SnowAmount - 0.0) * (10.0 - 0.0) / (1.0 - 0.0)) * color205 ) * smoothstepResult552 );
  629. float4 transform200 = mul(GetWorldToObjectMatrix(),float4( WorldPosition , 0.0 ));
  630. float4 appendResult209 = (float4(transform200.x , transform200.z , 0.0 , 0.0));
  631. float simplePerlin2D213 = snoise( appendResult209.xy*_SnowNoiseScale );
  632. simplePerlin2D213 = simplePerlin2D213*0.5 + 0.5;
  633. float saferPower216 = abs( simplePerlin2D213 );
  634. float4 SNOW220 = (( _SnowNoiseOnOff )?( ( pow( saferPower216 , _SnowNoiseContrast ) * temp_output_363_0 ) ):( temp_output_363_0 ));
  635. #ifdef _SNOWONOFF_ON
  636. float4 staticSwitch545 = ( staticSwitch557 + SNOW220 );
  637. #else
  638. float4 staticSwitch545 = staticSwitch557;
  639. #endif
  640. float4 lerpResult607 = lerp( staticSwitch545 , _OreColor , ( 1.0 - input.ase_color.a ));
  641. float4 COLOR539 = lerpResult607;
  642. float3 temp_cast_9 = (1.0).xxx;
  643. float4 color717 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
  644. float4 color716 = IsGammaSpace() ? float4(0,0,0,0) : float4(0,0,0,0);
  645. float4 lerpResult718 = lerp( color717 , color716 , (_TimeParameters.y*0.3 + 0.5));
  646. float3 desaturateInitialColor720 = lerpResult718.rgb;
  647. float desaturateDot720 = dot( desaturateInitialColor720, float3( 0.299, 0.587, 0.114 ));
  648. float3 desaturateVar720 = lerp( desaturateInitialColor720, desaturateDot720.xxx, 1.0 );
  649. float4 Decalemission685 = (( _DECALEMISSIONONOFF )?( ( ( float4( ( _DecalEmissionIntensity * (( _ANIMATEDECALEMISSIONONOFF )?( desaturateVar720 ):( temp_cast_9 )) ) , 0.0 ) * _DecakEmissionColor ) * DECALSMASK497 ) ):( float4( 0,0,0,0 ) ));
  650. float3 temp_cast_12 = (0.1).xxx;
  651. float4 color701 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
  652. float4 color702 = IsGammaSpace() ? float4(0,0,0,0) : float4(0,0,0,0);
  653. float4 lerpResult703 = lerp( color701 , color702 , (_TimeParameters.y*0.3 + 0.5));
  654. float3 desaturateInitialColor704 = lerpResult703.rgb;
  655. float desaturateDot704 = dot( desaturateInitialColor704, float3( 0.299, 0.587, 0.114 ));
  656. float3 desaturateVar704 = lerp( desaturateInitialColor704, desaturateDot704.xxx, 1.0 );
  657. float4 oreemission684 = (( _OREEMISSIONONOFF )?( ( ( float4( ( _OreEmissionIntensity * (( _ANIMATEOREEMISSIONONOFF )?( desaturateVar704 ):( temp_cast_12 )) ) , 0.0 ) * _OreEmissionColor ) * ( 1.0 - input.ase_color.a ) ) ):( float4( 0,0,0,0 ) ));
  658. float4 color617 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
  659. float3 BaseColor = COLOR539.rgb;
  660. float3 Normal = float3(0, 0, 1);
  661. float3 Emission = ( Decalemission685 + oreemission684 ).rgb;
  662. float3 Specular = 0.5;
  663. float Metallic = 0;
  664. float Smoothness = ( _Smoothness * color617 ).r;
  665. float Occlusion = 1;
  666. float Alpha = 1;
  667. float AlphaClipThreshold = 0.5;
  668. float AlphaClipThresholdShadow = 0.5;
  669. float3 BakedGI = 0;
  670. float3 RefractionColor = 1;
  671. float RefractionIndex = 1;
  672. float3 Transmission = 1;
  673. float3 Translucency = 1;
  674. #ifdef ASE_DEPTH_WRITE_ON
  675. float DepthValue = input.positionCS.z;
  676. #endif
  677. #ifdef _CLEARCOAT
  678. float CoatMask = 0;
  679. float CoatSmoothness = 0;
  680. #endif
  681. #ifdef _ALPHATEST_ON
  682. clip(Alpha - AlphaClipThreshold);
  683. #endif
  684. InputData inputData = (InputData)0;
  685. inputData.positionWS = WorldPosition;
  686. inputData.positionCS = input.positionCS;
  687. inputData.viewDirectionWS = WorldViewDirection;
  688. #ifdef _NORMALMAP
  689. #if _NORMAL_DROPOFF_TS
  690. inputData.normalWS = TransformTangentToWorld(Normal, half3x3(WorldTangent, WorldBiTangent, WorldNormal));
  691. #elif _NORMAL_DROPOFF_OS
  692. inputData.normalWS = TransformObjectToWorldNormal(Normal);
  693. #elif _NORMAL_DROPOFF_WS
  694. inputData.normalWS = Normal;
  695. #endif
  696. inputData.normalWS = NormalizeNormalPerPixel(inputData.normalWS);
  697. #else
  698. inputData.normalWS = WorldNormal;
  699. #endif
  700. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  701. inputData.shadowCoord = ShadowCoords;
  702. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  703. inputData.shadowCoord = TransformWorldToShadowCoord(inputData.positionWS);
  704. #else
  705. inputData.shadowCoord = float4(0, 0, 0, 0);
  706. #endif
  707. #ifdef ASE_FOG
  708. inputData.fogCoord = InitializeInputDataFog(float4(inputData.positionWS, 1.0), input.fogFactorAndVertexLight.x);
  709. #endif
  710. #ifdef _ADDITIONAL_LIGHTS_VERTEX
  711. inputData.vertexLighting = input.fogFactorAndVertexLight.yzw;
  712. #endif
  713. #if defined(ENABLE_TERRAIN_PERPIXEL_NORMAL)
  714. float3 SH = SampleSH(inputData.normalWS.xyz);
  715. #else
  716. float3 SH = input.lightmapUVOrVertexSH.xyz;
  717. #endif
  718. #if defined(DYNAMICLIGHTMAP_ON)
  719. inputData.bakedGI = SAMPLE_GI(input.lightmapUVOrVertexSH.xy, input.dynamicLightmapUV.xy, SH, inputData.normalWS);
  720. inputData.shadowMask = SAMPLE_SHADOWMASK(input.lightmapUVOrVertexSH.xy);
  721. #elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2))
  722. inputData.bakedGI = SAMPLE_GI( SH, GetAbsolutePositionWS(inputData.positionWS),
  723. inputData.normalWS,
  724. inputData.viewDirectionWS,
  725. input.positionCS.xy,
  726. input.probeOcclusion,
  727. inputData.shadowMask );
  728. #else
  729. inputData.bakedGI = SAMPLE_GI(input.lightmapUVOrVertexSH.xy, SH, inputData.normalWS);
  730. inputData.shadowMask = SAMPLE_SHADOWMASK(input.lightmapUVOrVertexSH.xy);
  731. #endif
  732. #ifdef ASE_BAKEDGI
  733. inputData.bakedGI = BakedGI;
  734. #endif
  735. inputData.normalizedScreenSpaceUV = NormalizedScreenSpaceUV;
  736. #if defined(DEBUG_DISPLAY)
  737. #if defined(DYNAMICLIGHTMAP_ON)
  738. inputData.dynamicLightmapUV = input.dynamicLightmapUV.xy;
  739. #endif
  740. #if defined(LIGHTMAP_ON)
  741. inputData.staticLightmapUV = input.lightmapUVOrVertexSH.xy;
  742. #else
  743. inputData.vertexSH = SH;
  744. #endif
  745. #if defined(USE_APV_PROBE_OCCLUSION)
  746. inputData.probeOcclusion = input.probeOcclusion;
  747. #endif
  748. #endif
  749. SurfaceData surfaceData;
  750. surfaceData.albedo = BaseColor;
  751. surfaceData.metallic = saturate(Metallic);
  752. surfaceData.specular = Specular;
  753. surfaceData.smoothness = saturate(Smoothness),
  754. surfaceData.occlusion = Occlusion,
  755. surfaceData.emission = Emission,
  756. surfaceData.alpha = saturate(Alpha);
  757. surfaceData.normalTS = Normal;
  758. surfaceData.clearCoatMask = 0;
  759. surfaceData.clearCoatSmoothness = 1;
  760. #ifdef _CLEARCOAT
  761. surfaceData.clearCoatMask = saturate(CoatMask);
  762. surfaceData.clearCoatSmoothness = saturate(CoatSmoothness);
  763. #endif
  764. #ifdef _DBUFFER
  765. ApplyDecalToSurfaceData(input.positionCS, surfaceData, inputData);
  766. #endif
  767. #ifdef _ASE_LIGHTING_SIMPLE
  768. half4 color = UniversalFragmentBlinnPhong( inputData, surfaceData);
  769. #else
  770. half4 color = UniversalFragmentPBR( inputData, surfaceData);
  771. #endif
  772. #ifdef ASE_TRANSMISSION
  773. {
  774. float shadow = _TransmissionShadow;
  775. #define SUM_LIGHT_TRANSMISSION(Light)\
  776. float3 atten = Light.color * Light.distanceAttenuation;\
  777. atten = lerp( atten, atten * Light.shadowAttenuation, shadow );\
  778. half3 transmission = max( 0, -dot( inputData.normalWS, Light.direction ) ) * atten * Transmission;\
  779. color.rgb += BaseColor * transmission;
  780. SUM_LIGHT_TRANSMISSION( GetMainLight( inputData.shadowCoord ) );
  781. #if defined(_ADDITIONAL_LIGHTS)
  782. uint meshRenderingLayers = GetMeshRenderingLayer();
  783. uint pixelLightCount = GetAdditionalLightsCount();
  784. #if USE_FORWARD_PLUS
  785. [loop] for (uint lightIndex = 0; lightIndex < min(URP_FP_DIRECTIONAL_LIGHTS_COUNT, MAX_VISIBLE_LIGHTS); lightIndex++)
  786. {
  787. FORWARD_PLUS_SUBTRACTIVE_LIGHT_CHECK
  788. Light light = GetAdditionalLight(lightIndex, inputData.positionWS, inputData.shadowMask);
  789. #ifdef _LIGHT_LAYERS
  790. if (IsMatchingLightLayer(light.layerMask, meshRenderingLayers))
  791. #endif
  792. {
  793. SUM_LIGHT_TRANSMISSION( light );
  794. }
  795. }
  796. #endif
  797. LIGHT_LOOP_BEGIN( pixelLightCount )
  798. Light light = GetAdditionalLight(lightIndex, inputData.positionWS, inputData.shadowMask);
  799. #ifdef _LIGHT_LAYERS
  800. if (IsMatchingLightLayer(light.layerMask, meshRenderingLayers))
  801. #endif
  802. {
  803. SUM_LIGHT_TRANSMISSION( light );
  804. }
  805. LIGHT_LOOP_END
  806. #endif
  807. }
  808. #endif
  809. #ifdef ASE_TRANSLUCENCY
  810. {
  811. float shadow = _TransShadow;
  812. float normal = _TransNormal;
  813. float scattering = _TransScattering;
  814. float direct = _TransDirect;
  815. float ambient = _TransAmbient;
  816. float strength = _TransStrength;
  817. #define SUM_LIGHT_TRANSLUCENCY(Light)\
  818. float3 atten = Light.color * Light.distanceAttenuation;\
  819. atten = lerp( atten, atten * Light.shadowAttenuation, shadow );\
  820. half3 lightDir = Light.direction + inputData.normalWS * normal;\
  821. half VdotL = pow( saturate( dot( inputData.viewDirectionWS, -lightDir ) ), scattering );\
  822. half3 translucency = atten * ( VdotL * direct + inputData.bakedGI * ambient ) * Translucency;\
  823. color.rgb += BaseColor * translucency * strength;
  824. SUM_LIGHT_TRANSLUCENCY( GetMainLight( inputData.shadowCoord ) );
  825. #if defined(_ADDITIONAL_LIGHTS)
  826. uint meshRenderingLayers = GetMeshRenderingLayer();
  827. uint pixelLightCount = GetAdditionalLightsCount();
  828. #if USE_FORWARD_PLUS
  829. [loop] for (uint lightIndex = 0; lightIndex < min(URP_FP_DIRECTIONAL_LIGHTS_COUNT, MAX_VISIBLE_LIGHTS); lightIndex++)
  830. {
  831. FORWARD_PLUS_SUBTRACTIVE_LIGHT_CHECK
  832. Light light = GetAdditionalLight(lightIndex, inputData.positionWS, inputData.shadowMask);
  833. #ifdef _LIGHT_LAYERS
  834. if (IsMatchingLightLayer(light.layerMask, meshRenderingLayers))
  835. #endif
  836. {
  837. SUM_LIGHT_TRANSLUCENCY( light );
  838. }
  839. }
  840. #endif
  841. LIGHT_LOOP_BEGIN( pixelLightCount )
  842. Light light = GetAdditionalLight(lightIndex, inputData.positionWS, inputData.shadowMask);
  843. #ifdef _LIGHT_LAYERS
  844. if (IsMatchingLightLayer(light.layerMask, meshRenderingLayers))
  845. #endif
  846. {
  847. SUM_LIGHT_TRANSLUCENCY( light );
  848. }
  849. LIGHT_LOOP_END
  850. #endif
  851. }
  852. #endif
  853. #ifdef ASE_REFRACTION
  854. float4 projScreenPos = ScreenPos / ScreenPos.w;
  855. float3 refractionOffset = ( RefractionIndex - 1.0 ) * mul( UNITY_MATRIX_V, float4( WorldNormal,0 ) ).xyz * ( 1.0 - dot( WorldNormal, WorldViewDirection ) );
  856. projScreenPos.xy += refractionOffset.xy;
  857. float3 refraction = SHADERGRAPH_SAMPLE_SCENE_COLOR( projScreenPos.xy ) * RefractionColor;
  858. color.rgb = lerp( refraction, color.rgb, color.a );
  859. color.a = 1;
  860. #endif
  861. #ifdef ASE_FINAL_COLOR_ALPHA_MULTIPLY
  862. color.rgb *= color.a;
  863. #endif
  864. #ifdef ASE_FOG
  865. #ifdef TERRAIN_SPLAT_ADDPASS
  866. color.rgb = MixFogColor(color.rgb, half3(0,0,0), inputData.fogCoord);
  867. #else
  868. color.rgb = MixFog(color.rgb, inputData.fogCoord);
  869. #endif
  870. #endif
  871. #ifdef ASE_DEPTH_WRITE_ON
  872. outputDepth = DepthValue;
  873. #endif
  874. #ifdef _WRITE_RENDERING_LAYERS
  875. uint renderingLayers = GetMeshRenderingLayer();
  876. outRenderingLayers = float4( EncodeMeshRenderingLayer( renderingLayers ), 0, 0, 0 );
  877. #endif
  878. return color;
  879. }
  880. ENDHLSL
  881. }
  882. Pass
  883. {
  884. Name "ShadowCaster"
  885. Tags { "LightMode"="ShadowCaster" }
  886. ZWrite On
  887. ZTest LEqual
  888. AlphaToMask Off
  889. ColorMask 0
  890. HLSLPROGRAM
  891. #pragma multi_compile _ALPHATEST_ON
  892. #define _NORMAL_DROPOFF_TS 1
  893. #pragma multi_compile_instancing
  894. #pragma multi_compile _ LOD_FADE_CROSSFADE
  895. #define ASE_FOG 1
  896. #define _EMISSION
  897. #define ASE_VERSION 19800
  898. #define ASE_SRP_VERSION 170003
  899. #pragma multi_compile_vertex _ _CASTING_PUNCTUAL_LIGHT_SHADOW
  900. #pragma vertex vert
  901. #pragma fragment frag
  902. #if defined(_SPECULAR_SETUP) && defined(_ASE_LIGHTING_SIMPLE)
  903. #define _SPECULAR_COLOR 1
  904. #endif
  905. #define SHADERPASS SHADERPASS_SHADOWCASTER
  906. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  907. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  908. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  909. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  910. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  911. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  912. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  913. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  914. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
  915. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
  916. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  917. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  918. #if defined(LOD_FADE_CROSSFADE)
  919. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
  920. #endif
  921. #if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45)
  922. #define ASE_SV_DEPTH SV_DepthLessEqual
  923. #define ASE_SV_POSITION_QUALIFIERS linear noperspective centroid
  924. #else
  925. #define ASE_SV_DEPTH SV_Depth
  926. #define ASE_SV_POSITION_QUALIFIERS
  927. #endif
  928. struct Attributes
  929. {
  930. float4 positionOS : POSITION;
  931. float3 normalOS : NORMAL;
  932. UNITY_VERTEX_INPUT_INSTANCE_ID
  933. };
  934. struct PackedVaryings
  935. {
  936. ASE_SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION;
  937. float4 clipPosV : TEXCOORD0;
  938. float3 positionWS : TEXCOORD1;
  939. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  940. float4 shadowCoord : TEXCOORD2;
  941. #endif
  942. UNITY_VERTEX_INPUT_INSTANCE_ID
  943. UNITY_VERTEX_OUTPUT_STEREO
  944. };
  945. CBUFFER_START(UnityPerMaterial)
  946. float4 _GroundColor;
  947. float4 _TopColor;
  948. float4 _DecalsColor;
  949. float4 _DecakEmissionColor;
  950. float4 _OreColor;
  951. float4 _OreEmissionColor;
  952. float3 _Vector1;
  953. float3 _SnowDirection;
  954. float _ANIMATEOREEMISSIONONOFF;
  955. float _OreEmissionIntensity;
  956. float _OREEMISSIONONOFF;
  957. float _ANIMATEDECALEMISSIONONOFF;
  958. float _DecalEmissionIntensity;
  959. float _DECALEMISSIONONOFF;
  960. float _SnowNoiseContrast;
  961. float _SnowCoverage;
  962. float _SnowFade;
  963. float _SnowAmount;
  964. float _SnowNoiseOnOff;
  965. float _TopProjectionTextureCoverage;
  966. float _TopProjectionTextureTiling;
  967. float _DetailTextureTiling;
  968. float _Gradient;
  969. float _WorldObjectGradient;
  970. float _SnowNoiseScale;
  971. float _Smoothness;
  972. #ifdef ASE_TRANSMISSION
  973. float _TransmissionShadow;
  974. #endif
  975. #ifdef ASE_TRANSLUCENCY
  976. float _TransStrength;
  977. float _TransNormal;
  978. float _TransScattering;
  979. float _TransDirect;
  980. float _TransAmbient;
  981. float _TransShadow;
  982. #endif
  983. #ifdef ASE_TESSELLATION
  984. float _TessPhongStrength;
  985. float _TessValue;
  986. float _TessMin;
  987. float _TessMax;
  988. float _TessEdgeLength;
  989. float _TessMaxDisp;
  990. #endif
  991. CBUFFER_END
  992. #ifdef SCENEPICKINGPASS
  993. float4 _SelectionID;
  994. #endif
  995. #ifdef SCENESELECTIONPASS
  996. int _ObjectId;
  997. int _PassValue;
  998. #endif
  999. float3 _LightDirection;
  1000. float3 _LightPosition;
  1001. PackedVaryings VertexFunction( Attributes input )
  1002. {
  1003. PackedVaryings output;
  1004. UNITY_SETUP_INSTANCE_ID(input);
  1005. UNITY_TRANSFER_INSTANCE_ID(input, output);
  1006. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( output );
  1007. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1008. float3 defaultVertexValue = input.positionOS.xyz;
  1009. #else
  1010. float3 defaultVertexValue = float3(0, 0, 0);
  1011. #endif
  1012. float3 vertexValue = defaultVertexValue;
  1013. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1014. input.positionOS.xyz = vertexValue;
  1015. #else
  1016. input.positionOS.xyz += vertexValue;
  1017. #endif
  1018. input.normalOS = input.normalOS;
  1019. float3 positionWS = TransformObjectToWorld( input.positionOS.xyz );
  1020. float3 normalWS = TransformObjectToWorldDir(input.normalOS);
  1021. #if _CASTING_PUNCTUAL_LIGHT_SHADOW
  1022. float3 lightDirectionWS = normalize(_LightPosition - positionWS);
  1023. #else
  1024. float3 lightDirectionWS = _LightDirection;
  1025. #endif
  1026. float4 positionCS = TransformWorldToHClip(ApplyShadowBias(positionWS, normalWS, lightDirectionWS));
  1027. //code for UNITY_REVERSED_Z is moved into Shadows.hlsl from 6000.0.22 and or higher
  1028. positionCS = ApplyShadowClamping(positionCS);
  1029. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  1030. VertexPositionInputs vertexInput = (VertexPositionInputs)0;
  1031. vertexInput.positionWS = positionWS;
  1032. vertexInput.positionCS = positionCS;
  1033. output.shadowCoord = GetShadowCoord( vertexInput );
  1034. #endif
  1035. output.positionCS = positionCS;
  1036. output.clipPosV = positionCS;
  1037. output.positionWS = positionWS;
  1038. return output;
  1039. }
  1040. #if defined(ASE_TESSELLATION)
  1041. struct VertexControl
  1042. {
  1043. float4 positionOS : INTERNALTESSPOS;
  1044. float3 normalOS : NORMAL;
  1045. UNITY_VERTEX_INPUT_INSTANCE_ID
  1046. };
  1047. struct TessellationFactors
  1048. {
  1049. float edge[3] : SV_TessFactor;
  1050. float inside : SV_InsideTessFactor;
  1051. };
  1052. VertexControl vert ( Attributes input )
  1053. {
  1054. VertexControl output;
  1055. UNITY_SETUP_INSTANCE_ID(input);
  1056. UNITY_TRANSFER_INSTANCE_ID(input, output);
  1057. output.positionOS = input.positionOS;
  1058. output.normalOS = input.normalOS;
  1059. return output;
  1060. }
  1061. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  1062. {
  1063. TessellationFactors output;
  1064. float4 tf = 1;
  1065. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1066. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1067. #if defined(ASE_FIXED_TESSELLATION)
  1068. tf = FixedTess( tessValue );
  1069. #elif defined(ASE_DISTANCE_TESSELLATION)
  1070. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1071. #elif defined(ASE_LENGTH_TESSELLATION)
  1072. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1073. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1074. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1075. #endif
  1076. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  1077. return output;
  1078. }
  1079. [domain("tri")]
  1080. [partitioning("fractional_odd")]
  1081. [outputtopology("triangle_cw")]
  1082. [patchconstantfunc("TessellationFunction")]
  1083. [outputcontrolpoints(3)]
  1084. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1085. {
  1086. return patch[id];
  1087. }
  1088. [domain("tri")]
  1089. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1090. {
  1091. Attributes output = (Attributes) 0;
  1092. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  1093. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  1094. #if defined(ASE_PHONG_TESSELLATION)
  1095. float3 pp[3];
  1096. for (int i = 0; i < 3; ++i)
  1097. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  1098. float phongStrength = _TessPhongStrength;
  1099. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  1100. #endif
  1101. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  1102. return VertexFunction(output);
  1103. }
  1104. #else
  1105. PackedVaryings vert ( Attributes input )
  1106. {
  1107. return VertexFunction( input );
  1108. }
  1109. #endif
  1110. half4 frag( PackedVaryings input
  1111. #ifdef ASE_DEPTH_WRITE_ON
  1112. ,out float outputDepth : ASE_SV_DEPTH
  1113. #endif
  1114. ) : SV_Target
  1115. {
  1116. UNITY_SETUP_INSTANCE_ID( input );
  1117. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( input );
  1118. float3 WorldPosition = input.positionWS;
  1119. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  1120. float4 ClipPos = input.clipPosV;
  1121. float4 ScreenPos = ComputeScreenPos( input.clipPosV );
  1122. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  1123. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  1124. ShadowCoords = input.shadowCoord;
  1125. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  1126. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  1127. #endif
  1128. #endif
  1129. float Alpha = 1;
  1130. float AlphaClipThreshold = 0.5;
  1131. float AlphaClipThresholdShadow = 0.5;
  1132. #ifdef ASE_DEPTH_WRITE_ON
  1133. float DepthValue = input.positionCS.z;
  1134. #endif
  1135. #ifdef _ALPHATEST_ON
  1136. #ifdef _ALPHATEST_SHADOW_ON
  1137. clip(Alpha - AlphaClipThresholdShadow);
  1138. #else
  1139. clip(Alpha - AlphaClipThreshold);
  1140. #endif
  1141. #endif
  1142. #if defined(LOD_FADE_CROSSFADE)
  1143. LODFadeCrossFade( input.positionCS );
  1144. #endif
  1145. #ifdef ASE_DEPTH_WRITE_ON
  1146. outputDepth = DepthValue;
  1147. #endif
  1148. return 0;
  1149. }
  1150. ENDHLSL
  1151. }
  1152. Pass
  1153. {
  1154. Name "DepthOnly"
  1155. Tags { "LightMode"="DepthOnly" }
  1156. ZWrite On
  1157. ColorMask R
  1158. AlphaToMask Off
  1159. HLSLPROGRAM
  1160. #pragma multi_compile _ALPHATEST_ON
  1161. #define _NORMAL_DROPOFF_TS 1
  1162. #pragma multi_compile_instancing
  1163. #pragma multi_compile _ LOD_FADE_CROSSFADE
  1164. #define ASE_FOG 1
  1165. #define _EMISSION
  1166. #define ASE_VERSION 19800
  1167. #define ASE_SRP_VERSION 170003
  1168. #pragma vertex vert
  1169. #pragma fragment frag
  1170. #if defined(_SPECULAR_SETUP) && defined(_ASE_LIGHTING_SIMPLE)
  1171. #define _SPECULAR_COLOR 1
  1172. #endif
  1173. #define SHADERPASS SHADERPASS_DEPTHONLY
  1174. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  1175. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1176. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1177. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1178. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1179. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  1180. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1181. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  1182. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
  1183. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1184. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1185. #if defined(LOD_FADE_CROSSFADE)
  1186. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
  1187. #endif
  1188. #if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45)
  1189. #define ASE_SV_DEPTH SV_DepthLessEqual
  1190. #define ASE_SV_POSITION_QUALIFIERS linear noperspective centroid
  1191. #else
  1192. #define ASE_SV_DEPTH SV_Depth
  1193. #define ASE_SV_POSITION_QUALIFIERS
  1194. #endif
  1195. struct Attributes
  1196. {
  1197. float4 positionOS : POSITION;
  1198. float3 normalOS : NORMAL;
  1199. UNITY_VERTEX_INPUT_INSTANCE_ID
  1200. };
  1201. struct PackedVaryings
  1202. {
  1203. ASE_SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION;
  1204. float4 clipPosV : TEXCOORD0;
  1205. float3 positionWS : TEXCOORD1;
  1206. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  1207. float4 shadowCoord : TEXCOORD2;
  1208. #endif
  1209. UNITY_VERTEX_INPUT_INSTANCE_ID
  1210. UNITY_VERTEX_OUTPUT_STEREO
  1211. };
  1212. CBUFFER_START(UnityPerMaterial)
  1213. float4 _GroundColor;
  1214. float4 _TopColor;
  1215. float4 _DecalsColor;
  1216. float4 _DecakEmissionColor;
  1217. float4 _OreColor;
  1218. float4 _OreEmissionColor;
  1219. float3 _Vector1;
  1220. float3 _SnowDirection;
  1221. float _ANIMATEOREEMISSIONONOFF;
  1222. float _OreEmissionIntensity;
  1223. float _OREEMISSIONONOFF;
  1224. float _ANIMATEDECALEMISSIONONOFF;
  1225. float _DecalEmissionIntensity;
  1226. float _DECALEMISSIONONOFF;
  1227. float _SnowNoiseContrast;
  1228. float _SnowCoverage;
  1229. float _SnowFade;
  1230. float _SnowAmount;
  1231. float _SnowNoiseOnOff;
  1232. float _TopProjectionTextureCoverage;
  1233. float _TopProjectionTextureTiling;
  1234. float _DetailTextureTiling;
  1235. float _Gradient;
  1236. float _WorldObjectGradient;
  1237. float _SnowNoiseScale;
  1238. float _Smoothness;
  1239. #ifdef ASE_TRANSMISSION
  1240. float _TransmissionShadow;
  1241. #endif
  1242. #ifdef ASE_TRANSLUCENCY
  1243. float _TransStrength;
  1244. float _TransNormal;
  1245. float _TransScattering;
  1246. float _TransDirect;
  1247. float _TransAmbient;
  1248. float _TransShadow;
  1249. #endif
  1250. #ifdef ASE_TESSELLATION
  1251. float _TessPhongStrength;
  1252. float _TessValue;
  1253. float _TessMin;
  1254. float _TessMax;
  1255. float _TessEdgeLength;
  1256. float _TessMaxDisp;
  1257. #endif
  1258. CBUFFER_END
  1259. #ifdef SCENEPICKINGPASS
  1260. float4 _SelectionID;
  1261. #endif
  1262. #ifdef SCENESELECTIONPASS
  1263. int _ObjectId;
  1264. int _PassValue;
  1265. #endif
  1266. PackedVaryings VertexFunction( Attributes input )
  1267. {
  1268. PackedVaryings output = (PackedVaryings)0;
  1269. UNITY_SETUP_INSTANCE_ID(input);
  1270. UNITY_TRANSFER_INSTANCE_ID(input, output);
  1271. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  1272. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1273. float3 defaultVertexValue = input.positionOS.xyz;
  1274. #else
  1275. float3 defaultVertexValue = float3(0, 0, 0);
  1276. #endif
  1277. float3 vertexValue = defaultVertexValue;
  1278. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1279. input.positionOS.xyz = vertexValue;
  1280. #else
  1281. input.positionOS.xyz += vertexValue;
  1282. #endif
  1283. input.normalOS = input.normalOS;
  1284. VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
  1285. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  1286. output.shadowCoord = GetShadowCoord( vertexInput );
  1287. #endif
  1288. output.positionCS = vertexInput.positionCS;
  1289. output.clipPosV = vertexInput.positionCS;
  1290. output.positionWS = vertexInput.positionWS;
  1291. return output;
  1292. }
  1293. #if defined(ASE_TESSELLATION)
  1294. struct VertexControl
  1295. {
  1296. float4 positionOS : INTERNALTESSPOS;
  1297. float3 normalOS : NORMAL;
  1298. UNITY_VERTEX_INPUT_INSTANCE_ID
  1299. };
  1300. struct TessellationFactors
  1301. {
  1302. float edge[3] : SV_TessFactor;
  1303. float inside : SV_InsideTessFactor;
  1304. };
  1305. VertexControl vert ( Attributes input )
  1306. {
  1307. VertexControl output;
  1308. UNITY_SETUP_INSTANCE_ID(input);
  1309. UNITY_TRANSFER_INSTANCE_ID(input, output);
  1310. output.positionOS = input.positionOS;
  1311. output.normalOS = input.normalOS;
  1312. return output;
  1313. }
  1314. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  1315. {
  1316. TessellationFactors output;
  1317. float4 tf = 1;
  1318. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1319. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1320. #if defined(ASE_FIXED_TESSELLATION)
  1321. tf = FixedTess( tessValue );
  1322. #elif defined(ASE_DISTANCE_TESSELLATION)
  1323. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1324. #elif defined(ASE_LENGTH_TESSELLATION)
  1325. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1326. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1327. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1328. #endif
  1329. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  1330. return output;
  1331. }
  1332. [domain("tri")]
  1333. [partitioning("fractional_odd")]
  1334. [outputtopology("triangle_cw")]
  1335. [patchconstantfunc("TessellationFunction")]
  1336. [outputcontrolpoints(3)]
  1337. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1338. {
  1339. return patch[id];
  1340. }
  1341. [domain("tri")]
  1342. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1343. {
  1344. Attributes output = (Attributes) 0;
  1345. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  1346. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  1347. #if defined(ASE_PHONG_TESSELLATION)
  1348. float3 pp[3];
  1349. for (int i = 0; i < 3; ++i)
  1350. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  1351. float phongStrength = _TessPhongStrength;
  1352. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  1353. #endif
  1354. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  1355. return VertexFunction(output);
  1356. }
  1357. #else
  1358. PackedVaryings vert ( Attributes input )
  1359. {
  1360. return VertexFunction( input );
  1361. }
  1362. #endif
  1363. half4 frag( PackedVaryings input
  1364. #ifdef ASE_DEPTH_WRITE_ON
  1365. ,out float outputDepth : ASE_SV_DEPTH
  1366. #endif
  1367. ) : SV_Target
  1368. {
  1369. UNITY_SETUP_INSTANCE_ID(input);
  1370. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( input );
  1371. float3 WorldPosition = input.positionWS;
  1372. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  1373. float4 ClipPos = input.clipPosV;
  1374. float4 ScreenPos = ComputeScreenPos( input.clipPosV );
  1375. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  1376. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  1377. ShadowCoords = input.shadowCoord;
  1378. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  1379. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  1380. #endif
  1381. #endif
  1382. float Alpha = 1;
  1383. float AlphaClipThreshold = 0.5;
  1384. #ifdef ASE_DEPTH_WRITE_ON
  1385. float DepthValue = input.positionCS.z;
  1386. #endif
  1387. #ifdef _ALPHATEST_ON
  1388. clip(Alpha - AlphaClipThreshold);
  1389. #endif
  1390. #if defined(LOD_FADE_CROSSFADE)
  1391. LODFadeCrossFade( input.positionCS );
  1392. #endif
  1393. #ifdef ASE_DEPTH_WRITE_ON
  1394. outputDepth = DepthValue;
  1395. #endif
  1396. return 0;
  1397. }
  1398. ENDHLSL
  1399. }
  1400. Pass
  1401. {
  1402. Name "Meta"
  1403. Tags { "LightMode"="Meta" }
  1404. Cull Off
  1405. HLSLPROGRAM
  1406. #pragma multi_compile_fragment _ALPHATEST_ON
  1407. #define _NORMAL_DROPOFF_TS 1
  1408. #define ASE_FOG 1
  1409. #define _EMISSION
  1410. #define ASE_VERSION 19800
  1411. #define ASE_SRP_VERSION 170003
  1412. #pragma shader_feature EDITOR_VISUALIZATION
  1413. #pragma vertex vert
  1414. #pragma fragment frag
  1415. #if defined(_SPECULAR_SETUP) && defined(_ASE_LIGHTING_SIMPLE)
  1416. #define _SPECULAR_COLOR 1
  1417. #endif
  1418. #define SHADERPASS SHADERPASS_META
  1419. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1420. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1421. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1422. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1423. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  1424. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1425. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  1426. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
  1427. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
  1428. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1429. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/MetaInput.hlsl"
  1430. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1431. #define ASE_NEEDS_FRAG_WORLD_POSITION
  1432. #define ASE_NEEDS_VERT_NORMAL
  1433. #define ASE_NEEDS_FRAG_COLOR
  1434. #pragma shader_feature_local _SNOWONOFF_ON
  1435. #pragma shader_feature_local _TOPPROJECTIONONOFF_ON
  1436. #pragma shader_feature_local _DECALSONOFF_ON
  1437. #pragma shader_feature_local _DETAILTEXTUREONOFF_ON
  1438. #pragma shader_feature_local _GRADIENTONOFF_ON
  1439. struct Attributes
  1440. {
  1441. float4 positionOS : POSITION;
  1442. float3 normalOS : NORMAL;
  1443. float4 texcoord0 : TEXCOORD0;
  1444. float4 texcoord1 : TEXCOORD1;
  1445. float4 texcoord2 : TEXCOORD2;
  1446. float4 ase_color : COLOR;
  1447. UNITY_VERTEX_INPUT_INSTANCE_ID
  1448. };
  1449. struct PackedVaryings
  1450. {
  1451. float4 positionCS : SV_POSITION;
  1452. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  1453. float3 positionWS : TEXCOORD0;
  1454. #endif
  1455. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  1456. float4 shadowCoord : TEXCOORD1;
  1457. #endif
  1458. #ifdef EDITOR_VISUALIZATION
  1459. float4 VizUV : TEXCOORD2;
  1460. float4 LightCoord : TEXCOORD3;
  1461. #endif
  1462. float4 ase_texcoord4 : TEXCOORD4;
  1463. float4 ase_texcoord5 : TEXCOORD5;
  1464. float4 ase_texcoord6 : TEXCOORD6;
  1465. float4 ase_color : COLOR;
  1466. UNITY_VERTEX_INPUT_INSTANCE_ID
  1467. UNITY_VERTEX_OUTPUT_STEREO
  1468. };
  1469. CBUFFER_START(UnityPerMaterial)
  1470. float4 _GroundColor;
  1471. float4 _TopColor;
  1472. float4 _DecalsColor;
  1473. float4 _DecakEmissionColor;
  1474. float4 _OreColor;
  1475. float4 _OreEmissionColor;
  1476. float3 _Vector1;
  1477. float3 _SnowDirection;
  1478. float _ANIMATEOREEMISSIONONOFF;
  1479. float _OreEmissionIntensity;
  1480. float _OREEMISSIONONOFF;
  1481. float _ANIMATEDECALEMISSIONONOFF;
  1482. float _DecalEmissionIntensity;
  1483. float _DECALEMISSIONONOFF;
  1484. float _SnowNoiseContrast;
  1485. float _SnowCoverage;
  1486. float _SnowFade;
  1487. float _SnowAmount;
  1488. float _SnowNoiseOnOff;
  1489. float _TopProjectionTextureCoverage;
  1490. float _TopProjectionTextureTiling;
  1491. float _DetailTextureTiling;
  1492. float _Gradient;
  1493. float _WorldObjectGradient;
  1494. float _SnowNoiseScale;
  1495. float _Smoothness;
  1496. #ifdef ASE_TRANSMISSION
  1497. float _TransmissionShadow;
  1498. #endif
  1499. #ifdef ASE_TRANSLUCENCY
  1500. float _TransStrength;
  1501. float _TransNormal;
  1502. float _TransScattering;
  1503. float _TransDirect;
  1504. float _TransAmbient;
  1505. float _TransShadow;
  1506. #endif
  1507. #ifdef ASE_TESSELLATION
  1508. float _TessPhongStrength;
  1509. float _TessValue;
  1510. float _TessMin;
  1511. float _TessMax;
  1512. float _TessEdgeLength;
  1513. float _TessMaxDisp;
  1514. #endif
  1515. CBUFFER_END
  1516. #ifdef SCENEPICKINGPASS
  1517. float4 _SelectionID;
  1518. #endif
  1519. #ifdef SCENESELECTIONPASS
  1520. int _ObjectId;
  1521. int _PassValue;
  1522. #endif
  1523. sampler2D _BaseTexture;
  1524. sampler2D _DetailTexture;
  1525. sampler2D _DecalsTexture;
  1526. sampler2D _TopProjectionTexture;
  1527. inline float4 TriplanarSampling173( sampler2D topTexMap, sampler2D midTexMap, sampler2D botTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index )
  1528. {
  1529. float3 projNormal = ( pow( abs( worldNormal ), falloff ) );
  1530. projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001;
  1531. float3 nsign = sign( worldNormal );
  1532. float negProjNormalY = max( 0, projNormal.y * -nsign.y );
  1533. projNormal.y = max( 0, projNormal.y * nsign.y );
  1534. half4 xNorm; half4 yNorm; half4 yNormN; half4 zNorm;
  1535. xNorm = tex2D( midTexMap, tiling * worldPos.zy * float2( nsign.x, 1.0 ) );
  1536. yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
  1537. yNormN = tex2D( botTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
  1538. zNorm = tex2D( midTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) );
  1539. return xNorm * projNormal.x + yNorm * projNormal.y + yNormN * negProjNormalY + zNorm * projNormal.z;
  1540. }
  1541. inline float4 TriplanarSampling525( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index )
  1542. {
  1543. float3 projNormal = ( pow( abs( worldNormal ), falloff ) );
  1544. projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001;
  1545. float3 nsign = sign( worldNormal );
  1546. half4 xNorm; half4 yNorm; half4 zNorm;
  1547. xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2( nsign.x, 1.0 ) );
  1548. yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
  1549. zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) );
  1550. return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z;
  1551. }
  1552. float3 mod2D289( float3 x ) { return x - floor( x * ( 1.0 / 289.0 ) ) * 289.0; }
  1553. float2 mod2D289( float2 x ) { return x - floor( x * ( 1.0 / 289.0 ) ) * 289.0; }
  1554. float3 permute( float3 x ) { return mod2D289( ( ( x * 34.0 ) + 1.0 ) * x ); }
  1555. float snoise( float2 v )
  1556. {
  1557. const float4 C = float4( 0.211324865405187, 0.366025403784439, -0.577350269189626, 0.024390243902439 );
  1558. float2 i = floor( v + dot( v, C.yy ) );
  1559. float2 x0 = v - i + dot( i, C.xx );
  1560. float2 i1;
  1561. i1 = ( x0.x > x0.y ) ? float2( 1.0, 0.0 ) : float2( 0.0, 1.0 );
  1562. float4 x12 = x0.xyxy + C.xxzz;
  1563. x12.xy -= i1;
  1564. i = mod2D289( i );
  1565. float3 p = permute( permute( i.y + float3( 0.0, i1.y, 1.0 ) ) + i.x + float3( 0.0, i1.x, 1.0 ) );
  1566. float3 m = max( 0.5 - float3( dot( x0, x0 ), dot( x12.xy, x12.xy ), dot( x12.zw, x12.zw ) ), 0.0 );
  1567. m = m * m;
  1568. m = m * m;
  1569. float3 x = 2.0 * frac( p * C.www ) - 1.0;
  1570. float3 h = abs( x ) - 0.5;
  1571. float3 ox = floor( x + 0.5 );
  1572. float3 a0 = x - ox;
  1573. m *= 1.79284291400159 - 0.85373472095314 * ( a0 * a0 + h * h );
  1574. float3 g;
  1575. g.x = a0.x * x0.x + h.x * x0.y;
  1576. g.yz = a0.yz * x12.xz + h.yz * x12.yw;
  1577. return 130.0 * dot( m, g );
  1578. }
  1579. PackedVaryings VertexFunction( Attributes input )
  1580. {
  1581. PackedVaryings output = (PackedVaryings)0;
  1582. UNITY_SETUP_INSTANCE_ID(input);
  1583. UNITY_TRANSFER_INSTANCE_ID(input, output);
  1584. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  1585. float3 ase_normalWS = TransformObjectToWorldNormal(input.normalOS);
  1586. output.ase_texcoord6.xyz = ase_normalWS;
  1587. output.ase_texcoord4.xy = input.texcoord0.xy;
  1588. output.ase_texcoord5 = input.positionOS;
  1589. output.ase_texcoord4.zw = input.texcoord1.xy;
  1590. output.ase_color = input.ase_color;
  1591. //setting value to unused interpolator channels and avoid initialization warnings
  1592. output.ase_texcoord6.w = 0;
  1593. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1594. float3 defaultVertexValue = input.positionOS.xyz;
  1595. #else
  1596. float3 defaultVertexValue = float3(0, 0, 0);
  1597. #endif
  1598. float3 vertexValue = defaultVertexValue;
  1599. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1600. input.positionOS.xyz = vertexValue;
  1601. #else
  1602. input.positionOS.xyz += vertexValue;
  1603. #endif
  1604. input.normalOS = input.normalOS;
  1605. float3 positionWS = TransformObjectToWorld( input.positionOS.xyz );
  1606. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  1607. output.positionWS = positionWS;
  1608. #endif
  1609. output.positionCS = MetaVertexPosition( input.positionOS, input.texcoord1.xy, input.texcoord1.xy, unity_LightmapST, unity_DynamicLightmapST );
  1610. #ifdef EDITOR_VISUALIZATION
  1611. float2 VizUV = 0;
  1612. float4 LightCoord = 0;
  1613. UnityEditorVizData(input.positionOS.xyz, input.texcoord0.xy, input.texcoord1.xy, input.texcoord2.xy, VizUV, LightCoord);
  1614. output.VizUV = float4(VizUV, 0, 0);
  1615. output.LightCoord = LightCoord;
  1616. #endif
  1617. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  1618. VertexPositionInputs vertexInput = (VertexPositionInputs)0;
  1619. vertexInput.positionWS = positionWS;
  1620. vertexInput.positionCS = output.positionCS;
  1621. output.shadowCoord = GetShadowCoord( vertexInput );
  1622. #endif
  1623. return output;
  1624. }
  1625. #if defined(ASE_TESSELLATION)
  1626. struct VertexControl
  1627. {
  1628. float4 positionOS : INTERNALTESSPOS;
  1629. float3 normalOS : NORMAL;
  1630. float4 texcoord0 : TEXCOORD0;
  1631. float4 texcoord1 : TEXCOORD1;
  1632. float4 texcoord2 : TEXCOORD2;
  1633. float4 ase_color : COLOR;
  1634. UNITY_VERTEX_INPUT_INSTANCE_ID
  1635. };
  1636. struct TessellationFactors
  1637. {
  1638. float edge[3] : SV_TessFactor;
  1639. float inside : SV_InsideTessFactor;
  1640. };
  1641. VertexControl vert ( Attributes input )
  1642. {
  1643. VertexControl output;
  1644. UNITY_SETUP_INSTANCE_ID(input);
  1645. UNITY_TRANSFER_INSTANCE_ID(input, output);
  1646. output.positionOS = input.positionOS;
  1647. output.normalOS = input.normalOS;
  1648. output.texcoord0 = input.texcoord0;
  1649. output.texcoord1 = input.texcoord1;
  1650. output.texcoord2 = input.texcoord2;
  1651. output.ase_color = input.ase_color;
  1652. return output;
  1653. }
  1654. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  1655. {
  1656. TessellationFactors output;
  1657. float4 tf = 1;
  1658. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1659. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1660. #if defined(ASE_FIXED_TESSELLATION)
  1661. tf = FixedTess( tessValue );
  1662. #elif defined(ASE_DISTANCE_TESSELLATION)
  1663. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1664. #elif defined(ASE_LENGTH_TESSELLATION)
  1665. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1666. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1667. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1668. #endif
  1669. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  1670. return output;
  1671. }
  1672. [domain("tri")]
  1673. [partitioning("fractional_odd")]
  1674. [outputtopology("triangle_cw")]
  1675. [patchconstantfunc("TessellationFunction")]
  1676. [outputcontrolpoints(3)]
  1677. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1678. {
  1679. return patch[id];
  1680. }
  1681. [domain("tri")]
  1682. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1683. {
  1684. Attributes output = (Attributes) 0;
  1685. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  1686. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  1687. output.texcoord0 = patch[0].texcoord0 * bary.x + patch[1].texcoord0 * bary.y + patch[2].texcoord0 * bary.z;
  1688. output.texcoord1 = patch[0].texcoord1 * bary.x + patch[1].texcoord1 * bary.y + patch[2].texcoord1 * bary.z;
  1689. output.texcoord2 = patch[0].texcoord2 * bary.x + patch[1].texcoord2 * bary.y + patch[2].texcoord2 * bary.z;
  1690. output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  1691. #if defined(ASE_PHONG_TESSELLATION)
  1692. float3 pp[3];
  1693. for (int i = 0; i < 3; ++i)
  1694. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  1695. float phongStrength = _TessPhongStrength;
  1696. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  1697. #endif
  1698. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  1699. return VertexFunction(output);
  1700. }
  1701. #else
  1702. PackedVaryings vert ( Attributes input )
  1703. {
  1704. return VertexFunction( input );
  1705. }
  1706. #endif
  1707. half4 frag(PackedVaryings input ) : SV_Target
  1708. {
  1709. UNITY_SETUP_INSTANCE_ID(input);
  1710. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( input );
  1711. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  1712. float3 WorldPosition = input.positionWS;
  1713. #endif
  1714. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  1715. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  1716. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  1717. ShadowCoords = input.shadowCoord;
  1718. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  1719. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  1720. #endif
  1721. #endif
  1722. float2 uv_BaseTexture490 = input.ase_texcoord4.xy;
  1723. float4 BASETEXTURE498 = tex2D( _BaseTexture, uv_BaseTexture490 );
  1724. float clampResult627 = clamp( ( ( (( _WorldObjectGradient )?( input.ase_texcoord5.y ):( WorldPosition.y )) + 1.5 ) * _Gradient ) , -1.0 , 1.0 );
  1725. float4 lerpResult629 = lerp( _GroundColor , _TopColor , clampResult627);
  1726. float4 Gradient630 = lerpResult629;
  1727. float4 color644 = IsGammaSpace() ? float4(0.8962264,0.8962264,0.8962264,0) : float4(0.7799658,0.7799658,0.7799658,0);
  1728. float4 blendOpSrc643 = BASETEXTURE498;
  1729. float4 blendOpDest643 = color644;
  1730. #ifdef _GRADIENTONOFF_ON
  1731. float4 staticSwitch634 = ( Gradient630 * ( saturate( (( blendOpSrc643 > 0.5 ) ? ( 1.0 - ( 1.0 - 2.0 * ( blendOpSrc643 - 0.5 ) ) * ( 1.0 - blendOpDest643 ) ) : ( 2.0 * blendOpSrc643 * blendOpDest643 ) ) )) );
  1732. #else
  1733. float4 staticSwitch634 = BASETEXTURE498;
  1734. #endif
  1735. float2 temp_cast_0 = (_DetailTextureTiling).xx;
  1736. float3 ase_normalWS = input.ase_texcoord6.xyz;
  1737. float4 triplanar173 = TriplanarSampling173( _DetailTexture, _DetailTexture, _DetailTexture, WorldPosition, ase_normalWS, 1.0, temp_cast_0, float3( 1,1,1 ), float3(0,0,0) );
  1738. float4 DETAILTEXTUREvar414 = triplanar173;
  1739. #ifdef _DETAILTEXTUREONOFF_ON
  1740. float4 staticSwitch543 = ( DETAILTEXTUREvar414 * staticSwitch634 );
  1741. #else
  1742. float4 staticSwitch543 = staticSwitch634;
  1743. #endif
  1744. float4 decalscolor730 = _DecalsColor;
  1745. float2 uv1_DecalsTexture495 = input.ase_texcoord4.zw;
  1746. float DECALSMASK497 = tex2D( _DecalsTexture, uv1_DecalsTexture495 ).a;
  1747. float4 lerpResult596 = lerp( staticSwitch543 , decalscolor730 , DECALSMASK497);
  1748. #ifdef _DECALSONOFF_ON
  1749. float4 staticSwitch600 = lerpResult596;
  1750. #else
  1751. float4 staticSwitch600 = staticSwitch543;
  1752. #endif
  1753. float2 temp_cast_4 = (_TopProjectionTextureTiling).xx;
  1754. float4 triplanar525 = TriplanarSampling525( _TopProjectionTexture, WorldPosition, ase_normalWS, 1.0, temp_cast_4, 1.0, 0 );
  1755. float4 TOPPROJECTION527 = triplanar525;
  1756. float dotResult524 = dot( ase_normalWS , _Vector1 );
  1757. float saferPower582 = abs( ( ( dotResult524 * _TopProjectionTextureCoverage ) * 3.0 ) );
  1758. float clampResult584 = clamp( pow( saferPower582 , 5.0 ) , 0.0 , 1.0 );
  1759. float TOPPROJECTIONMASK528 = clampResult584;
  1760. float4 lerpResult555 = lerp( staticSwitch600 , TOPPROJECTION527 , TOPPROJECTIONMASK528);
  1761. #ifdef _TOPPROJECTIONONOFF_ON
  1762. float4 staticSwitch557 = lerpResult555;
  1763. #else
  1764. float4 staticSwitch557 = staticSwitch600;
  1765. #endif
  1766. float4 color205 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
  1767. float dotResult211 = dot( ase_normalWS , _SnowDirection );
  1768. float smoothstepResult552 = smoothstep( 0.0 , _SnowFade , ( (-1.0 + (_SnowCoverage - 0.0) * (1.0 - -1.0) / (1.0 - 0.0)) + dotResult211 ));
  1769. float4 temp_output_363_0 = ( ( (0.0 + (_SnowAmount - 0.0) * (10.0 - 0.0) / (1.0 - 0.0)) * color205 ) * smoothstepResult552 );
  1770. float4 transform200 = mul(GetWorldToObjectMatrix(),float4( WorldPosition , 0.0 ));
  1771. float4 appendResult209 = (float4(transform200.x , transform200.z , 0.0 , 0.0));
  1772. float simplePerlin2D213 = snoise( appendResult209.xy*_SnowNoiseScale );
  1773. simplePerlin2D213 = simplePerlin2D213*0.5 + 0.5;
  1774. float saferPower216 = abs( simplePerlin2D213 );
  1775. float4 SNOW220 = (( _SnowNoiseOnOff )?( ( pow( saferPower216 , _SnowNoiseContrast ) * temp_output_363_0 ) ):( temp_output_363_0 ));
  1776. #ifdef _SNOWONOFF_ON
  1777. float4 staticSwitch545 = ( staticSwitch557 + SNOW220 );
  1778. #else
  1779. float4 staticSwitch545 = staticSwitch557;
  1780. #endif
  1781. float4 lerpResult607 = lerp( staticSwitch545 , _OreColor , ( 1.0 - input.ase_color.a ));
  1782. float4 COLOR539 = lerpResult607;
  1783. float3 temp_cast_9 = (1.0).xxx;
  1784. float4 color717 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
  1785. float4 color716 = IsGammaSpace() ? float4(0,0,0,0) : float4(0,0,0,0);
  1786. float4 lerpResult718 = lerp( color717 , color716 , (_TimeParameters.y*0.3 + 0.5));
  1787. float3 desaturateInitialColor720 = lerpResult718.rgb;
  1788. float desaturateDot720 = dot( desaturateInitialColor720, float3( 0.299, 0.587, 0.114 ));
  1789. float3 desaturateVar720 = lerp( desaturateInitialColor720, desaturateDot720.xxx, 1.0 );
  1790. float4 Decalemission685 = (( _DECALEMISSIONONOFF )?( ( ( float4( ( _DecalEmissionIntensity * (( _ANIMATEDECALEMISSIONONOFF )?( desaturateVar720 ):( temp_cast_9 )) ) , 0.0 ) * _DecakEmissionColor ) * DECALSMASK497 ) ):( float4( 0,0,0,0 ) ));
  1791. float3 temp_cast_12 = (0.1).xxx;
  1792. float4 color701 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
  1793. float4 color702 = IsGammaSpace() ? float4(0,0,0,0) : float4(0,0,0,0);
  1794. float4 lerpResult703 = lerp( color701 , color702 , (_TimeParameters.y*0.3 + 0.5));
  1795. float3 desaturateInitialColor704 = lerpResult703.rgb;
  1796. float desaturateDot704 = dot( desaturateInitialColor704, float3( 0.299, 0.587, 0.114 ));
  1797. float3 desaturateVar704 = lerp( desaturateInitialColor704, desaturateDot704.xxx, 1.0 );
  1798. float4 oreemission684 = (( _OREEMISSIONONOFF )?( ( ( float4( ( _OreEmissionIntensity * (( _ANIMATEOREEMISSIONONOFF )?( desaturateVar704 ):( temp_cast_12 )) ) , 0.0 ) * _OreEmissionColor ) * ( 1.0 - input.ase_color.a ) ) ):( float4( 0,0,0,0 ) ));
  1799. float3 BaseColor = COLOR539.rgb;
  1800. float3 Emission = ( Decalemission685 + oreemission684 ).rgb;
  1801. float Alpha = 1;
  1802. float AlphaClipThreshold = 0.5;
  1803. #ifdef _ALPHATEST_ON
  1804. clip(Alpha - AlphaClipThreshold);
  1805. #endif
  1806. MetaInput metaInput = (MetaInput)0;
  1807. metaInput.Albedo = BaseColor;
  1808. metaInput.Emission = Emission;
  1809. #ifdef EDITOR_VISUALIZATION
  1810. metaInput.VizUV = input.VizUV.xy;
  1811. metaInput.LightCoord = input.LightCoord;
  1812. #endif
  1813. return UnityMetaFragment(metaInput);
  1814. }
  1815. ENDHLSL
  1816. }
  1817. Pass
  1818. {
  1819. Name "Universal2D"
  1820. Tags { "LightMode"="Universal2D" }
  1821. Blend One Zero, One Zero
  1822. ZWrite On
  1823. ZTest LEqual
  1824. Offset 0 , 0
  1825. ColorMask RGBA
  1826. HLSLPROGRAM
  1827. #pragma multi_compile_fragment _ALPHATEST_ON
  1828. #define _NORMAL_DROPOFF_TS 1
  1829. #define ASE_FOG 1
  1830. #define _EMISSION
  1831. #define ASE_VERSION 19800
  1832. #define ASE_SRP_VERSION 170003
  1833. #pragma vertex vert
  1834. #pragma fragment frag
  1835. #if defined(_SPECULAR_SETUP) && defined(_ASE_LIGHTING_SIMPLE)
  1836. #define _SPECULAR_COLOR 1
  1837. #endif
  1838. #define SHADERPASS SHADERPASS_2D
  1839. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1840. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1841. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1842. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1843. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  1844. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1845. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  1846. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
  1847. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
  1848. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1849. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1850. #define ASE_NEEDS_FRAG_WORLD_POSITION
  1851. #define ASE_NEEDS_VERT_NORMAL
  1852. #pragma shader_feature_local _SNOWONOFF_ON
  1853. #pragma shader_feature_local _TOPPROJECTIONONOFF_ON
  1854. #pragma shader_feature_local _DECALSONOFF_ON
  1855. #pragma shader_feature_local _DETAILTEXTUREONOFF_ON
  1856. #pragma shader_feature_local _GRADIENTONOFF_ON
  1857. struct Attributes
  1858. {
  1859. float4 positionOS : POSITION;
  1860. float3 normalOS : NORMAL;
  1861. float4 ase_texcoord : TEXCOORD0;
  1862. float4 ase_texcoord1 : TEXCOORD1;
  1863. float4 ase_color : COLOR;
  1864. UNITY_VERTEX_INPUT_INSTANCE_ID
  1865. };
  1866. struct PackedVaryings
  1867. {
  1868. float4 positionCS : SV_POSITION;
  1869. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  1870. float3 positionWS : TEXCOORD0;
  1871. #endif
  1872. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  1873. float4 shadowCoord : TEXCOORD1;
  1874. #endif
  1875. float4 ase_texcoord2 : TEXCOORD2;
  1876. float4 ase_texcoord3 : TEXCOORD3;
  1877. float4 ase_texcoord4 : TEXCOORD4;
  1878. float4 ase_color : COLOR;
  1879. UNITY_VERTEX_INPUT_INSTANCE_ID
  1880. UNITY_VERTEX_OUTPUT_STEREO
  1881. };
  1882. CBUFFER_START(UnityPerMaterial)
  1883. float4 _GroundColor;
  1884. float4 _TopColor;
  1885. float4 _DecalsColor;
  1886. float4 _DecakEmissionColor;
  1887. float4 _OreColor;
  1888. float4 _OreEmissionColor;
  1889. float3 _Vector1;
  1890. float3 _SnowDirection;
  1891. float _ANIMATEOREEMISSIONONOFF;
  1892. float _OreEmissionIntensity;
  1893. float _OREEMISSIONONOFF;
  1894. float _ANIMATEDECALEMISSIONONOFF;
  1895. float _DecalEmissionIntensity;
  1896. float _DECALEMISSIONONOFF;
  1897. float _SnowNoiseContrast;
  1898. float _SnowCoverage;
  1899. float _SnowFade;
  1900. float _SnowAmount;
  1901. float _SnowNoiseOnOff;
  1902. float _TopProjectionTextureCoverage;
  1903. float _TopProjectionTextureTiling;
  1904. float _DetailTextureTiling;
  1905. float _Gradient;
  1906. float _WorldObjectGradient;
  1907. float _SnowNoiseScale;
  1908. float _Smoothness;
  1909. #ifdef ASE_TRANSMISSION
  1910. float _TransmissionShadow;
  1911. #endif
  1912. #ifdef ASE_TRANSLUCENCY
  1913. float _TransStrength;
  1914. float _TransNormal;
  1915. float _TransScattering;
  1916. float _TransDirect;
  1917. float _TransAmbient;
  1918. float _TransShadow;
  1919. #endif
  1920. #ifdef ASE_TESSELLATION
  1921. float _TessPhongStrength;
  1922. float _TessValue;
  1923. float _TessMin;
  1924. float _TessMax;
  1925. float _TessEdgeLength;
  1926. float _TessMaxDisp;
  1927. #endif
  1928. CBUFFER_END
  1929. #ifdef SCENEPICKINGPASS
  1930. float4 _SelectionID;
  1931. #endif
  1932. #ifdef SCENESELECTIONPASS
  1933. int _ObjectId;
  1934. int _PassValue;
  1935. #endif
  1936. sampler2D _BaseTexture;
  1937. sampler2D _DetailTexture;
  1938. sampler2D _DecalsTexture;
  1939. sampler2D _TopProjectionTexture;
  1940. inline float4 TriplanarSampling173( sampler2D topTexMap, sampler2D midTexMap, sampler2D botTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index )
  1941. {
  1942. float3 projNormal = ( pow( abs( worldNormal ), falloff ) );
  1943. projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001;
  1944. float3 nsign = sign( worldNormal );
  1945. float negProjNormalY = max( 0, projNormal.y * -nsign.y );
  1946. projNormal.y = max( 0, projNormal.y * nsign.y );
  1947. half4 xNorm; half4 yNorm; half4 yNormN; half4 zNorm;
  1948. xNorm = tex2D( midTexMap, tiling * worldPos.zy * float2( nsign.x, 1.0 ) );
  1949. yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
  1950. yNormN = tex2D( botTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
  1951. zNorm = tex2D( midTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) );
  1952. return xNorm * projNormal.x + yNorm * projNormal.y + yNormN * negProjNormalY + zNorm * projNormal.z;
  1953. }
  1954. inline float4 TriplanarSampling525( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index )
  1955. {
  1956. float3 projNormal = ( pow( abs( worldNormal ), falloff ) );
  1957. projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001;
  1958. float3 nsign = sign( worldNormal );
  1959. half4 xNorm; half4 yNorm; half4 zNorm;
  1960. xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2( nsign.x, 1.0 ) );
  1961. yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
  1962. zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) );
  1963. return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z;
  1964. }
  1965. float3 mod2D289( float3 x ) { return x - floor( x * ( 1.0 / 289.0 ) ) * 289.0; }
  1966. float2 mod2D289( float2 x ) { return x - floor( x * ( 1.0 / 289.0 ) ) * 289.0; }
  1967. float3 permute( float3 x ) { return mod2D289( ( ( x * 34.0 ) + 1.0 ) * x ); }
  1968. float snoise( float2 v )
  1969. {
  1970. const float4 C = float4( 0.211324865405187, 0.366025403784439, -0.577350269189626, 0.024390243902439 );
  1971. float2 i = floor( v + dot( v, C.yy ) );
  1972. float2 x0 = v - i + dot( i, C.xx );
  1973. float2 i1;
  1974. i1 = ( x0.x > x0.y ) ? float2( 1.0, 0.0 ) : float2( 0.0, 1.0 );
  1975. float4 x12 = x0.xyxy + C.xxzz;
  1976. x12.xy -= i1;
  1977. i = mod2D289( i );
  1978. float3 p = permute( permute( i.y + float3( 0.0, i1.y, 1.0 ) ) + i.x + float3( 0.0, i1.x, 1.0 ) );
  1979. float3 m = max( 0.5 - float3( dot( x0, x0 ), dot( x12.xy, x12.xy ), dot( x12.zw, x12.zw ) ), 0.0 );
  1980. m = m * m;
  1981. m = m * m;
  1982. float3 x = 2.0 * frac( p * C.www ) - 1.0;
  1983. float3 h = abs( x ) - 0.5;
  1984. float3 ox = floor( x + 0.5 );
  1985. float3 a0 = x - ox;
  1986. m *= 1.79284291400159 - 0.85373472095314 * ( a0 * a0 + h * h );
  1987. float3 g;
  1988. g.x = a0.x * x0.x + h.x * x0.y;
  1989. g.yz = a0.yz * x12.xz + h.yz * x12.yw;
  1990. return 130.0 * dot( m, g );
  1991. }
  1992. PackedVaryings VertexFunction( Attributes input )
  1993. {
  1994. PackedVaryings output = (PackedVaryings)0;
  1995. UNITY_SETUP_INSTANCE_ID( input );
  1996. UNITY_TRANSFER_INSTANCE_ID( input, output );
  1997. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( output );
  1998. float3 ase_normalWS = TransformObjectToWorldNormal(input.normalOS);
  1999. output.ase_texcoord4.xyz = ase_normalWS;
  2000. output.ase_texcoord2.xy = input.ase_texcoord.xy;
  2001. output.ase_texcoord3 = input.positionOS;
  2002. output.ase_texcoord2.zw = input.ase_texcoord1.xy;
  2003. output.ase_color = input.ase_color;
  2004. //setting value to unused interpolator channels and avoid initialization warnings
  2005. output.ase_texcoord4.w = 0;
  2006. #ifdef ASE_ABSOLUTE_VERTEX_POS
  2007. float3 defaultVertexValue = input.positionOS.xyz;
  2008. #else
  2009. float3 defaultVertexValue = float3(0, 0, 0);
  2010. #endif
  2011. float3 vertexValue = defaultVertexValue;
  2012. #ifdef ASE_ABSOLUTE_VERTEX_POS
  2013. input.positionOS.xyz = vertexValue;
  2014. #else
  2015. input.positionOS.xyz += vertexValue;
  2016. #endif
  2017. input.normalOS = input.normalOS;
  2018. VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
  2019. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  2020. output.positionWS = vertexInput.positionWS;
  2021. #endif
  2022. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  2023. output.shadowCoord = GetShadowCoord( vertexInput );
  2024. #endif
  2025. output.positionCS = vertexInput.positionCS;
  2026. return output;
  2027. }
  2028. #if defined(ASE_TESSELLATION)
  2029. struct VertexControl
  2030. {
  2031. float4 positionOS : INTERNALTESSPOS;
  2032. float3 normalOS : NORMAL;
  2033. float4 ase_texcoord : TEXCOORD0;
  2034. float4 ase_texcoord1 : TEXCOORD1;
  2035. float4 ase_color : COLOR;
  2036. UNITY_VERTEX_INPUT_INSTANCE_ID
  2037. };
  2038. struct TessellationFactors
  2039. {
  2040. float edge[3] : SV_TessFactor;
  2041. float inside : SV_InsideTessFactor;
  2042. };
  2043. VertexControl vert ( Attributes input )
  2044. {
  2045. VertexControl output;
  2046. UNITY_SETUP_INSTANCE_ID(input);
  2047. UNITY_TRANSFER_INSTANCE_ID(input, output);
  2048. output.positionOS = input.positionOS;
  2049. output.normalOS = input.normalOS;
  2050. output.ase_texcoord = input.ase_texcoord;
  2051. output.ase_texcoord1 = input.ase_texcoord1;
  2052. output.ase_color = input.ase_color;
  2053. return output;
  2054. }
  2055. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  2056. {
  2057. TessellationFactors output;
  2058. float4 tf = 1;
  2059. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  2060. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  2061. #if defined(ASE_FIXED_TESSELLATION)
  2062. tf = FixedTess( tessValue );
  2063. #elif defined(ASE_DISTANCE_TESSELLATION)
  2064. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  2065. #elif defined(ASE_LENGTH_TESSELLATION)
  2066. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  2067. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  2068. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  2069. #endif
  2070. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  2071. return output;
  2072. }
  2073. [domain("tri")]
  2074. [partitioning("fractional_odd")]
  2075. [outputtopology("triangle_cw")]
  2076. [patchconstantfunc("TessellationFunction")]
  2077. [outputcontrolpoints(3)]
  2078. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  2079. {
  2080. return patch[id];
  2081. }
  2082. [domain("tri")]
  2083. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  2084. {
  2085. Attributes output = (Attributes) 0;
  2086. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  2087. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  2088. output.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  2089. output.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  2090. output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  2091. #if defined(ASE_PHONG_TESSELLATION)
  2092. float3 pp[3];
  2093. for (int i = 0; i < 3; ++i)
  2094. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  2095. float phongStrength = _TessPhongStrength;
  2096. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  2097. #endif
  2098. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  2099. return VertexFunction(output);
  2100. }
  2101. #else
  2102. PackedVaryings vert ( Attributes input )
  2103. {
  2104. return VertexFunction( input );
  2105. }
  2106. #endif
  2107. half4 frag(PackedVaryings input ) : SV_Target
  2108. {
  2109. UNITY_SETUP_INSTANCE_ID( input );
  2110. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( input );
  2111. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  2112. float3 WorldPosition = input.positionWS;
  2113. #endif
  2114. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  2115. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  2116. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  2117. ShadowCoords = input.shadowCoord;
  2118. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  2119. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  2120. #endif
  2121. #endif
  2122. float2 uv_BaseTexture490 = input.ase_texcoord2.xy;
  2123. float4 BASETEXTURE498 = tex2D( _BaseTexture, uv_BaseTexture490 );
  2124. float clampResult627 = clamp( ( ( (( _WorldObjectGradient )?( input.ase_texcoord3.y ):( WorldPosition.y )) + 1.5 ) * _Gradient ) , -1.0 , 1.0 );
  2125. float4 lerpResult629 = lerp( _GroundColor , _TopColor , clampResult627);
  2126. float4 Gradient630 = lerpResult629;
  2127. float4 color644 = IsGammaSpace() ? float4(0.8962264,0.8962264,0.8962264,0) : float4(0.7799658,0.7799658,0.7799658,0);
  2128. float4 blendOpSrc643 = BASETEXTURE498;
  2129. float4 blendOpDest643 = color644;
  2130. #ifdef _GRADIENTONOFF_ON
  2131. float4 staticSwitch634 = ( Gradient630 * ( saturate( (( blendOpSrc643 > 0.5 ) ? ( 1.0 - ( 1.0 - 2.0 * ( blendOpSrc643 - 0.5 ) ) * ( 1.0 - blendOpDest643 ) ) : ( 2.0 * blendOpSrc643 * blendOpDest643 ) ) )) );
  2132. #else
  2133. float4 staticSwitch634 = BASETEXTURE498;
  2134. #endif
  2135. float2 temp_cast_0 = (_DetailTextureTiling).xx;
  2136. float3 ase_normalWS = input.ase_texcoord4.xyz;
  2137. float4 triplanar173 = TriplanarSampling173( _DetailTexture, _DetailTexture, _DetailTexture, WorldPosition, ase_normalWS, 1.0, temp_cast_0, float3( 1,1,1 ), float3(0,0,0) );
  2138. float4 DETAILTEXTUREvar414 = triplanar173;
  2139. #ifdef _DETAILTEXTUREONOFF_ON
  2140. float4 staticSwitch543 = ( DETAILTEXTUREvar414 * staticSwitch634 );
  2141. #else
  2142. float4 staticSwitch543 = staticSwitch634;
  2143. #endif
  2144. float4 decalscolor730 = _DecalsColor;
  2145. float2 uv1_DecalsTexture495 = input.ase_texcoord2.zw;
  2146. float DECALSMASK497 = tex2D( _DecalsTexture, uv1_DecalsTexture495 ).a;
  2147. float4 lerpResult596 = lerp( staticSwitch543 , decalscolor730 , DECALSMASK497);
  2148. #ifdef _DECALSONOFF_ON
  2149. float4 staticSwitch600 = lerpResult596;
  2150. #else
  2151. float4 staticSwitch600 = staticSwitch543;
  2152. #endif
  2153. float2 temp_cast_4 = (_TopProjectionTextureTiling).xx;
  2154. float4 triplanar525 = TriplanarSampling525( _TopProjectionTexture, WorldPosition, ase_normalWS, 1.0, temp_cast_4, 1.0, 0 );
  2155. float4 TOPPROJECTION527 = triplanar525;
  2156. float dotResult524 = dot( ase_normalWS , _Vector1 );
  2157. float saferPower582 = abs( ( ( dotResult524 * _TopProjectionTextureCoverage ) * 3.0 ) );
  2158. float clampResult584 = clamp( pow( saferPower582 , 5.0 ) , 0.0 , 1.0 );
  2159. float TOPPROJECTIONMASK528 = clampResult584;
  2160. float4 lerpResult555 = lerp( staticSwitch600 , TOPPROJECTION527 , TOPPROJECTIONMASK528);
  2161. #ifdef _TOPPROJECTIONONOFF_ON
  2162. float4 staticSwitch557 = lerpResult555;
  2163. #else
  2164. float4 staticSwitch557 = staticSwitch600;
  2165. #endif
  2166. float4 color205 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
  2167. float dotResult211 = dot( ase_normalWS , _SnowDirection );
  2168. float smoothstepResult552 = smoothstep( 0.0 , _SnowFade , ( (-1.0 + (_SnowCoverage - 0.0) * (1.0 - -1.0) / (1.0 - 0.0)) + dotResult211 ));
  2169. float4 temp_output_363_0 = ( ( (0.0 + (_SnowAmount - 0.0) * (10.0 - 0.0) / (1.0 - 0.0)) * color205 ) * smoothstepResult552 );
  2170. float4 transform200 = mul(GetWorldToObjectMatrix(),float4( WorldPosition , 0.0 ));
  2171. float4 appendResult209 = (float4(transform200.x , transform200.z , 0.0 , 0.0));
  2172. float simplePerlin2D213 = snoise( appendResult209.xy*_SnowNoiseScale );
  2173. simplePerlin2D213 = simplePerlin2D213*0.5 + 0.5;
  2174. float saferPower216 = abs( simplePerlin2D213 );
  2175. float4 SNOW220 = (( _SnowNoiseOnOff )?( ( pow( saferPower216 , _SnowNoiseContrast ) * temp_output_363_0 ) ):( temp_output_363_0 ));
  2176. #ifdef _SNOWONOFF_ON
  2177. float4 staticSwitch545 = ( staticSwitch557 + SNOW220 );
  2178. #else
  2179. float4 staticSwitch545 = staticSwitch557;
  2180. #endif
  2181. float4 lerpResult607 = lerp( staticSwitch545 , _OreColor , ( 1.0 - input.ase_color.a ));
  2182. float4 COLOR539 = lerpResult607;
  2183. float3 BaseColor = COLOR539.rgb;
  2184. float Alpha = 1;
  2185. float AlphaClipThreshold = 0.5;
  2186. half4 color = half4(BaseColor, Alpha );
  2187. #ifdef _ALPHATEST_ON
  2188. clip(Alpha - AlphaClipThreshold);
  2189. #endif
  2190. return color;
  2191. }
  2192. ENDHLSL
  2193. }
  2194. Pass
  2195. {
  2196. Name "DepthNormals"
  2197. Tags { "LightMode"="DepthNormals" }
  2198. ZWrite On
  2199. Blend One Zero
  2200. ZTest LEqual
  2201. ZWrite On
  2202. HLSLPROGRAM
  2203. #pragma multi_compile _ALPHATEST_ON
  2204. #define _NORMAL_DROPOFF_TS 1
  2205. #pragma multi_compile_instancing
  2206. #pragma multi_compile _ LOD_FADE_CROSSFADE
  2207. #define ASE_FOG 1
  2208. #define _EMISSION
  2209. #define ASE_VERSION 19800
  2210. #define ASE_SRP_VERSION 170003
  2211. #pragma vertex vert
  2212. #pragma fragment frag
  2213. #if defined(_SPECULAR_SETUP) && defined(_ASE_LIGHTING_SIMPLE)
  2214. #define _SPECULAR_COLOR 1
  2215. #endif
  2216. #define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
  2217. //#define SHADERPASS SHADERPASS_DEPTHNORMALS
  2218. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  2219. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
  2220. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  2221. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  2222. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  2223. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  2224. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  2225. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  2226. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  2227. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
  2228. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
  2229. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  2230. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  2231. #if defined(LOD_FADE_CROSSFADE)
  2232. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
  2233. #endif
  2234. #if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45)
  2235. #define ASE_SV_DEPTH SV_DepthLessEqual
  2236. #define ASE_SV_POSITION_QUALIFIERS linear noperspective centroid
  2237. #else
  2238. #define ASE_SV_DEPTH SV_Depth
  2239. #define ASE_SV_POSITION_QUALIFIERS
  2240. #endif
  2241. struct Attributes
  2242. {
  2243. float4 positionOS : POSITION;
  2244. float3 normalOS : NORMAL;
  2245. float4 tangentOS : TANGENT;
  2246. UNITY_VERTEX_INPUT_INSTANCE_ID
  2247. };
  2248. struct PackedVaryings
  2249. {
  2250. ASE_SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION;
  2251. float4 clipPosV : TEXCOORD0;
  2252. float3 positionWS : TEXCOORD1;
  2253. float3 normalWS : TEXCOORD2;
  2254. float4 tangentWS : TEXCOORD3;
  2255. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  2256. float4 shadowCoord : TEXCOORD4;
  2257. #endif
  2258. UNITY_VERTEX_INPUT_INSTANCE_ID
  2259. UNITY_VERTEX_OUTPUT_STEREO
  2260. };
  2261. CBUFFER_START(UnityPerMaterial)
  2262. float4 _GroundColor;
  2263. float4 _TopColor;
  2264. float4 _DecalsColor;
  2265. float4 _DecakEmissionColor;
  2266. float4 _OreColor;
  2267. float4 _OreEmissionColor;
  2268. float3 _Vector1;
  2269. float3 _SnowDirection;
  2270. float _ANIMATEOREEMISSIONONOFF;
  2271. float _OreEmissionIntensity;
  2272. float _OREEMISSIONONOFF;
  2273. float _ANIMATEDECALEMISSIONONOFF;
  2274. float _DecalEmissionIntensity;
  2275. float _DECALEMISSIONONOFF;
  2276. float _SnowNoiseContrast;
  2277. float _SnowCoverage;
  2278. float _SnowFade;
  2279. float _SnowAmount;
  2280. float _SnowNoiseOnOff;
  2281. float _TopProjectionTextureCoverage;
  2282. float _TopProjectionTextureTiling;
  2283. float _DetailTextureTiling;
  2284. float _Gradient;
  2285. float _WorldObjectGradient;
  2286. float _SnowNoiseScale;
  2287. float _Smoothness;
  2288. #ifdef ASE_TRANSMISSION
  2289. float _TransmissionShadow;
  2290. #endif
  2291. #ifdef ASE_TRANSLUCENCY
  2292. float _TransStrength;
  2293. float _TransNormal;
  2294. float _TransScattering;
  2295. float _TransDirect;
  2296. float _TransAmbient;
  2297. float _TransShadow;
  2298. #endif
  2299. #ifdef ASE_TESSELLATION
  2300. float _TessPhongStrength;
  2301. float _TessValue;
  2302. float _TessMin;
  2303. float _TessMax;
  2304. float _TessEdgeLength;
  2305. float _TessMaxDisp;
  2306. #endif
  2307. CBUFFER_END
  2308. #ifdef SCENEPICKINGPASS
  2309. float4 _SelectionID;
  2310. #endif
  2311. #ifdef SCENESELECTIONPASS
  2312. int _ObjectId;
  2313. int _PassValue;
  2314. #endif
  2315. PackedVaryings VertexFunction( Attributes input )
  2316. {
  2317. PackedVaryings output = (PackedVaryings)0;
  2318. UNITY_SETUP_INSTANCE_ID(input);
  2319. UNITY_TRANSFER_INSTANCE_ID(input, output);
  2320. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  2321. #ifdef ASE_ABSOLUTE_VERTEX_POS
  2322. float3 defaultVertexValue = input.positionOS.xyz;
  2323. #else
  2324. float3 defaultVertexValue = float3(0, 0, 0);
  2325. #endif
  2326. float3 vertexValue = defaultVertexValue;
  2327. #ifdef ASE_ABSOLUTE_VERTEX_POS
  2328. input.positionOS.xyz = vertexValue;
  2329. #else
  2330. input.positionOS.xyz += vertexValue;
  2331. #endif
  2332. input.normalOS = input.normalOS;
  2333. input.tangentOS = input.tangentOS;
  2334. VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
  2335. float3 normalWS = TransformObjectToWorldNormal( input.normalOS );
  2336. float4 tangentWS = float4( TransformObjectToWorldDir( input.tangentOS.xyz ), input.tangentOS.w );
  2337. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  2338. output.shadowCoord = GetShadowCoord( vertexInput );
  2339. #endif
  2340. output.positionCS = vertexInput.positionCS;
  2341. output.clipPosV = vertexInput.positionCS;
  2342. output.positionWS = vertexInput.positionWS;
  2343. output.normalWS = normalWS;
  2344. output.tangentWS = tangentWS;
  2345. return output;
  2346. }
  2347. #if defined(ASE_TESSELLATION)
  2348. struct VertexControl
  2349. {
  2350. float4 positionOS : INTERNALTESSPOS;
  2351. float3 normalOS : NORMAL;
  2352. float4 tangentOS : TANGENT;
  2353. UNITY_VERTEX_INPUT_INSTANCE_ID
  2354. };
  2355. struct TessellationFactors
  2356. {
  2357. float edge[3] : SV_TessFactor;
  2358. float inside : SV_InsideTessFactor;
  2359. };
  2360. VertexControl vert ( Attributes input )
  2361. {
  2362. VertexControl output;
  2363. UNITY_SETUP_INSTANCE_ID(input);
  2364. UNITY_TRANSFER_INSTANCE_ID(input, output);
  2365. output.positionOS = input.positionOS;
  2366. output.normalOS = input.normalOS;
  2367. output.tangentOS = input.tangentOS;
  2368. return output;
  2369. }
  2370. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  2371. {
  2372. TessellationFactors output;
  2373. float4 tf = 1;
  2374. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  2375. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  2376. #if defined(ASE_FIXED_TESSELLATION)
  2377. tf = FixedTess( tessValue );
  2378. #elif defined(ASE_DISTANCE_TESSELLATION)
  2379. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  2380. #elif defined(ASE_LENGTH_TESSELLATION)
  2381. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  2382. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  2383. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  2384. #endif
  2385. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  2386. return output;
  2387. }
  2388. [domain("tri")]
  2389. [partitioning("fractional_odd")]
  2390. [outputtopology("triangle_cw")]
  2391. [patchconstantfunc("TessellationFunction")]
  2392. [outputcontrolpoints(3)]
  2393. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  2394. {
  2395. return patch[id];
  2396. }
  2397. [domain("tri")]
  2398. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  2399. {
  2400. Attributes output = (Attributes) 0;
  2401. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  2402. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  2403. output.tangentOS = patch[0].tangentOS * bary.x + patch[1].tangentOS * bary.y + patch[2].tangentOS * bary.z;
  2404. #if defined(ASE_PHONG_TESSELLATION)
  2405. float3 pp[3];
  2406. for (int i = 0; i < 3; ++i)
  2407. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  2408. float phongStrength = _TessPhongStrength;
  2409. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  2410. #endif
  2411. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  2412. return VertexFunction(output);
  2413. }
  2414. #else
  2415. PackedVaryings vert ( Attributes input )
  2416. {
  2417. return VertexFunction( input );
  2418. }
  2419. #endif
  2420. void frag( PackedVaryings input
  2421. , out half4 outNormalWS : SV_Target0
  2422. #ifdef ASE_DEPTH_WRITE_ON
  2423. ,out float outputDepth : ASE_SV_DEPTH
  2424. #endif
  2425. #ifdef _WRITE_RENDERING_LAYERS
  2426. , out float4 outRenderingLayers : SV_Target1
  2427. #endif
  2428. )
  2429. {
  2430. UNITY_SETUP_INSTANCE_ID(input);
  2431. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( input );
  2432. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  2433. float3 WorldNormal = input.normalWS;
  2434. float4 WorldTangent = input.tangentWS;
  2435. float3 WorldPosition = input.positionWS;
  2436. float4 ClipPos = input.clipPosV;
  2437. float4 ScreenPos = ComputeScreenPos( input.clipPosV );
  2438. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  2439. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  2440. ShadowCoords = input.shadowCoord;
  2441. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  2442. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  2443. #endif
  2444. #endif
  2445. float3 Normal = float3(0, 0, 1);
  2446. float Alpha = 1;
  2447. float AlphaClipThreshold = 0.5;
  2448. #ifdef ASE_DEPTH_WRITE_ON
  2449. float DepthValue = input.positionCS.z;
  2450. #endif
  2451. #ifdef _ALPHATEST_ON
  2452. clip(Alpha - AlphaClipThreshold);
  2453. #endif
  2454. #if defined(LOD_FADE_CROSSFADE)
  2455. LODFadeCrossFade( input.positionCS );
  2456. #endif
  2457. #ifdef ASE_DEPTH_WRITE_ON
  2458. outputDepth = DepthValue;
  2459. #endif
  2460. #if defined(_GBUFFER_NORMALS_OCT)
  2461. float2 octNormalWS = PackNormalOctQuadEncode(WorldNormal);
  2462. float2 remappedOctNormalWS = saturate(octNormalWS * 0.5 + 0.5);
  2463. half3 packedNormalWS = PackFloat2To888(remappedOctNormalWS);
  2464. outNormalWS = half4(packedNormalWS, 0.0);
  2465. #else
  2466. #if defined(_NORMALMAP)
  2467. #if _NORMAL_DROPOFF_TS
  2468. float crossSign = (WorldTangent.w > 0.0 ? 1.0 : -1.0) * GetOddNegativeScale();
  2469. float3 bitangent = crossSign * cross(WorldNormal.xyz, WorldTangent.xyz);
  2470. float3 normalWS = TransformTangentToWorld(Normal, half3x3(WorldTangent.xyz, bitangent, WorldNormal.xyz));
  2471. #elif _NORMAL_DROPOFF_OS
  2472. float3 normalWS = TransformObjectToWorldNormal(Normal);
  2473. #elif _NORMAL_DROPOFF_WS
  2474. float3 normalWS = Normal;
  2475. #endif
  2476. #else
  2477. float3 normalWS = WorldNormal;
  2478. #endif
  2479. outNormalWS = half4(NormalizeNormalPerPixel(normalWS), 0.0);
  2480. #endif
  2481. #ifdef _WRITE_RENDERING_LAYERS
  2482. uint renderingLayers = GetMeshRenderingLayer();
  2483. outRenderingLayers = float4(EncodeMeshRenderingLayer(renderingLayers), 0, 0, 0);
  2484. #endif
  2485. }
  2486. ENDHLSL
  2487. }
  2488. Pass
  2489. {
  2490. Name "GBuffer"
  2491. Tags { "LightMode"="UniversalGBuffer" }
  2492. Blend One Zero, One Zero
  2493. ZWrite On
  2494. ZTest LEqual
  2495. Offset 0 , 0
  2496. ColorMask RGBA
  2497. HLSLPROGRAM
  2498. #pragma multi_compile_fragment _ALPHATEST_ON
  2499. #define _NORMAL_DROPOFF_TS 1
  2500. #pragma shader_feature_local _RECEIVE_SHADOWS_OFF
  2501. #pragma multi_compile_instancing
  2502. #pragma instancing_options renderinglayer
  2503. #pragma multi_compile _ LOD_FADE_CROSSFADE
  2504. #pragma multi_compile_fog
  2505. #define ASE_FOG 1
  2506. #define _EMISSION
  2507. #define ASE_VERSION 19800
  2508. #define ASE_SRP_VERSION 170003
  2509. #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
  2510. #pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING
  2511. #pragma multi_compile_fragment _ _REFLECTION_PROBE_BOX_PROJECTION
  2512. #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
  2513. #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
  2514. #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
  2515. #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED
  2516. #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
  2517. #pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE
  2518. #pragma multi_compile _ SHADOWS_SHADOWMASK
  2519. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  2520. #pragma multi_compile _ USE_LEGACY_LIGHTMAPS
  2521. #pragma multi_compile _ LIGHTMAP_ON
  2522. #pragma multi_compile _ DYNAMICLIGHTMAP_ON
  2523. #pragma vertex vert
  2524. #pragma fragment frag
  2525. #if defined(_SPECULAR_SETUP) && defined(_ASE_LIGHTING_SIMPLE)
  2526. #define _SPECULAR_COLOR 1
  2527. #endif
  2528. #define SHADERPASS SHADERPASS_GBUFFER
  2529. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  2530. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
  2531. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl"
  2532. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  2533. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  2534. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  2535. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  2536. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  2537. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  2538. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  2539. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
  2540. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
  2541. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl"
  2542. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  2543. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
  2544. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  2545. #if defined(LOD_FADE_CROSSFADE)
  2546. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
  2547. #endif
  2548. #if defined(UNITY_INSTANCING_ENABLED) && defined(_TERRAIN_INSTANCED_PERPIXEL_NORMAL)
  2549. #define ENABLE_TERRAIN_PERPIXEL_NORMAL
  2550. #endif
  2551. #define ASE_NEEDS_FRAG_WORLD_POSITION
  2552. #define ASE_NEEDS_FRAG_WORLD_NORMAL
  2553. #define ASE_NEEDS_FRAG_COLOR
  2554. #pragma shader_feature_local _SNOWONOFF_ON
  2555. #pragma shader_feature_local _TOPPROJECTIONONOFF_ON
  2556. #pragma shader_feature_local _DECALSONOFF_ON
  2557. #pragma shader_feature_local _DETAILTEXTUREONOFF_ON
  2558. #pragma shader_feature_local _GRADIENTONOFF_ON
  2559. #if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45)
  2560. #define ASE_SV_DEPTH SV_DepthLessEqual
  2561. #define ASE_SV_POSITION_QUALIFIERS linear noperspective centroid
  2562. #else
  2563. #define ASE_SV_DEPTH SV_Depth
  2564. #define ASE_SV_POSITION_QUALIFIERS
  2565. #endif
  2566. struct Attributes
  2567. {
  2568. float4 positionOS : POSITION;
  2569. float3 normalOS : NORMAL;
  2570. float4 tangentOS : TANGENT;
  2571. float4 texcoord : TEXCOORD0;
  2572. float4 texcoord1 : TEXCOORD1;
  2573. float4 texcoord2 : TEXCOORD2;
  2574. float4 ase_color : COLOR;
  2575. UNITY_VERTEX_INPUT_INSTANCE_ID
  2576. };
  2577. struct PackedVaryings
  2578. {
  2579. ASE_SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION;
  2580. float4 clipPosV : TEXCOORD0;
  2581. float4 lightmapUVOrVertexSH : TEXCOORD1;
  2582. #if defined(ASE_FOG) || defined(_ADDITIONAL_LIGHTS_VERTEX)
  2583. half4 fogFactorAndVertexLight : TEXCOORD2;
  2584. #endif
  2585. float4 tSpace0 : TEXCOORD3;
  2586. float4 tSpace1 : TEXCOORD4;
  2587. float4 tSpace2 : TEXCOORD5;
  2588. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  2589. float4 shadowCoord : TEXCOORD6;
  2590. #endif
  2591. #if defined(DYNAMICLIGHTMAP_ON)
  2592. float2 dynamicLightmapUV : TEXCOORD7;
  2593. #endif
  2594. #if defined(USE_APV_PROBE_OCCLUSION)
  2595. float4 probeOcclusion : TEXCOORD8;
  2596. #endif
  2597. float4 ase_texcoord9 : TEXCOORD9;
  2598. float4 ase_texcoord10 : TEXCOORD10;
  2599. float4 ase_color : COLOR;
  2600. UNITY_VERTEX_INPUT_INSTANCE_ID
  2601. UNITY_VERTEX_OUTPUT_STEREO
  2602. };
  2603. CBUFFER_START(UnityPerMaterial)
  2604. float4 _GroundColor;
  2605. float4 _TopColor;
  2606. float4 _DecalsColor;
  2607. float4 _DecakEmissionColor;
  2608. float4 _OreColor;
  2609. float4 _OreEmissionColor;
  2610. float3 _Vector1;
  2611. float3 _SnowDirection;
  2612. float _ANIMATEOREEMISSIONONOFF;
  2613. float _OreEmissionIntensity;
  2614. float _OREEMISSIONONOFF;
  2615. float _ANIMATEDECALEMISSIONONOFF;
  2616. float _DecalEmissionIntensity;
  2617. float _DECALEMISSIONONOFF;
  2618. float _SnowNoiseContrast;
  2619. float _SnowCoverage;
  2620. float _SnowFade;
  2621. float _SnowAmount;
  2622. float _SnowNoiseOnOff;
  2623. float _TopProjectionTextureCoverage;
  2624. float _TopProjectionTextureTiling;
  2625. float _DetailTextureTiling;
  2626. float _Gradient;
  2627. float _WorldObjectGradient;
  2628. float _SnowNoiseScale;
  2629. float _Smoothness;
  2630. #ifdef ASE_TRANSMISSION
  2631. float _TransmissionShadow;
  2632. #endif
  2633. #ifdef ASE_TRANSLUCENCY
  2634. float _TransStrength;
  2635. float _TransNormal;
  2636. float _TransScattering;
  2637. float _TransDirect;
  2638. float _TransAmbient;
  2639. float _TransShadow;
  2640. #endif
  2641. #ifdef ASE_TESSELLATION
  2642. float _TessPhongStrength;
  2643. float _TessValue;
  2644. float _TessMin;
  2645. float _TessMax;
  2646. float _TessEdgeLength;
  2647. float _TessMaxDisp;
  2648. #endif
  2649. CBUFFER_END
  2650. #ifdef SCENEPICKINGPASS
  2651. float4 _SelectionID;
  2652. #endif
  2653. #ifdef SCENESELECTIONPASS
  2654. int _ObjectId;
  2655. int _PassValue;
  2656. #endif
  2657. sampler2D _BaseTexture;
  2658. sampler2D _DetailTexture;
  2659. sampler2D _DecalsTexture;
  2660. sampler2D _TopProjectionTexture;
  2661. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/UnityGBuffer.hlsl"
  2662. inline float4 TriplanarSampling173( sampler2D topTexMap, sampler2D midTexMap, sampler2D botTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index )
  2663. {
  2664. float3 projNormal = ( pow( abs( worldNormal ), falloff ) );
  2665. projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001;
  2666. float3 nsign = sign( worldNormal );
  2667. float negProjNormalY = max( 0, projNormal.y * -nsign.y );
  2668. projNormal.y = max( 0, projNormal.y * nsign.y );
  2669. half4 xNorm; half4 yNorm; half4 yNormN; half4 zNorm;
  2670. xNorm = tex2D( midTexMap, tiling * worldPos.zy * float2( nsign.x, 1.0 ) );
  2671. yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
  2672. yNormN = tex2D( botTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
  2673. zNorm = tex2D( midTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) );
  2674. return xNorm * projNormal.x + yNorm * projNormal.y + yNormN * negProjNormalY + zNorm * projNormal.z;
  2675. }
  2676. inline float4 TriplanarSampling525( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index )
  2677. {
  2678. float3 projNormal = ( pow( abs( worldNormal ), falloff ) );
  2679. projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001;
  2680. float3 nsign = sign( worldNormal );
  2681. half4 xNorm; half4 yNorm; half4 zNorm;
  2682. xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2( nsign.x, 1.0 ) );
  2683. yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
  2684. zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) );
  2685. return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z;
  2686. }
  2687. float3 mod2D289( float3 x ) { return x - floor( x * ( 1.0 / 289.0 ) ) * 289.0; }
  2688. float2 mod2D289( float2 x ) { return x - floor( x * ( 1.0 / 289.0 ) ) * 289.0; }
  2689. float3 permute( float3 x ) { return mod2D289( ( ( x * 34.0 ) + 1.0 ) * x ); }
  2690. float snoise( float2 v )
  2691. {
  2692. const float4 C = float4( 0.211324865405187, 0.366025403784439, -0.577350269189626, 0.024390243902439 );
  2693. float2 i = floor( v + dot( v, C.yy ) );
  2694. float2 x0 = v - i + dot( i, C.xx );
  2695. float2 i1;
  2696. i1 = ( x0.x > x0.y ) ? float2( 1.0, 0.0 ) : float2( 0.0, 1.0 );
  2697. float4 x12 = x0.xyxy + C.xxzz;
  2698. x12.xy -= i1;
  2699. i = mod2D289( i );
  2700. float3 p = permute( permute( i.y + float3( 0.0, i1.y, 1.0 ) ) + i.x + float3( 0.0, i1.x, 1.0 ) );
  2701. float3 m = max( 0.5 - float3( dot( x0, x0 ), dot( x12.xy, x12.xy ), dot( x12.zw, x12.zw ) ), 0.0 );
  2702. m = m * m;
  2703. m = m * m;
  2704. float3 x = 2.0 * frac( p * C.www ) - 1.0;
  2705. float3 h = abs( x ) - 0.5;
  2706. float3 ox = floor( x + 0.5 );
  2707. float3 a0 = x - ox;
  2708. m *= 1.79284291400159 - 0.85373472095314 * ( a0 * a0 + h * h );
  2709. float3 g;
  2710. g.x = a0.x * x0.x + h.x * x0.y;
  2711. g.yz = a0.yz * x12.xz + h.yz * x12.yw;
  2712. return 130.0 * dot( m, g );
  2713. }
  2714. PackedVaryings VertexFunction( Attributes input )
  2715. {
  2716. PackedVaryings output = (PackedVaryings)0;
  2717. UNITY_SETUP_INSTANCE_ID(input);
  2718. UNITY_TRANSFER_INSTANCE_ID(input, output);
  2719. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  2720. output.ase_texcoord9.xy = input.texcoord.xy;
  2721. output.ase_texcoord10 = input.positionOS;
  2722. output.ase_texcoord9.zw = input.texcoord1.xy;
  2723. output.ase_color = input.ase_color;
  2724. #ifdef ASE_ABSOLUTE_VERTEX_POS
  2725. float3 defaultVertexValue = input.positionOS.xyz;
  2726. #else
  2727. float3 defaultVertexValue = float3(0, 0, 0);
  2728. #endif
  2729. float3 vertexValue = defaultVertexValue;
  2730. #ifdef ASE_ABSOLUTE_VERTEX_POS
  2731. input.positionOS.xyz = vertexValue;
  2732. #else
  2733. input.positionOS.xyz += vertexValue;
  2734. #endif
  2735. input.normalOS = input.normalOS;
  2736. input.tangentOS = input.tangentOS;
  2737. VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
  2738. VertexNormalInputs normalInput = GetVertexNormalInputs( input.normalOS, input.tangentOS );
  2739. output.tSpace0 = float4( normalInput.normalWS, vertexInput.positionWS.x);
  2740. output.tSpace1 = float4( normalInput.tangentWS, vertexInput.positionWS.y);
  2741. output.tSpace2 = float4( normalInput.bitangentWS, vertexInput.positionWS.z);
  2742. #if defined(LIGHTMAP_ON)
  2743. OUTPUT_LIGHTMAP_UV(input.texcoord1, unity_LightmapST, output.lightmapUVOrVertexSH.xy);
  2744. #endif
  2745. #if defined(DYNAMICLIGHTMAP_ON)
  2746. output.dynamicLightmapUV.xy = input.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw;
  2747. #endif
  2748. OUTPUT_SH4( vertexInput.positionWS, normalInput.normalWS.xyz, GetWorldSpaceNormalizeViewDir( vertexInput.positionWS ), output.lightmapUVOrVertexSH.xyz, output.probeOcclusion );
  2749. #if defined(ENABLE_TERRAIN_PERPIXEL_NORMAL)
  2750. output.lightmapUVOrVertexSH.zw = input.texcoord.xy;
  2751. output.lightmapUVOrVertexSH.xy = input.texcoord.xy * unity_LightmapST.xy + unity_LightmapST.zw;
  2752. #endif
  2753. #if defined(ASE_FOG) || defined(_ADDITIONAL_LIGHTS_VERTEX)
  2754. output.fogFactorAndVertexLight = 0;
  2755. #if defined(ASE_FOG) && !defined(_FOG_FRAGMENT)
  2756. // @diogo: no fog applied in GBuffer
  2757. #endif
  2758. #ifdef _ADDITIONAL_LIGHTS_VERTEX
  2759. half3 vertexLight = VertexLighting( vertexInput.positionWS, normalInput.normalWS );
  2760. output.fogFactorAndVertexLight.yzw = vertexLight;
  2761. #endif
  2762. #endif
  2763. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  2764. output.shadowCoord = GetShadowCoord( vertexInput );
  2765. #endif
  2766. output.positionCS = vertexInput.positionCS;
  2767. output.clipPosV = vertexInput.positionCS;
  2768. return output;
  2769. }
  2770. #if defined(ASE_TESSELLATION)
  2771. struct VertexControl
  2772. {
  2773. float4 positionOS : INTERNALTESSPOS;
  2774. float3 normalOS : NORMAL;
  2775. float4 tangentOS : TANGENT;
  2776. float4 texcoord : TEXCOORD0;
  2777. float4 texcoord1 : TEXCOORD1;
  2778. float4 texcoord2 : TEXCOORD2;
  2779. float4 ase_color : COLOR;
  2780. UNITY_VERTEX_INPUT_INSTANCE_ID
  2781. };
  2782. struct TessellationFactors
  2783. {
  2784. float edge[3] : SV_TessFactor;
  2785. float inside : SV_InsideTessFactor;
  2786. };
  2787. VertexControl vert ( Attributes input )
  2788. {
  2789. VertexControl output;
  2790. UNITY_SETUP_INSTANCE_ID(input);
  2791. UNITY_TRANSFER_INSTANCE_ID(input, output);
  2792. output.positionOS = input.positionOS;
  2793. output.normalOS = input.normalOS;
  2794. output.tangentOS = input.tangentOS;
  2795. output.texcoord = input.texcoord;
  2796. output.texcoord1 = input.texcoord1;
  2797. output.texcoord2 = input.texcoord2;
  2798. output.ase_color = input.ase_color;
  2799. return output;
  2800. }
  2801. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  2802. {
  2803. TessellationFactors output;
  2804. float4 tf = 1;
  2805. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  2806. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  2807. #if defined(ASE_FIXED_TESSELLATION)
  2808. tf = FixedTess( tessValue );
  2809. #elif defined(ASE_DISTANCE_TESSELLATION)
  2810. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  2811. #elif defined(ASE_LENGTH_TESSELLATION)
  2812. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  2813. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  2814. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  2815. #endif
  2816. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  2817. return output;
  2818. }
  2819. [domain("tri")]
  2820. [partitioning("fractional_odd")]
  2821. [outputtopology("triangle_cw")]
  2822. [patchconstantfunc("TessellationFunction")]
  2823. [outputcontrolpoints(3)]
  2824. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  2825. {
  2826. return patch[id];
  2827. }
  2828. [domain("tri")]
  2829. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  2830. {
  2831. Attributes output = (Attributes) 0;
  2832. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  2833. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  2834. output.tangentOS = patch[0].tangentOS * bary.x + patch[1].tangentOS * bary.y + patch[2].tangentOS * bary.z;
  2835. output.texcoord = patch[0].texcoord * bary.x + patch[1].texcoord * bary.y + patch[2].texcoord * bary.z;
  2836. output.texcoord1 = patch[0].texcoord1 * bary.x + patch[1].texcoord1 * bary.y + patch[2].texcoord1 * bary.z;
  2837. output.texcoord2 = patch[0].texcoord2 * bary.x + patch[1].texcoord2 * bary.y + patch[2].texcoord2 * bary.z;
  2838. output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  2839. #if defined(ASE_PHONG_TESSELLATION)
  2840. float3 pp[3];
  2841. for (int i = 0; i < 3; ++i)
  2842. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  2843. float phongStrength = _TessPhongStrength;
  2844. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  2845. #endif
  2846. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  2847. return VertexFunction(output);
  2848. }
  2849. #else
  2850. PackedVaryings vert ( Attributes input )
  2851. {
  2852. return VertexFunction( input );
  2853. }
  2854. #endif
  2855. FragmentOutput frag ( PackedVaryings input
  2856. #ifdef ASE_DEPTH_WRITE_ON
  2857. ,out float outputDepth : ASE_SV_DEPTH
  2858. #endif
  2859. )
  2860. {
  2861. UNITY_SETUP_INSTANCE_ID(input);
  2862. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
  2863. #if defined(LOD_FADE_CROSSFADE)
  2864. LODFadeCrossFade( input.positionCS );
  2865. #endif
  2866. #if defined(ENABLE_TERRAIN_PERPIXEL_NORMAL)
  2867. float2 sampleCoords = (input.lightmapUVOrVertexSH.zw / _TerrainHeightmapRecipSize.zw + 0.5f) * _TerrainHeightmapRecipSize.xy;
  2868. float3 WorldNormal = TransformObjectToWorldNormal(normalize(SAMPLE_TEXTURE2D(_TerrainNormalmapTexture, sampler_TerrainNormalmapTexture, sampleCoords).rgb * 2 - 1));
  2869. float3 WorldTangent = -cross(GetObjectToWorldMatrix()._13_23_33, WorldNormal);
  2870. float3 WorldBiTangent = cross(WorldNormal, -WorldTangent);
  2871. #else
  2872. float3 WorldNormal = normalize( input.tSpace0.xyz );
  2873. float3 WorldTangent = input.tSpace1.xyz;
  2874. float3 WorldBiTangent = input.tSpace2.xyz;
  2875. #endif
  2876. float3 WorldPosition = float3(input.tSpace0.w,input.tSpace1.w,input.tSpace2.w);
  2877. float3 WorldViewDirection = _WorldSpaceCameraPos.xyz - WorldPosition;
  2878. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  2879. float4 ClipPos = input.clipPosV;
  2880. float4 ScreenPos = ComputeScreenPos( input.clipPosV );
  2881. float2 NormalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(input.positionCS);
  2882. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  2883. ShadowCoords = input.shadowCoord;
  2884. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  2885. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  2886. #else
  2887. ShadowCoords = float4(0, 0, 0, 0);
  2888. #endif
  2889. WorldViewDirection = SafeNormalize( WorldViewDirection );
  2890. float2 uv_BaseTexture490 = input.ase_texcoord9.xy;
  2891. float4 BASETEXTURE498 = tex2D( _BaseTexture, uv_BaseTexture490 );
  2892. float clampResult627 = clamp( ( ( (( _WorldObjectGradient )?( input.ase_texcoord10.y ):( WorldPosition.y )) + 1.5 ) * _Gradient ) , -1.0 , 1.0 );
  2893. float4 lerpResult629 = lerp( _GroundColor , _TopColor , clampResult627);
  2894. float4 Gradient630 = lerpResult629;
  2895. float4 color644 = IsGammaSpace() ? float4(0.8962264,0.8962264,0.8962264,0) : float4(0.7799658,0.7799658,0.7799658,0);
  2896. float4 blendOpSrc643 = BASETEXTURE498;
  2897. float4 blendOpDest643 = color644;
  2898. #ifdef _GRADIENTONOFF_ON
  2899. float4 staticSwitch634 = ( Gradient630 * ( saturate( (( blendOpSrc643 > 0.5 ) ? ( 1.0 - ( 1.0 - 2.0 * ( blendOpSrc643 - 0.5 ) ) * ( 1.0 - blendOpDest643 ) ) : ( 2.0 * blendOpSrc643 * blendOpDest643 ) ) )) );
  2900. #else
  2901. float4 staticSwitch634 = BASETEXTURE498;
  2902. #endif
  2903. float2 temp_cast_0 = (_DetailTextureTiling).xx;
  2904. float4 triplanar173 = TriplanarSampling173( _DetailTexture, _DetailTexture, _DetailTexture, WorldPosition, WorldNormal, 1.0, temp_cast_0, float3( 1,1,1 ), float3(0,0,0) );
  2905. float4 DETAILTEXTUREvar414 = triplanar173;
  2906. #ifdef _DETAILTEXTUREONOFF_ON
  2907. float4 staticSwitch543 = ( DETAILTEXTUREvar414 * staticSwitch634 );
  2908. #else
  2909. float4 staticSwitch543 = staticSwitch634;
  2910. #endif
  2911. float4 decalscolor730 = _DecalsColor;
  2912. float2 uv1_DecalsTexture495 = input.ase_texcoord9.zw;
  2913. float DECALSMASK497 = tex2D( _DecalsTexture, uv1_DecalsTexture495 ).a;
  2914. float4 lerpResult596 = lerp( staticSwitch543 , decalscolor730 , DECALSMASK497);
  2915. #ifdef _DECALSONOFF_ON
  2916. float4 staticSwitch600 = lerpResult596;
  2917. #else
  2918. float4 staticSwitch600 = staticSwitch543;
  2919. #endif
  2920. float2 temp_cast_4 = (_TopProjectionTextureTiling).xx;
  2921. float4 triplanar525 = TriplanarSampling525( _TopProjectionTexture, WorldPosition, WorldNormal, 1.0, temp_cast_4, 1.0, 0 );
  2922. float4 TOPPROJECTION527 = triplanar525;
  2923. float dotResult524 = dot( WorldNormal , _Vector1 );
  2924. float saferPower582 = abs( ( ( dotResult524 * _TopProjectionTextureCoverage ) * 3.0 ) );
  2925. float clampResult584 = clamp( pow( saferPower582 , 5.0 ) , 0.0 , 1.0 );
  2926. float TOPPROJECTIONMASK528 = clampResult584;
  2927. float4 lerpResult555 = lerp( staticSwitch600 , TOPPROJECTION527 , TOPPROJECTIONMASK528);
  2928. #ifdef _TOPPROJECTIONONOFF_ON
  2929. float4 staticSwitch557 = lerpResult555;
  2930. #else
  2931. float4 staticSwitch557 = staticSwitch600;
  2932. #endif
  2933. float4 color205 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
  2934. float dotResult211 = dot( WorldNormal , _SnowDirection );
  2935. float smoothstepResult552 = smoothstep( 0.0 , _SnowFade , ( (-1.0 + (_SnowCoverage - 0.0) * (1.0 - -1.0) / (1.0 - 0.0)) + dotResult211 ));
  2936. float4 temp_output_363_0 = ( ( (0.0 + (_SnowAmount - 0.0) * (10.0 - 0.0) / (1.0 - 0.0)) * color205 ) * smoothstepResult552 );
  2937. float4 transform200 = mul(GetWorldToObjectMatrix(),float4( WorldPosition , 0.0 ));
  2938. float4 appendResult209 = (float4(transform200.x , transform200.z , 0.0 , 0.0));
  2939. float simplePerlin2D213 = snoise( appendResult209.xy*_SnowNoiseScale );
  2940. simplePerlin2D213 = simplePerlin2D213*0.5 + 0.5;
  2941. float saferPower216 = abs( simplePerlin2D213 );
  2942. float4 SNOW220 = (( _SnowNoiseOnOff )?( ( pow( saferPower216 , _SnowNoiseContrast ) * temp_output_363_0 ) ):( temp_output_363_0 ));
  2943. #ifdef _SNOWONOFF_ON
  2944. float4 staticSwitch545 = ( staticSwitch557 + SNOW220 );
  2945. #else
  2946. float4 staticSwitch545 = staticSwitch557;
  2947. #endif
  2948. float4 lerpResult607 = lerp( staticSwitch545 , _OreColor , ( 1.0 - input.ase_color.a ));
  2949. float4 COLOR539 = lerpResult607;
  2950. float3 temp_cast_9 = (1.0).xxx;
  2951. float4 color717 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
  2952. float4 color716 = IsGammaSpace() ? float4(0,0,0,0) : float4(0,0,0,0);
  2953. float4 lerpResult718 = lerp( color717 , color716 , (_TimeParameters.y*0.3 + 0.5));
  2954. float3 desaturateInitialColor720 = lerpResult718.rgb;
  2955. float desaturateDot720 = dot( desaturateInitialColor720, float3( 0.299, 0.587, 0.114 ));
  2956. float3 desaturateVar720 = lerp( desaturateInitialColor720, desaturateDot720.xxx, 1.0 );
  2957. float4 Decalemission685 = (( _DECALEMISSIONONOFF )?( ( ( float4( ( _DecalEmissionIntensity * (( _ANIMATEDECALEMISSIONONOFF )?( desaturateVar720 ):( temp_cast_9 )) ) , 0.0 ) * _DecakEmissionColor ) * DECALSMASK497 ) ):( float4( 0,0,0,0 ) ));
  2958. float3 temp_cast_12 = (0.1).xxx;
  2959. float4 color701 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
  2960. float4 color702 = IsGammaSpace() ? float4(0,0,0,0) : float4(0,0,0,0);
  2961. float4 lerpResult703 = lerp( color701 , color702 , (_TimeParameters.y*0.3 + 0.5));
  2962. float3 desaturateInitialColor704 = lerpResult703.rgb;
  2963. float desaturateDot704 = dot( desaturateInitialColor704, float3( 0.299, 0.587, 0.114 ));
  2964. float3 desaturateVar704 = lerp( desaturateInitialColor704, desaturateDot704.xxx, 1.0 );
  2965. float4 oreemission684 = (( _OREEMISSIONONOFF )?( ( ( float4( ( _OreEmissionIntensity * (( _ANIMATEOREEMISSIONONOFF )?( desaturateVar704 ):( temp_cast_12 )) ) , 0.0 ) * _OreEmissionColor ) * ( 1.0 - input.ase_color.a ) ) ):( float4( 0,0,0,0 ) ));
  2966. float4 color617 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
  2967. float3 BaseColor = COLOR539.rgb;
  2968. float3 Normal = float3(0, 0, 1);
  2969. float3 Emission = ( Decalemission685 + oreemission684 ).rgb;
  2970. float3 Specular = 0.5;
  2971. float Metallic = 0;
  2972. float Smoothness = ( _Smoothness * color617 ).r;
  2973. float Occlusion = 1;
  2974. float Alpha = 1;
  2975. float AlphaClipThreshold = 0.5;
  2976. float AlphaClipThresholdShadow = 0.5;
  2977. float3 BakedGI = 0;
  2978. float3 RefractionColor = 1;
  2979. float RefractionIndex = 1;
  2980. float3 Transmission = 1;
  2981. float3 Translucency = 1;
  2982. #ifdef ASE_DEPTH_WRITE_ON
  2983. float DepthValue = input.positionCS.z;
  2984. #endif
  2985. #ifdef _ALPHATEST_ON
  2986. clip(Alpha - AlphaClipThreshold);
  2987. #endif
  2988. InputData inputData = (InputData)0;
  2989. inputData.positionWS = WorldPosition;
  2990. inputData.positionCS = input.positionCS;
  2991. inputData.shadowCoord = ShadowCoords;
  2992. #ifdef _NORMALMAP
  2993. #if _NORMAL_DROPOFF_TS
  2994. inputData.normalWS = TransformTangentToWorld(Normal, half3x3( WorldTangent, WorldBiTangent, WorldNormal ));
  2995. #elif _NORMAL_DROPOFF_OS
  2996. inputData.normalWS = TransformObjectToWorldNormal(Normal);
  2997. #elif _NORMAL_DROPOFF_WS
  2998. inputData.normalWS = Normal;
  2999. #endif
  3000. #else
  3001. inputData.normalWS = WorldNormal;
  3002. #endif
  3003. inputData.normalWS = NormalizeNormalPerPixel(inputData.normalWS);
  3004. inputData.viewDirectionWS = SafeNormalize( WorldViewDirection );
  3005. #ifdef ASE_FOG
  3006. // @diogo: no fog applied in GBuffer
  3007. #endif
  3008. #ifdef _ADDITIONAL_LIGHTS_VERTEX
  3009. inputData.vertexLighting = input.fogFactorAndVertexLight.yzw;
  3010. #endif
  3011. #if defined(ENABLE_TERRAIN_PERPIXEL_NORMAL)
  3012. float3 SH = SampleSH(inputData.normalWS.xyz);
  3013. #else
  3014. float3 SH = input.lightmapUVOrVertexSH.xyz;
  3015. #endif
  3016. #if defined(DYNAMICLIGHTMAP_ON)
  3017. inputData.bakedGI = SAMPLE_GI(input.lightmapUVOrVertexSH.xy, input.dynamicLightmapUV.xy, SH, inputData.normalWS);
  3018. inputData.shadowMask = SAMPLE_SHADOWMASK(input.lightmapUVOrVertexSH.xy);
  3019. #elif !defined(LIGHTMAP_ON) && (defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2))
  3020. inputData.bakedGI = SAMPLE_GI( SH, GetAbsolutePositionWS(inputData.positionWS),
  3021. inputData.normalWS,
  3022. inputData.viewDirectionWS,
  3023. input.positionCS.xy,
  3024. input.probeOcclusion,
  3025. inputData.shadowMask );
  3026. #else
  3027. inputData.bakedGI = SAMPLE_GI(input.lightmapUVOrVertexSH.xy, SH, inputData.normalWS);
  3028. inputData.shadowMask = SAMPLE_SHADOWMASK(input.lightmapUVOrVertexSH.xy);
  3029. #endif
  3030. #ifdef ASE_BAKEDGI
  3031. inputData.bakedGI = BakedGI;
  3032. #endif
  3033. inputData.normalizedScreenSpaceUV = NormalizedScreenSpaceUV;
  3034. #if defined(DEBUG_DISPLAY)
  3035. #if defined(DYNAMICLIGHTMAP_ON)
  3036. inputData.dynamicLightmapUV = input.dynamicLightmapUV.xy;
  3037. #endif
  3038. #if defined(LIGHTMAP_ON)
  3039. inputData.staticLightmapUV = input.lightmapUVOrVertexSH.xy;
  3040. #else
  3041. inputData.vertexSH = SH;
  3042. #endif
  3043. #if defined(USE_APV_PROBE_OCCLUSION)
  3044. inputData.probeOcclusion = input.probeOcclusion;
  3045. #endif
  3046. #endif
  3047. #ifdef _DBUFFER
  3048. ApplyDecal(input.positionCS,
  3049. BaseColor,
  3050. Specular,
  3051. inputData.normalWS,
  3052. Metallic,
  3053. Occlusion,
  3054. Smoothness);
  3055. #endif
  3056. BRDFData brdfData;
  3057. InitializeBRDFData
  3058. (BaseColor, Metallic, Specular, Smoothness, Alpha, brdfData);
  3059. Light mainLight = GetMainLight(inputData.shadowCoord, inputData.positionWS, inputData.shadowMask);
  3060. half4 color;
  3061. MixRealtimeAndBakedGI(mainLight, inputData.normalWS, inputData.bakedGI, inputData.shadowMask);
  3062. color.rgb = GlobalIllumination(brdfData, inputData.bakedGI, Occlusion, inputData.positionWS, inputData.normalWS, inputData.viewDirectionWS);
  3063. color.a = Alpha;
  3064. #ifdef ASE_FINAL_COLOR_ALPHA_MULTIPLY
  3065. color.rgb *= color.a;
  3066. #endif
  3067. #ifdef ASE_DEPTH_WRITE_ON
  3068. outputDepth = DepthValue;
  3069. #endif
  3070. return BRDFDataToGbuffer(brdfData, inputData, Smoothness, Emission + color.rgb, Occlusion);
  3071. }
  3072. ENDHLSL
  3073. }
  3074. Pass
  3075. {
  3076. Name "SceneSelectionPass"
  3077. Tags { "LightMode"="SceneSelectionPass" }
  3078. Cull Off
  3079. AlphaToMask Off
  3080. HLSLPROGRAM
  3081. #define _NORMAL_DROPOFF_TS 1
  3082. #define ASE_FOG 1
  3083. #define _EMISSION
  3084. #define ASE_VERSION 19800
  3085. #define ASE_SRP_VERSION 170003
  3086. #pragma vertex vert
  3087. #pragma fragment frag
  3088. #if defined(_SPECULAR_SETUP) && defined(_ASE_LIGHTING_SIMPLE)
  3089. #define _SPECULAR_COLOR 1
  3090. #endif
  3091. #define SCENESELECTIONPASS 1
  3092. #define ATTRIBUTES_NEED_NORMAL
  3093. #define ATTRIBUTES_NEED_TANGENT
  3094. #define SHADERPASS SHADERPASS_DEPTHONLY
  3095. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  3096. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  3097. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  3098. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  3099. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  3100. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  3101. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  3102. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
  3103. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
  3104. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  3105. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  3106. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  3107. struct Attributes
  3108. {
  3109. float4 positionOS : POSITION;
  3110. float3 normalOS : NORMAL;
  3111. UNITY_VERTEX_INPUT_INSTANCE_ID
  3112. };
  3113. struct PackedVaryings
  3114. {
  3115. float4 positionCS : SV_POSITION;
  3116. UNITY_VERTEX_INPUT_INSTANCE_ID
  3117. UNITY_VERTEX_OUTPUT_STEREO
  3118. };
  3119. CBUFFER_START(UnityPerMaterial)
  3120. float4 _GroundColor;
  3121. float4 _TopColor;
  3122. float4 _DecalsColor;
  3123. float4 _DecakEmissionColor;
  3124. float4 _OreColor;
  3125. float4 _OreEmissionColor;
  3126. float3 _Vector1;
  3127. float3 _SnowDirection;
  3128. float _ANIMATEOREEMISSIONONOFF;
  3129. float _OreEmissionIntensity;
  3130. float _OREEMISSIONONOFF;
  3131. float _ANIMATEDECALEMISSIONONOFF;
  3132. float _DecalEmissionIntensity;
  3133. float _DECALEMISSIONONOFF;
  3134. float _SnowNoiseContrast;
  3135. float _SnowCoverage;
  3136. float _SnowFade;
  3137. float _SnowAmount;
  3138. float _SnowNoiseOnOff;
  3139. float _TopProjectionTextureCoverage;
  3140. float _TopProjectionTextureTiling;
  3141. float _DetailTextureTiling;
  3142. float _Gradient;
  3143. float _WorldObjectGradient;
  3144. float _SnowNoiseScale;
  3145. float _Smoothness;
  3146. #ifdef ASE_TRANSMISSION
  3147. float _TransmissionShadow;
  3148. #endif
  3149. #ifdef ASE_TRANSLUCENCY
  3150. float _TransStrength;
  3151. float _TransNormal;
  3152. float _TransScattering;
  3153. float _TransDirect;
  3154. float _TransAmbient;
  3155. float _TransShadow;
  3156. #endif
  3157. #ifdef ASE_TESSELLATION
  3158. float _TessPhongStrength;
  3159. float _TessValue;
  3160. float _TessMin;
  3161. float _TessMax;
  3162. float _TessEdgeLength;
  3163. float _TessMaxDisp;
  3164. #endif
  3165. CBUFFER_END
  3166. #ifdef SCENEPICKINGPASS
  3167. float4 _SelectionID;
  3168. #endif
  3169. #ifdef SCENESELECTIONPASS
  3170. int _ObjectId;
  3171. int _PassValue;
  3172. #endif
  3173. struct SurfaceDescription
  3174. {
  3175. float Alpha;
  3176. float AlphaClipThreshold;
  3177. };
  3178. PackedVaryings VertexFunction(Attributes input )
  3179. {
  3180. PackedVaryings output;
  3181. ZERO_INITIALIZE(PackedVaryings, output);
  3182. UNITY_SETUP_INSTANCE_ID(input);
  3183. UNITY_TRANSFER_INSTANCE_ID(input, output);
  3184. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  3185. #ifdef ASE_ABSOLUTE_VERTEX_POS
  3186. float3 defaultVertexValue = input.positionOS.xyz;
  3187. #else
  3188. float3 defaultVertexValue = float3(0, 0, 0);
  3189. #endif
  3190. float3 vertexValue = defaultVertexValue;
  3191. #ifdef ASE_ABSOLUTE_VERTEX_POS
  3192. input.positionOS.xyz = vertexValue;
  3193. #else
  3194. input.positionOS.xyz += vertexValue;
  3195. #endif
  3196. input.normalOS = input.normalOS;
  3197. float3 positionWS = TransformObjectToWorld( input.positionOS.xyz );
  3198. output.positionCS = TransformWorldToHClip(positionWS);
  3199. return output;
  3200. }
  3201. #if defined(ASE_TESSELLATION)
  3202. struct VertexControl
  3203. {
  3204. float4 positionOS : INTERNALTESSPOS;
  3205. float3 normalOS : NORMAL;
  3206. UNITY_VERTEX_INPUT_INSTANCE_ID
  3207. };
  3208. struct TessellationFactors
  3209. {
  3210. float edge[3] : SV_TessFactor;
  3211. float inside : SV_InsideTessFactor;
  3212. };
  3213. VertexControl vert ( Attributes input )
  3214. {
  3215. VertexControl output;
  3216. UNITY_SETUP_INSTANCE_ID(input);
  3217. UNITY_TRANSFER_INSTANCE_ID(input, output);
  3218. output.positionOS = input.positionOS;
  3219. output.normalOS = input.normalOS;
  3220. return output;
  3221. }
  3222. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  3223. {
  3224. TessellationFactors output;
  3225. float4 tf = 1;
  3226. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  3227. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  3228. #if defined(ASE_FIXED_TESSELLATION)
  3229. tf = FixedTess( tessValue );
  3230. #elif defined(ASE_DISTANCE_TESSELLATION)
  3231. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  3232. #elif defined(ASE_LENGTH_TESSELLATION)
  3233. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  3234. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  3235. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  3236. #endif
  3237. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  3238. return output;
  3239. }
  3240. [domain("tri")]
  3241. [partitioning("fractional_odd")]
  3242. [outputtopology("triangle_cw")]
  3243. [patchconstantfunc("TessellationFunction")]
  3244. [outputcontrolpoints(3)]
  3245. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  3246. {
  3247. return patch[id];
  3248. }
  3249. [domain("tri")]
  3250. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  3251. {
  3252. Attributes output = (Attributes) 0;
  3253. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  3254. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  3255. #if defined(ASE_PHONG_TESSELLATION)
  3256. float3 pp[3];
  3257. for (int i = 0; i < 3; ++i)
  3258. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  3259. float phongStrength = _TessPhongStrength;
  3260. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  3261. #endif
  3262. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  3263. return VertexFunction(output);
  3264. }
  3265. #else
  3266. PackedVaryings vert ( Attributes input )
  3267. {
  3268. return VertexFunction( input );
  3269. }
  3270. #endif
  3271. half4 frag(PackedVaryings input ) : SV_Target
  3272. {
  3273. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  3274. surfaceDescription.Alpha = 1;
  3275. surfaceDescription.AlphaClipThreshold = 0.5;
  3276. #if _ALPHATEST_ON
  3277. float alphaClipThreshold = 0.01f;
  3278. #if ALPHA_CLIP_THRESHOLD
  3279. alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
  3280. #endif
  3281. clip(surfaceDescription.Alpha - alphaClipThreshold);
  3282. #endif
  3283. half4 outColor = 0;
  3284. #ifdef SCENESELECTIONPASS
  3285. outColor = half4(_ObjectId, _PassValue, 1.0, 1.0);
  3286. #elif defined(SCENEPICKINGPASS)
  3287. outColor = _SelectionID;
  3288. #endif
  3289. return outColor;
  3290. }
  3291. ENDHLSL
  3292. }
  3293. Pass
  3294. {
  3295. Name "ScenePickingPass"
  3296. Tags { "LightMode"="Picking" }
  3297. AlphaToMask Off
  3298. HLSLPROGRAM
  3299. #define _NORMAL_DROPOFF_TS 1
  3300. #define ASE_FOG 1
  3301. #define _EMISSION
  3302. #define ASE_VERSION 19800
  3303. #define ASE_SRP_VERSION 170003
  3304. #pragma vertex vert
  3305. #pragma fragment frag
  3306. #if defined(_SPECULAR_SETUP) && defined(_ASE_LIGHTING_SIMPLE)
  3307. #define _SPECULAR_COLOR 1
  3308. #endif
  3309. #define SCENEPICKINGPASS 1
  3310. #define ATTRIBUTES_NEED_NORMAL
  3311. #define ATTRIBUTES_NEED_TANGENT
  3312. #define SHADERPASS SHADERPASS_DEPTHONLY
  3313. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  3314. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  3315. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  3316. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  3317. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  3318. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  3319. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  3320. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
  3321. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
  3322. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  3323. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  3324. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  3325. struct Attributes
  3326. {
  3327. float4 positionOS : POSITION;
  3328. float3 normalOS : NORMAL;
  3329. UNITY_VERTEX_INPUT_INSTANCE_ID
  3330. };
  3331. struct PackedVaryings
  3332. {
  3333. float4 positionCS : SV_POSITION;
  3334. UNITY_VERTEX_INPUT_INSTANCE_ID
  3335. UNITY_VERTEX_OUTPUT_STEREO
  3336. };
  3337. CBUFFER_START(UnityPerMaterial)
  3338. float4 _GroundColor;
  3339. float4 _TopColor;
  3340. float4 _DecalsColor;
  3341. float4 _DecakEmissionColor;
  3342. float4 _OreColor;
  3343. float4 _OreEmissionColor;
  3344. float3 _Vector1;
  3345. float3 _SnowDirection;
  3346. float _ANIMATEOREEMISSIONONOFF;
  3347. float _OreEmissionIntensity;
  3348. float _OREEMISSIONONOFF;
  3349. float _ANIMATEDECALEMISSIONONOFF;
  3350. float _DecalEmissionIntensity;
  3351. float _DECALEMISSIONONOFF;
  3352. float _SnowNoiseContrast;
  3353. float _SnowCoverage;
  3354. float _SnowFade;
  3355. float _SnowAmount;
  3356. float _SnowNoiseOnOff;
  3357. float _TopProjectionTextureCoverage;
  3358. float _TopProjectionTextureTiling;
  3359. float _DetailTextureTiling;
  3360. float _Gradient;
  3361. float _WorldObjectGradient;
  3362. float _SnowNoiseScale;
  3363. float _Smoothness;
  3364. #ifdef ASE_TRANSMISSION
  3365. float _TransmissionShadow;
  3366. #endif
  3367. #ifdef ASE_TRANSLUCENCY
  3368. float _TransStrength;
  3369. float _TransNormal;
  3370. float _TransScattering;
  3371. float _TransDirect;
  3372. float _TransAmbient;
  3373. float _TransShadow;
  3374. #endif
  3375. #ifdef ASE_TESSELLATION
  3376. float _TessPhongStrength;
  3377. float _TessValue;
  3378. float _TessMin;
  3379. float _TessMax;
  3380. float _TessEdgeLength;
  3381. float _TessMaxDisp;
  3382. #endif
  3383. CBUFFER_END
  3384. #ifdef SCENEPICKINGPASS
  3385. float4 _SelectionID;
  3386. #endif
  3387. #ifdef SCENESELECTIONPASS
  3388. int _ObjectId;
  3389. int _PassValue;
  3390. #endif
  3391. struct SurfaceDescription
  3392. {
  3393. float Alpha;
  3394. float AlphaClipThreshold;
  3395. };
  3396. PackedVaryings VertexFunction(Attributes input )
  3397. {
  3398. PackedVaryings output;
  3399. ZERO_INITIALIZE(PackedVaryings, output);
  3400. UNITY_SETUP_INSTANCE_ID(input);
  3401. UNITY_TRANSFER_INSTANCE_ID(input, output);
  3402. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  3403. #ifdef ASE_ABSOLUTE_VERTEX_POS
  3404. float3 defaultVertexValue = input.positionOS.xyz;
  3405. #else
  3406. float3 defaultVertexValue = float3(0, 0, 0);
  3407. #endif
  3408. float3 vertexValue = defaultVertexValue;
  3409. #ifdef ASE_ABSOLUTE_VERTEX_POS
  3410. input.positionOS.xyz = vertexValue;
  3411. #else
  3412. input.positionOS.xyz += vertexValue;
  3413. #endif
  3414. input.normalOS = input.normalOS;
  3415. float3 positionWS = TransformObjectToWorld( input.positionOS.xyz );
  3416. output.positionCS = TransformWorldToHClip(positionWS);
  3417. return output;
  3418. }
  3419. #if defined(ASE_TESSELLATION)
  3420. struct VertexControl
  3421. {
  3422. float4 positionOS : INTERNALTESSPOS;
  3423. float3 normalOS : NORMAL;
  3424. UNITY_VERTEX_INPUT_INSTANCE_ID
  3425. };
  3426. struct TessellationFactors
  3427. {
  3428. float edge[3] : SV_TessFactor;
  3429. float inside : SV_InsideTessFactor;
  3430. };
  3431. VertexControl vert ( Attributes input )
  3432. {
  3433. VertexControl output;
  3434. UNITY_SETUP_INSTANCE_ID(input);
  3435. UNITY_TRANSFER_INSTANCE_ID(input, output);
  3436. output.positionOS = input.positionOS;
  3437. output.normalOS = input.normalOS;
  3438. return output;
  3439. }
  3440. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  3441. {
  3442. TessellationFactors output;
  3443. float4 tf = 1;
  3444. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  3445. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  3446. #if defined(ASE_FIXED_TESSELLATION)
  3447. tf = FixedTess( tessValue );
  3448. #elif defined(ASE_DISTANCE_TESSELLATION)
  3449. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  3450. #elif defined(ASE_LENGTH_TESSELLATION)
  3451. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  3452. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  3453. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  3454. #endif
  3455. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  3456. return output;
  3457. }
  3458. [domain("tri")]
  3459. [partitioning("fractional_odd")]
  3460. [outputtopology("triangle_cw")]
  3461. [patchconstantfunc("TessellationFunction")]
  3462. [outputcontrolpoints(3)]
  3463. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  3464. {
  3465. return patch[id];
  3466. }
  3467. [domain("tri")]
  3468. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  3469. {
  3470. Attributes output = (Attributes) 0;
  3471. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  3472. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  3473. #if defined(ASE_PHONG_TESSELLATION)
  3474. float3 pp[3];
  3475. for (int i = 0; i < 3; ++i)
  3476. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  3477. float phongStrength = _TessPhongStrength;
  3478. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  3479. #endif
  3480. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  3481. return VertexFunction(output);
  3482. }
  3483. #else
  3484. PackedVaryings vert ( Attributes input )
  3485. {
  3486. return VertexFunction( input );
  3487. }
  3488. #endif
  3489. half4 frag(PackedVaryings input ) : SV_Target
  3490. {
  3491. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  3492. surfaceDescription.Alpha = 1;
  3493. surfaceDescription.AlphaClipThreshold = 0.5;
  3494. #if _ALPHATEST_ON
  3495. float alphaClipThreshold = 0.01f;
  3496. #if ALPHA_CLIP_THRESHOLD
  3497. alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
  3498. #endif
  3499. clip(surfaceDescription.Alpha - alphaClipThreshold);
  3500. #endif
  3501. half4 outColor = 0;
  3502. #ifdef SCENESELECTIONPASS
  3503. outColor = half4(_ObjectId, _PassValue, 1.0, 1.0);
  3504. #elif defined(SCENEPICKINGPASS)
  3505. outColor = _SelectionID;
  3506. #endif
  3507. return outColor;
  3508. }
  3509. ENDHLSL
  3510. }
  3511. Pass
  3512. {
  3513. Name "MotionVectors"
  3514. Tags { "LightMode"="MotionVectors" }
  3515. ColorMask RG
  3516. HLSLPROGRAM
  3517. #pragma multi_compile _ALPHATEST_ON
  3518. #define _NORMAL_DROPOFF_TS 1
  3519. #pragma multi_compile_instancing
  3520. #pragma multi_compile _ LOD_FADE_CROSSFADE
  3521. #define ASE_FOG 1
  3522. #define _EMISSION
  3523. #define ASE_VERSION 19800
  3524. #define ASE_SRP_VERSION 170003
  3525. #pragma vertex vert
  3526. #pragma fragment frag
  3527. #if defined(_SPECULAR_SETUP) && defined(_ASE_LIGHTING_SIMPLE)
  3528. #define _SPECULAR_COLOR 1
  3529. #endif
  3530. #define SHADERPASS SHADERPASS_MOTION_VECTORS
  3531. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  3532. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
  3533. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  3534. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  3535. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  3536. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  3537. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  3538. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  3539. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  3540. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
  3541. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
  3542. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  3543. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  3544. #if defined(LOD_FADE_CROSSFADE)
  3545. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
  3546. #endif
  3547. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/MotionVectorsCommon.hlsl"
  3548. struct Attributes
  3549. {
  3550. float4 positionOS : POSITION;
  3551. float3 positionOld : TEXCOORD4;
  3552. #if _ADD_PRECOMPUTED_VELOCITY
  3553. float3 alembicMotionVector : TEXCOORD5;
  3554. #endif
  3555. UNITY_VERTEX_INPUT_INSTANCE_ID
  3556. };
  3557. struct PackedVaryings
  3558. {
  3559. float4 positionCS : SV_POSITION;
  3560. float4 positionCSNoJitter : TEXCOORD0;
  3561. float4 previousPositionCSNoJitter : TEXCOORD1;
  3562. UNITY_VERTEX_INPUT_INSTANCE_ID
  3563. UNITY_VERTEX_OUTPUT_STEREO
  3564. };
  3565. CBUFFER_START(UnityPerMaterial)
  3566. float4 _GroundColor;
  3567. float4 _TopColor;
  3568. float4 _DecalsColor;
  3569. float4 _DecakEmissionColor;
  3570. float4 _OreColor;
  3571. float4 _OreEmissionColor;
  3572. float3 _Vector1;
  3573. float3 _SnowDirection;
  3574. float _ANIMATEOREEMISSIONONOFF;
  3575. float _OreEmissionIntensity;
  3576. float _OREEMISSIONONOFF;
  3577. float _ANIMATEDECALEMISSIONONOFF;
  3578. float _DecalEmissionIntensity;
  3579. float _DECALEMISSIONONOFF;
  3580. float _SnowNoiseContrast;
  3581. float _SnowCoverage;
  3582. float _SnowFade;
  3583. float _SnowAmount;
  3584. float _SnowNoiseOnOff;
  3585. float _TopProjectionTextureCoverage;
  3586. float _TopProjectionTextureTiling;
  3587. float _DetailTextureTiling;
  3588. float _Gradient;
  3589. float _WorldObjectGradient;
  3590. float _SnowNoiseScale;
  3591. float _Smoothness;
  3592. #ifdef ASE_TRANSMISSION
  3593. float _TransmissionShadow;
  3594. #endif
  3595. #ifdef ASE_TRANSLUCENCY
  3596. float _TransStrength;
  3597. float _TransNormal;
  3598. float _TransScattering;
  3599. float _TransDirect;
  3600. float _TransAmbient;
  3601. float _TransShadow;
  3602. #endif
  3603. #ifdef ASE_TESSELLATION
  3604. float _TessPhongStrength;
  3605. float _TessValue;
  3606. float _TessMin;
  3607. float _TessMax;
  3608. float _TessEdgeLength;
  3609. float _TessMaxDisp;
  3610. #endif
  3611. CBUFFER_END
  3612. #ifdef SCENEPICKINGPASS
  3613. float4 _SelectionID;
  3614. #endif
  3615. #ifdef SCENESELECTIONPASS
  3616. int _ObjectId;
  3617. int _PassValue;
  3618. #endif
  3619. PackedVaryings VertexFunction( Attributes input )
  3620. {
  3621. PackedVaryings output = (PackedVaryings)0;
  3622. UNITY_SETUP_INSTANCE_ID(input);
  3623. UNITY_TRANSFER_INSTANCE_ID(input, output);
  3624. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  3625. #ifdef ASE_ABSOLUTE_VERTEX_POS
  3626. float3 defaultVertexValue = input.positionOS.xyz;
  3627. #else
  3628. float3 defaultVertexValue = float3(0, 0, 0);
  3629. #endif
  3630. float3 vertexValue = defaultVertexValue;
  3631. #ifdef ASE_ABSOLUTE_VERTEX_POS
  3632. input.positionOS.xyz = vertexValue;
  3633. #else
  3634. input.positionOS.xyz += vertexValue;
  3635. #endif
  3636. VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
  3637. #if defined(APLICATION_SPACE_WARP_MOTION)
  3638. // We do not need jittered position in ASW
  3639. output.positionCSNoJitter = mul(_NonJitteredViewProjMatrix, mul(UNITY_MATRIX_M, input.positionOS));;
  3640. output.positionCS = output.positionCSNoJitter;
  3641. #else
  3642. // Jittered. Match the frame.
  3643. output.positionCS = vertexInput.positionCS;
  3644. output.positionCSNoJitter = mul( _NonJitteredViewProjMatrix, mul( UNITY_MATRIX_M, input.positionOS));
  3645. #endif
  3646. float4 prevPos = ( unity_MotionVectorsParams.x == 1 ) ? float4( input.positionOld, 1 ) : input.positionOS;
  3647. #if _ADD_PRECOMPUTED_VELOCITY
  3648. prevPos = prevPos - float4(input.alembicMotionVector, 0);
  3649. #endif
  3650. output.previousPositionCSNoJitter = mul( _PrevViewProjMatrix, mul( UNITY_PREV_MATRIX_M, prevPos ) );
  3651. // removed in ObjectMotionVectors.hlsl found in unity 6000.0.23 and higher
  3652. //ApplyMotionVectorZBias( output.positionCS );
  3653. return output;
  3654. }
  3655. PackedVaryings vert ( Attributes input )
  3656. {
  3657. return VertexFunction( input );
  3658. }
  3659. half4 frag( PackedVaryings input ) : SV_Target
  3660. {
  3661. UNITY_SETUP_INSTANCE_ID(input);
  3662. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( input );
  3663. float Alpha = 1;
  3664. float AlphaClipThreshold = 0.5;
  3665. #ifdef _ALPHATEST_ON
  3666. clip(Alpha - AlphaClipThreshold);
  3667. #endif
  3668. #if defined(LOD_FADE_CROSSFADE)
  3669. LODFadeCrossFade( input.positionCS );
  3670. #endif
  3671. #if defined(APLICATION_SPACE_WARP_MOTION)
  3672. return float4( CalcAswNdcMotionVectorFromCsPositions( input.positionCSNoJitter, input.previousPositionCSNoJitter ), 1 );
  3673. #else
  3674. return float4( CalcNdcMotionVectorFromCsPositions( input.positionCSNoJitter, input.previousPositionCSNoJitter ), 0, 0 );
  3675. #endif
  3676. }
  3677. ENDHLSL
  3678. }
  3679. }
  3680. FallBack "Hidden/Shader Graph/FallbackError"
  3681. Fallback Off
  3682. }
  3683. /*ASEBEGIN
  3684. Version=19800
  3685. Node;AmplifyShaderEditor.CommentaryNode;619;-3010.418,-275.974;Inherit;False;1754.419;983.1141;GRADIENT;11;629;628;627;626;623;621;620;640;641;735;736;GRADIENT;1,1,1,1;0;0
  3686. Node;AmplifyShaderEditor.CommentaryNode;535;-1653.702,1225.264;Inherit;False;884.7478;315.1912;Comment;3;491;490;498;BASE TEXTURE;1,1,1,1;0;0
  3687. Node;AmplifyShaderEditor.CommentaryNode;461;-3021.441,3894.707;Inherit;False;1516.12;1028.51;Comment;5;414;173;175;273;183;DETAIL TEXTURE;1,1,1,1;0;0
  3688. Node;AmplifyShaderEditor.CommentaryNode;517;-3072.775,5107.095;Inherit;False;2347.7;1068.11;Comment;16;528;527;526;525;524;523;522;521;520;519;518;581;582;584;737;738;TOP PROJECTION;1,1,1,1;0;0
  3689. Node;AmplifyShaderEditor.CommentaryNode;198;-2825.285,2251.937;Inherit;False;2125.222;1412.266;Comment;23;219;218;216;215;214;213;211;209;208;207;204;203;201;200;199;363;202;210;205;552;553;554;220;SNOW;1,1,1,1;0;0
  3690. Node;AmplifyShaderEditor.CommentaryNode;534;-2474.03,1642.298;Inherit;False;1745.965;569.649;Comment;5;496;495;497;729;730;DECALS;1,1,1,1;0;0
  3691. Node;AmplifyShaderEditor.CommentaryNode;692;-5490.614,-272.6373;Inherit;False;2275.294;729.1099;Comment;20;698;704;684;677;676;663;673;708;662;664;707;659;723;705;703;699;702;700;701;727;ORE EMISSION;1,1,1,1;0;0
  3692. Node;AmplifyShaderEditor.CommentaryNode;693;-5736.309,1188.724;Inherit;False;2615.817;1052.083;Comment;19;720;718;719;715;717;716;714;713;721;679;722;681;680;683;686;688;685;726;728;DECAL EMISSION;1,1,1,1;0;0
  3693. Node;AmplifyShaderEditor.WorldPosInputsNode;640;-3043.074,-63.0602;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  3694. Node;AmplifyShaderEditor.PosVertexDataNode;620;-3073.949,220.5544;Inherit;False;1;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  3695. Node;AmplifyShaderEditor.RangedFloatNode;735;-2823.862,296.1774;Inherit;False;Constant;_Float8;Float 8;34;0;Create;True;0;0;0;False;0;False;1.5;0;0;0;0;1;FLOAT;0
  3696. Node;AmplifyShaderEditor.ToggleSwitchNode;641;-2881.464,109.3181;Inherit;False;Property;_WorldObjectGradient;World/Object Gradient;7;0;Create;True;0;0;0;False;0;False;1;True;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  3697. Node;AmplifyShaderEditor.RangedFloatNode;621;-2981.692,412.0216;Float;False;Property;_Gradient;Gradient ;6;0;Create;True;0;0;0;False;0;False;1;0.443;0;1;0;1;FLOAT;0
  3698. Node;AmplifyShaderEditor.SimpleAddOpNode;736;-2604.904,129.8654;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  3699. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;623;-2494.163,207.1993;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  3700. Node;AmplifyShaderEditor.TexturePropertyNode;491;-1603.702,1310.455;Inherit;True;Property;_BaseTexture;Base Texture;0;1;[NoScaleOffset];Create;True;0;0;0;False;0;False;a195a893970f3ab4990bd06e18a0b308;a195a893970f3ab4990bd06e18a0b308;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
  3701. Node;AmplifyShaderEditor.ColorNode;626;-2262.027,-42.2462;Float;False;Property;_TopColor;Top Color;3;1;[HDR];Create;True;0;0;0;False;0;False;0.4811321,0.4036026,0.2382966,1;0.8962264,0.8962264,0.8962264,1;False;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3702. Node;AmplifyShaderEditor.SamplerNode;490;-1355.477,1309.809;Inherit;True;Property;_TextureSample0;Texture Sample 0;17;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;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3703. Node;AmplifyShaderEditor.ClampOpNode;627;-1977.984,164.9912;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;-1;False;2;FLOAT;1;False;1;FLOAT;0
  3704. Node;AmplifyShaderEditor.ColorNode;628;-2265.061,-228.3453;Float;False;Property;_GroundColor;Ground Color;4;1;[HDR];Create;True;0;0;0;False;0;False;0.08490568,0.05234205,0.04846032,1;0.1415094,0.08937437,0,1;False;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3705. Node;AmplifyShaderEditor.LerpOp;629;-1733.621,-127.7129;Inherit;True;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
  3706. Node;AmplifyShaderEditor.RegisterLocalVarNode;498;-992.9542,1275.263;Inherit;False;BASETEXTURE;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
  3707. Node;AmplifyShaderEditor.ColorNode;644;-255.1736,1682.719;Inherit;False;Constant;_Color2;Color 2;27;0;Create;True;0;0;0;False;0;False;0.8962264,0.8962264,0.8962264,0;0,0,0,0;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3708. Node;AmplifyShaderEditor.GetLocalVarNode;541;-277.029,1506.594;Inherit;False;498;BASETEXTURE;1;0;OBJECT;;False;1;COLOR;0
  3709. Node;AmplifyShaderEditor.WorldPosInputsNode;273;-2970.759,4352.548;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  3710. Node;AmplifyShaderEditor.TexturePropertyNode;175;-3004,4144.234;Inherit;True;Property;_DetailTexture;Detail Texture;16;1;[NoScaleOffset];Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
  3711. Node;AmplifyShaderEditor.RangedFloatNode;183;-2962.298,4517.901;Inherit;False;Property;_DetailTextureTiling;Detail Texture Tiling;17;0;Create;True;0;0;0;False;0;False;0.5;0.31;0.1;10;0;1;FLOAT;0
  3712. Node;AmplifyShaderEditor.RegisterLocalVarNode;630;-1044.418,-144.1897;Inherit;False;Gradient;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
  3713. Node;AmplifyShaderEditor.BlendOpsNode;643;-50.17358,1639.719;Inherit;False;HardLight;True;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;1;False;1;COLOR;0
  3714. Node;AmplifyShaderEditor.TriplanarNode;173;-2450.177,4173.919;Inherit;True;Cylindrical;World;False;Top Texture 1;_TopTexture1;white;1;None;Mid Texture 1;_MidTexture1;white;4;None;Bot Texture 1;_BotTexture1;white;2;None;Triplanar Sampler;Tangent;10;0;SAMPLER2D;;False;5;FLOAT;1;False;1;SAMPLER2D;;False;6;FLOAT;0;False;2;SAMPLER2D;;False;7;FLOAT;0;False;9;FLOAT3;0,0,0;False;8;FLOAT3;1,1,1;False;3;FLOAT2;1,1;False;4;FLOAT;1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  3715. Node;AmplifyShaderEditor.Vector3Node;204;-2597.414,3354.151;Inherit;False;Property;_SnowDirection;Snow Direction;5;1;[HideInInspector];Create;True;0;0;0;False;0;False;0.1,1,0.1;0.1,1,0.1;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  3716. Node;AmplifyShaderEditor.WorldPosInputsNode;199;-2764.211,2294.017;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  3717. Node;AmplifyShaderEditor.GetLocalVarNode;632;-116.1384,1895.9;Inherit;False;630;Gradient;1;0;OBJECT;;False;1;COLOR;0
  3718. Node;AmplifyShaderEditor.RangedFloatNode;202;-2586.97,2997.915;Inherit;False;Property;_SnowCoverage;Snow Coverage;19;0;Create;True;0;0;0;False;0;False;0.46;0.23;0;1;0;1;FLOAT;0
  3719. Node;AmplifyShaderEditor.TFHCRemapNode;210;-2294.394,3003.907;Inherit;False;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;-1;False;4;FLOAT;1;False;1;FLOAT;0
  3720. Node;AmplifyShaderEditor.WorldToObjectTransfNode;200;-2574.372,2292.027;Inherit;False;1;0;FLOAT4;0,0,0,1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  3721. Node;AmplifyShaderEditor.RegisterLocalVarNode;414;-1979.137,4178.824;Inherit;True;DETAILTEXTUREvar;-1;True;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0
  3722. Node;AmplifyShaderEditor.RangedFloatNode;203;-2805.705,2607.053;Inherit;False;Property;_SnowAmount;Snow Amount;20;0;Create;True;0;0;0;False;0;False;1;0.215;0;1;0;1;FLOAT;0
  3723. Node;AmplifyShaderEditor.DotProductOpNode;211;-2327.456,3227.93;Inherit;True;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0
  3724. Node;AmplifyShaderEditor.TexturePropertyNode;496;-2424.03,1692.298;Inherit;True;Property;_DecalsTexture;Decals Texture;9;1;[NoScaleOffset];Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
  3725. Node;AmplifyShaderEditor.DynamicAppendNode;209;-2293.907,2326.596;Inherit;False;FLOAT4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0
  3726. Node;AmplifyShaderEditor.RangedFloatNode;207;-2420.321,2510.848;Inherit;False;Property;_SnowNoiseScale;Snow Noise Scale;23;0;Create;True;0;0;0;False;0;False;87.23351;4.9;0;100;0;1;FLOAT;0
  3727. Node;AmplifyShaderEditor.RangedFloatNode;726;-5694.521,2042.805;Inherit;False;Constant;_Float5;Float 5;36;0;Create;True;0;0;0;False;0;False;0.5;0;0;10;0;1;FLOAT;0
  3728. Node;AmplifyShaderEditor.RangedFloatNode;553;-2205.344,3532.128;Inherit;False;Property;_SnowFade;Snow Fade;21;0;Create;True;0;0;0;False;0;False;0.32;0.736;0;1;0;1;FLOAT;0
  3729. Node;AmplifyShaderEditor.RangedFloatNode;727;-5416.934,394.9289;Inherit;False;Constant;_Float6;Float 6;37;0;Create;True;0;0;0;False;0;False;0.5;0;0;0;0;1;FLOAT;0
  3730. Node;AmplifyShaderEditor.RangedFloatNode;713;-5710.042,1941.29;Inherit;False;Constant;_Float2;Float 2;33;0;Create;True;0;0;0;False;0;False;0.3;0.3;0;10;0;1;FLOAT;0
  3731. Node;AmplifyShaderEditor.ColorNode;729;-1895.781,2042.536;Inherit;False;Property;_DecalsColor;Decals Color;10;0;Create;True;0;0;0;False;0;False;0,0,0,0;0.008939266,0,1,0;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3732. Node;AmplifyShaderEditor.SamplerNode;495;-2075.804,1699.652;Inherit;True;Property;_TextureSample1;Texture Sample 1;17;0;Create;True;0;0;0;False;0;False;-1;None;None;True;1;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;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3733. Node;AmplifyShaderEditor.ColorNode;205;-2533.157,2799.42;Inherit;False;Constant;_Color1;Color 1;30;0;Create;True;0;0;0;False;0;False;1,1,1,0;1,1,1,0;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3734. Node;AmplifyShaderEditor.GetLocalVarNode;542;407.481,1692.665;Inherit;False;414;DETAILTEXTUREvar;1;0;OBJECT;;False;1;FLOAT4;0
  3735. Node;AmplifyShaderEditor.RangedFloatNode;700;-5417.658,315.0158;Inherit;False;Constant;_Float0;Float 0;33;0;Create;True;0;0;0;False;0;False;0.3;0;0;0;0;1;FLOAT;0
  3736. Node;AmplifyShaderEditor.TFHCRemapNode;208;-2507.276,2613.048;Inherit;False;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;0;False;4;FLOAT;10;False;1;FLOAT;0
  3737. Node;AmplifyShaderEditor.StaticSwitch;634;312.4376,1501.704;Inherit;False;Property;_GRADIENTONOFF;GRADIENT ON/OFF;2;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Create;True;True;All;9;1;COLOR;0,0,0,0;False;0;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;4;COLOR;0,0,0,0;False;5;COLOR;0,0,0,0;False;6;COLOR;0,0,0,0;False;7;COLOR;0,0,0,0;False;8;COLOR;0,0,0,0;False;1;COLOR;0
  3738. Node;AmplifyShaderEditor.SimpleAddOpNode;554;-2058.173,3090.27;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  3739. Node;AmplifyShaderEditor.SinTimeNode;714;-5698.453,1748.684;Inherit;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  3740. Node;AmplifyShaderEditor.SinTimeNode;698;-5393.771,152.6686;Inherit;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  3741. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;215;-2235.493,2708.072;Inherit;False;2;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  3742. Node;AmplifyShaderEditor.NoiseGeneratorNode;213;-2065.902,2319.317;Inherit;True;Simplex2D;True;False;2;0;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT;0
  3743. Node;AmplifyShaderEditor.RegisterLocalVarNode;730;-1542.781,2044.536;Inherit;False;decalscolor;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
  3744. Node;AmplifyShaderEditor.ColorNode;701;-5434.534,-200.4745;Inherit;False;Constant;_Color3;Color 3;33;0;Create;True;0;0;0;False;0;False;1,1,1,0;0,0,0,0;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3745. Node;AmplifyShaderEditor.RegisterLocalVarNode;497;-1729.211,1753.205;Inherit;True;DECALSMASK;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  3746. Node;AmplifyShaderEditor.ScaleAndOffsetNode;699;-5229.359,252.6765;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;1;False;2;FLOAT;0;False;1;FLOAT;0
  3747. Node;AmplifyShaderEditor.ColorNode;716;-5709.142,1563.391;Inherit;False;Constant;_Color5;Color 5;33;0;Create;True;0;0;0;False;0;False;0,0,0,0;0,0,0,0;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3748. Node;AmplifyShaderEditor.ScaleAndOffsetNode;715;-5552.341,1836.492;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;1;False;2;FLOAT;0;False;1;FLOAT;0
  3749. Node;AmplifyShaderEditor.SmoothstepOpNode;552;-1779.915,3194.36;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
  3750. Node;AmplifyShaderEditor.ColorNode;702;-5413.459,-25.62411;Inherit;False;Constant;_Color4;Color 4;33;0;Create;True;0;0;0;False;0;False;0,0,0,0;0,0,0,0;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3751. Node;AmplifyShaderEditor.ColorNode;717;-5711.142,1391.391;Inherit;False;Constant;_Color6;Color 6;33;0;Create;True;0;0;0;False;0;False;1,1,1,0;0,0,0,0;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3752. Node;AmplifyShaderEditor.WorldPosInputsNode;520;-3004.478,5377.535;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  3753. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;612;661.0915,1604.322;Inherit;False;2;2;0;FLOAT4;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;FLOAT4;0
  3754. Node;AmplifyShaderEditor.RangedFloatNode;214;-2063.839,2558.468;Inherit;False;Property;_SnowNoiseContrast;Snow Noise Contrast;24;0;Create;True;0;0;0;False;0;False;0.002;0.223;0;1;0;1;FLOAT;0
  3755. Node;AmplifyShaderEditor.RangedFloatNode;705;-5186.848,114.9911;Inherit;False;Constant;_Float1;Float 1;33;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
  3756. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;363;-1811.692,2739.948;Inherit;True;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
  3757. Node;AmplifyShaderEditor.TriplanarNode;525;-2492.181,5205.906;Inherit;True;Spherical;World;False;Top Texture 0;_TopTexture0;white;1;None;Mid Texture 0;_MidTexture0;white;7;None;Bot Texture 0;_BotTexture0;white;6;None;Triplanar Sampler;Tangent;10;0;SAMPLER2D;;False;5;FLOAT;1;False;1;SAMPLER2D;;False;6;FLOAT;0;False;2;SAMPLER2D;;False;7;FLOAT;0;False;9;FLOAT3;0,0,0;False;8;FLOAT;1;False;3;FLOAT2;1,1;False;4;FLOAT;1;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  3758. Node;AmplifyShaderEditor.RangedFloatNode;719;-5349.931,1949.707;Inherit;False;Constant;_Float3;Float 3;33;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
  3759. Node;AmplifyShaderEditor.LerpOp;703;-5121.776,-48.73544;Inherit;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
  3760. Node;AmplifyShaderEditor.LerpOp;718;-5417.459,1540.279;Inherit;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
  3761. Node;AmplifyShaderEditor.GetLocalVarNode;597;846.0334,1697.674;Inherit;False;730;decalscolor;1;0;OBJECT;;False;1;COLOR;0
  3762. Node;AmplifyShaderEditor.StaticSwitch;543;847.7029,1500.852;Inherit;False;Property;_DETAILTEXTUREONOFF;DETAIL TEXTURE ON/OFF;15;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Create;True;True;All;9;1;COLOR;0,0,0,0;False;0;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;4;COLOR;0,0,0,0;False;5;COLOR;0,0,0,0;False;6;COLOR;0,0,0,0;False;7;COLOR;0,0,0,0;False;8;COLOR;0,0,0,0;False;1;COLOR;0
  3763. Node;AmplifyShaderEditor.GetLocalVarNode;598;837.2399,1781.854;Inherit;False;497;DECALSMASK;1;0;OBJECT;;False;1;FLOAT;0
  3764. Node;AmplifyShaderEditor.PowerNode;216;-1764.981,2326.336;Inherit;False;True;2;0;FLOAT;0;False;1;FLOAT;0.1;False;1;FLOAT;0
  3765. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;218;-1497.883,2507.298;Inherit;True;2;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  3766. Node;AmplifyShaderEditor.DesaturateOpNode;720;-5244.955,1679.786;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0
  3767. Node;AmplifyShaderEditor.RangedFloatNode;723;-4994.15,-107.1673;Inherit;False;Constant;_Float4;Float 4;35;0;Create;True;0;0;0;False;0;False;0.1;0;0;0;0;1;FLOAT;0
  3768. Node;AmplifyShaderEditor.RangedFloatNode;728;-5249.092,1362.56;Inherit;False;Constant;_Float7;Float 7;32;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
  3769. Node;AmplifyShaderEditor.LerpOp;596;1112.479,1677.352;Inherit;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
  3770. Node;AmplifyShaderEditor.DesaturateOpNode;704;-4948.056,-4.521085;Inherit;True;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0
  3771. Node;AmplifyShaderEditor.RegisterLocalVarNode;527;-2054.534,5187.752;Inherit;True;TOPPROJECTION;-1;True;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0
  3772. Node;AmplifyShaderEditor.RegisterLocalVarNode;528;-1527.419,5672.312;Inherit;True;TOPPROJECTIONMASK;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  3773. Node;AmplifyShaderEditor.ToggleSwitchNode;707;-4834.949,-112.8421;Inherit;False;Property;_ANIMATEOREEMISSIONONOFF;ANIMATE ORE EMISSION ON/OFF;34;0;Create;True;0;0;0;False;0;False;0;True;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0
  3774. Node;AmplifyShaderEditor.GetLocalVarNode;556;1352.4,1694.833;Inherit;False;527;TOPPROJECTION;1;0;OBJECT;;False;1;FLOAT4;0
  3775. Node;AmplifyShaderEditor.RangedFloatNode;659;-5047.669,-202.7318;Inherit;False;Property;_OreEmissionIntensity;Ore Emission Intensity;33;0;Create;True;0;0;0;False;0;False;1;3.74;0;10;0;1;FLOAT;0
  3776. Node;AmplifyShaderEditor.ToggleSwitchNode;721;-5080.235,1357.998;Inherit;False;Property;_ANIMATEDECALEMISSIONONOFF;ANIMATE DECAL EMISSION ON/OFF;14;0;Create;True;0;0;0;False;0;False;1;True;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0
  3777. Node;AmplifyShaderEditor.StaticSwitch;600;1300.288,1498.409;Inherit;False;Property;_DECALSONOFF;DECALS ON/OFF;8;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Create;True;True;All;9;1;COLOR;0,0,0,0;False;0;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;4;COLOR;0,0,0,0;False;5;COLOR;0,0,0,0;False;6;COLOR;0,0,0,0;False;7;COLOR;0,0,0,0;False;8;COLOR;0,0,0,0;False;1;COLOR;0
  3778. Node;AmplifyShaderEditor.RangedFloatNode;679;-5090.93,1252.894;Inherit;False;Property;_DecalEmissionIntensity;Decal Emission Intensity;13;0;Create;True;0;0;0;False;0;False;4;5.78;0;10;0;1;FLOAT;0
  3779. Node;AmplifyShaderEditor.ColorNode;680;-4712.388,1357.25;Inherit;False;Property;_DecakEmissionColor;Decak Emission Color;12;1;[HDR];Create;True;0;0;0;False;0;False;1,0.9248579,0,0;0,0.8466554,2.411707,0;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3780. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;722;-4708.307,1257.708;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0
  3781. Node;AmplifyShaderEditor.LerpOp;555;1596.505,1674.833;Inherit;False;3;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;2;FLOAT;1;False;1;FLOAT4;0
  3782. Node;AmplifyShaderEditor.RegisterLocalVarNode;220;-905.2066,2766.617;Inherit;True;SNOW;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
  3783. Node;AmplifyShaderEditor.ColorNode;664;-4623.624,-15.42196;Inherit;False;Property;_OreEmissionColor;Ore Emission Color;32;1;[HDR];Create;True;0;0;0;False;0;False;1,0.9248579,0,0;7.999999,1.335938,0,0;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3784. Node;AmplifyShaderEditor.VertexColorNode;662;-4597.276,138.6388;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  3785. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;708;-4546.92,-184.8685;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT3;0,0,0;False;1;FLOAT3;0
  3786. Node;AmplifyShaderEditor.GetLocalVarNode;686;-4400.997,1608.522;Inherit;False;497;DECALSMASK;1;0;OBJECT;;False;1;FLOAT;0
  3787. Node;AmplifyShaderEditor.OneMinusNode;663;-4419.246,129.6459;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  3788. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;681;-4453.659,1257.423;Inherit;True;2;2;0;FLOAT3;0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  3789. Node;AmplifyShaderEditor.StaticSwitch;557;1660.104,1502.07;Inherit;False;Property;_TOPPROJECTIONONOFF;TOP PROJECTION ON/OFF;26;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Create;True;True;All;9;1;COLOR;0,0,0,0;False;0;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;4;COLOR;0,0,0,0;False;5;COLOR;0,0,0,0;False;6;COLOR;0,0,0,0;False;7;COLOR;0,0,0,0;False;8;COLOR;0,0,0,0;False;1;COLOR;0
  3790. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;673;-4373.328,-126.8075;Inherit;True;2;2;0;FLOAT3;0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  3791. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;683;-4172.178,1259.247;Inherit;True;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
  3792. Node;AmplifyShaderEditor.SimpleAddOpNode;546;2078.315,1654.505;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  3793. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;676;-4122.16,-135.8221;Inherit;True;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
  3794. Node;AmplifyShaderEditor.ToggleSwitchNode;677;-3848.508,-165.1693;Inherit;False;Property;_OREEMISSIONONOFF;ORE EMISSION ON/OFF;31;0;Create;True;0;0;0;False;0;False;0;True;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  3795. Node;AmplifyShaderEditor.ColorNode;605;2300.437,1677.604;Inherit;False;Property;_OreColor;Ore Color;30;1;[HDR];Create;True;0;0;0;False;0;False;1,0.9248579,0,0;2,0.4804064,0,0;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3796. Node;AmplifyShaderEditor.StaticSwitch;545;2221.333,1505.783;Inherit;False;Property;_SNOWONOFF;SNOW ON/OFF;18;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Create;True;True;All;9;1;COLOR;0,0,0,0;False;0;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;4;COLOR;0,0,0,0;False;5;COLOR;0,0,0,0;False;6;COLOR;0,0,0,0;False;7;COLOR;0,0,0,0;False;8;COLOR;0,0,0,0;False;1;COLOR;0
  3797. Node;AmplifyShaderEditor.LerpOp;607;2603.098,1509.857;Inherit;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;1;False;1;COLOR;0
  3798. Node;AmplifyShaderEditor.RegisterLocalVarNode;685;-3618.371,1233.073;Inherit;False;Decalemission;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
  3799. Node;AmplifyShaderEditor.RegisterLocalVarNode;684;-3592.922,-160.4622;Inherit;False;oreemission;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
  3800. Node;AmplifyShaderEditor.GetLocalVarNode;691;632.5616,3126.088;Inherit;False;684;oreemission;1;0;OBJECT;;False;1;COLOR;0
  3801. Node;AmplifyShaderEditor.ColorNode;617;180.4198,2899.334;Inherit;False;Constant;_Color0;Color 0;21;0;Create;True;0;0;0;False;0;False;1,1,1,0;0,0,0,0;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  3802. Node;AmplifyShaderEditor.GetLocalVarNode;689;625.5616,2992.088;Inherit;False;685;Decalemission;1;0;OBJECT;;False;1;COLOR;0
  3803. Node;AmplifyShaderEditor.RegisterLocalVarNode;539;2825.295,1504.856;Inherit;True;COLOR;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
  3804. Node;AmplifyShaderEditor.RangedFloatNode;731;129.6662,2781.02;Inherit;False;Property;_Smoothness;Smoothness;1;0;Create;True;0;0;0;False;0;False;0.2;0.321;0;1;0;1;FLOAT;0
  3805. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;614;435.1118,2845.14;Inherit;False;2;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  3806. Node;AmplifyShaderEditor.GetLocalVarNode;412;622.3464,2629.384;Inherit;True;539;COLOR;1;0;OBJECT;;False;1;COLOR;0
  3807. Node;AmplifyShaderEditor.SimpleAddOpNode;690;919.5616,2986.088;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  3808. Node;AmplifyShaderEditor.ToggleSwitchNode;219;-1268.595,2760.266;Inherit;True;Property;_SnowNoiseOnOff;Snow Noise On/Off;22;0;Create;True;0;0;0;False;0;False;1;True;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  3809. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;637;161.9385,1683.596;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  3810. Node;AmplifyShaderEditor.GetLocalVarNode;558;1330.633,1772.831;Inherit;False;528;TOPPROJECTIONMASK;1;0;OBJECT;;False;1;FLOAT;0
  3811. Node;AmplifyShaderEditor.PowerNode;582;-2065.896,5680.709;Inherit;True;True;2;0;FLOAT;0;False;1;FLOAT;5;False;1;FLOAT;0
  3812. Node;AmplifyShaderEditor.RangedFloatNode;738;-2111.369,5876.133;Inherit;False;Constant;_Float10;Float 10;36;0;Create;True;0;0;0;False;0;False;5;0;0;0;0;1;FLOAT;0
  3813. Node;AmplifyShaderEditor.RangedFloatNode;523;-2735.743,5945.399;Inherit;False;Property;_TopProjectionTextureCoverage;Top Projection Texture Coverage;29;0;Create;True;0;0;0;False;0;False;1;0.427;0;1;0;1;FLOAT;0
  3814. Node;AmplifyShaderEditor.DotProductOpNode;524;-2638.518,5694.458;Inherit;True;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,1,0;False;1;FLOAT;0
  3815. Node;AmplifyShaderEditor.Vector3Node;519;-2876.606,5796.51;Inherit;False;Property;_Vector1;Vector 1;25;1;[HideInInspector];Create;True;0;0;0;False;0;False;0,1,0;0.1,1,0.1;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  3816. Node;AmplifyShaderEditor.ClampOpNode;584;-1781.775,5684.8;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
  3817. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;526;-2395.617,5689.701;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  3818. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;581;-2179.521,5688.574;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;3;False;1;FLOAT;0
  3819. Node;AmplifyShaderEditor.RangedFloatNode;737;-2432.369,5959.133;Inherit;False;Constant;_Float9;Float 9;36;0;Create;True;0;0;0;False;0;False;3;0;0;3;0;1;FLOAT;0
  3820. Node;AmplifyShaderEditor.RangedFloatNode;522;-2874.917,5494.738;Inherit;False;Property;_TopProjectionTextureTiling;Top Projection Texture Tiling;28;0;Create;True;0;0;0;False;0;False;0.5;1.46;0.1;10;0;1;FLOAT;0
  3821. Node;AmplifyShaderEditor.TexturePropertyNode;521;-3041.719,5176.221;Inherit;True;Property;_TopProjectionTexture;Top Projection Texture;27;1;[NoScaleOffset];Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
  3822. Node;AmplifyShaderEditor.WorldNormalVector;518;-2860.619,5628.822;Inherit;False;False;1;0;FLOAT3;0,0,1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  3823. Node;AmplifyShaderEditor.WorldNormalVector;201;-2637.648,3117.292;Inherit;True;False;1;0;FLOAT3;0,0,1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  3824. Node;AmplifyShaderEditor.ToggleSwitchNode;688;-3924.81,1230.908;Inherit;False;Property;_DECALEMISSIONONOFF;DECAL EMISSION ON/OFF;11;0;Create;True;0;0;0;False;0;False;1;True;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  3825. Node;AmplifyShaderEditor.GetLocalVarNode;544;1848.151,1832.851;Inherit;False;220;SNOW;1;0;OBJECT;;False;1;COLOR;0
  3826. Node;AmplifyShaderEditor.VertexColorNode;609;2262.744,1867.103;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  3827. Node;AmplifyShaderEditor.OneMinusNode;611;2447.844,1876.96;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  3828. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;739;1151.042,2720.431;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;94348b07e5e8bab40bd6c8a1e3df54cd;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;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Lit;True;5;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
  3829. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;740;1151.042,2720.431;Float;False;True;-1;2;;0;12;Polytope Studio/PT_Rock_Shader;94348b07e5e8bab40bd6c8a1e3df54cd;True;Forward;0;1;Forward;21;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;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Lit;True;5;True;12;all;0;False;True;1;1;False;;0;False;;1;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=UniversalForward;False;False;0;;0;0;Standard;45;Lighting Model;0;0;Workflow;1;0;Surface;0;0; Refraction Model;0;0; Blend;0;0;Two Sided;1;0;Alpha Clipping;1;0; Use Shadow Threshold;0;0;Fragment Normal Space,InvertActionOnDeselection;0;0;Forward Only;0;0;Transmission;0;0; Transmission Shadow;0.5,False,;0;Translucency;0;0; Translucency Strength;1,False,;0; Normal Distortion;0.5,False,;0; Scattering;2,False,;0; Direct;0.9,False,;0; Ambient;0.1,False,;0; Shadow;0.5,False,;0;Cast Shadows;1;0;Receive Shadows;1;0;Receive SSAO;1;0;Motion Vectors;1;0; Add Precomputed Velocity;0;0;GPU Instancing;1;0;LOD CrossFade;1;0;Built-in Fog;1;0;_FinalColorxAlpha;0;0;Meta Pass;1;0;Override Baked GI;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;Write Depth;0;0; Early Z;0;0;Vertex Position,InvertActionOnDeselection;1;0;Debug Display;0;0;Clear Coat;0;0;0;11;False;True;True;True;True;True;True;True;True;True;True;False;;False;0
  3830. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;741;1151.042,2720.431;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;94348b07e5e8bab40bd6c8a1e3df54cd;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;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Lit;True;5;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
  3831. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;742;1151.042,2720.431;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;94348b07e5e8bab40bd6c8a1e3df54cd;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;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Lit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;True;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
  3832. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;743;1151.042,2720.431;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;94348b07e5e8bab40bd6c8a1e3df54cd;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;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Lit;True;5;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
  3833. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;744;1151.042,2720.431;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;94348b07e5e8bab40bd6c8a1e3df54cd;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;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Lit;True;5;True;12;all;0;False;True;1;1;False;;0;False;;1;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;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
  3834. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;745;1151.042,2720.431;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;94348b07e5e8bab40bd6c8a1e3df54cd;True;DepthNormals;0;6;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;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Lit;True;5;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;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormals;False;False;0;;0;0;Standard;0;False;0
  3835. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;746;1151.042,2720.431;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;94348b07e5e8bab40bd6c8a1e3df54cd;True;GBuffer;0;7;GBuffer;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;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Lit;True;5;True;12;all;0;False;True;1;1;False;;0;False;;1;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=UniversalGBuffer;False;False;0;;0;0;Standard;0;False;0
  3836. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;747;1151.042,2720.431;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;94348b07e5e8bab40bd6c8a1e3df54cd;True;SceneSelectionPass;0;8;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;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Lit;True;5;True;12;all;0;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;False;False;False;False;False;True;1;LightMode=SceneSelectionPass;False;False;0;;0;0;Standard;0;False;0
  3837. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;748;1151.042,2720.431;Float;False;False;-1;2;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;94348b07e5e8bab40bd6c8a1e3df54cd;True;ScenePickingPass;0;9;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;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Lit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;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
  3838. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;749;1151.042,2820.431;Float;False;False;-1;3;UnityEditor.ShaderGraphLitGUI;0;1;New Amplify Shader;94348b07e5e8bab40bd6c8a1e3df54cd;True;MotionVectors;0;10;MotionVectors;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;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Lit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;False;False;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=MotionVectors;False;False;0;;0;0;Standard;0;False;0
  3839. WireConnection;641;0;640;2
  3840. WireConnection;641;1;620;2
  3841. WireConnection;736;0;641;0
  3842. WireConnection;736;1;735;0
  3843. WireConnection;623;0;736;0
  3844. WireConnection;623;1;621;0
  3845. WireConnection;490;0;491;0
  3846. WireConnection;627;0;623;0
  3847. WireConnection;629;0;628;0
  3848. WireConnection;629;1;626;0
  3849. WireConnection;629;2;627;0
  3850. WireConnection;498;0;490;0
  3851. WireConnection;630;0;629;0
  3852. WireConnection;643;0;541;0
  3853. WireConnection;643;1;644;0
  3854. WireConnection;173;0;175;0
  3855. WireConnection;173;1;175;0
  3856. WireConnection;173;2;175;0
  3857. WireConnection;173;9;273;0
  3858. WireConnection;173;3;183;0
  3859. WireConnection;210;0;202;0
  3860. WireConnection;200;0;199;0
  3861. WireConnection;414;0;173;0
  3862. WireConnection;211;0;201;0
  3863. WireConnection;211;1;204;0
  3864. WireConnection;209;0;200;1
  3865. WireConnection;209;1;200;3
  3866. WireConnection;495;0;496;0
  3867. WireConnection;208;0;203;0
  3868. WireConnection;634;1;541;0
  3869. WireConnection;634;0;637;0
  3870. WireConnection;554;0;210;0
  3871. WireConnection;554;1;211;0
  3872. WireConnection;215;0;208;0
  3873. WireConnection;215;1;205;0
  3874. WireConnection;213;0;209;0
  3875. WireConnection;213;1;207;0
  3876. WireConnection;730;0;729;0
  3877. WireConnection;497;0;495;4
  3878. WireConnection;699;0;698;4
  3879. WireConnection;699;1;700;0
  3880. WireConnection;699;2;727;0
  3881. WireConnection;715;0;714;4
  3882. WireConnection;715;1;713;0
  3883. WireConnection;715;2;726;0
  3884. WireConnection;552;0;554;0
  3885. WireConnection;552;2;553;0
  3886. WireConnection;612;0;542;0
  3887. WireConnection;612;1;634;0
  3888. WireConnection;363;0;215;0
  3889. WireConnection;363;1;552;0
  3890. WireConnection;525;0;521;0
  3891. WireConnection;525;9;520;0
  3892. WireConnection;525;3;522;0
  3893. WireConnection;703;0;701;0
  3894. WireConnection;703;1;702;0
  3895. WireConnection;703;2;699;0
  3896. WireConnection;718;0;717;0
  3897. WireConnection;718;1;716;0
  3898. WireConnection;718;2;715;0
  3899. WireConnection;543;1;634;0
  3900. WireConnection;543;0;612;0
  3901. WireConnection;216;0;213;0
  3902. WireConnection;216;1;214;0
  3903. WireConnection;218;0;216;0
  3904. WireConnection;218;1;363;0
  3905. WireConnection;720;0;718;0
  3906. WireConnection;720;1;719;0
  3907. WireConnection;596;0;543;0
  3908. WireConnection;596;1;597;0
  3909. WireConnection;596;2;598;0
  3910. WireConnection;704;0;703;0
  3911. WireConnection;704;1;705;0
  3912. WireConnection;527;0;525;0
  3913. WireConnection;528;0;584;0
  3914. WireConnection;707;0;723;0
  3915. WireConnection;707;1;704;0
  3916. WireConnection;721;0;728;0
  3917. WireConnection;721;1;720;0
  3918. WireConnection;600;1;543;0
  3919. WireConnection;600;0;596;0
  3920. WireConnection;722;0;679;0
  3921. WireConnection;722;1;721;0
  3922. WireConnection;555;0;600;0
  3923. WireConnection;555;1;556;0
  3924. WireConnection;555;2;558;0
  3925. WireConnection;220;0;219;0
  3926. WireConnection;708;0;659;0
  3927. WireConnection;708;1;707;0
  3928. WireConnection;663;0;662;4
  3929. WireConnection;681;0;722;0
  3930. WireConnection;681;1;680;0
  3931. WireConnection;557;1;600;0
  3932. WireConnection;557;0;555;0
  3933. WireConnection;673;0;708;0
  3934. WireConnection;673;1;664;0
  3935. WireConnection;683;0;681;0
  3936. WireConnection;683;1;686;0
  3937. WireConnection;546;0;557;0
  3938. WireConnection;546;1;544;0
  3939. WireConnection;676;0;673;0
  3940. WireConnection;676;1;663;0
  3941. WireConnection;677;1;676;0
  3942. WireConnection;545;1;557;0
  3943. WireConnection;545;0;546;0
  3944. WireConnection;607;0;545;0
  3945. WireConnection;607;1;605;0
  3946. WireConnection;607;2;611;0
  3947. WireConnection;685;0;688;0
  3948. WireConnection;684;0;677;0
  3949. WireConnection;539;0;607;0
  3950. WireConnection;614;0;731;0
  3951. WireConnection;614;1;617;0
  3952. WireConnection;690;0;689;0
  3953. WireConnection;690;1;691;0
  3954. WireConnection;219;0;363;0
  3955. WireConnection;219;1;218;0
  3956. WireConnection;637;0;632;0
  3957. WireConnection;637;1;643;0
  3958. WireConnection;582;0;581;0
  3959. WireConnection;582;1;738;0
  3960. WireConnection;524;0;518;0
  3961. WireConnection;524;1;519;0
  3962. WireConnection;584;0;582;0
  3963. WireConnection;526;0;524;0
  3964. WireConnection;526;1;523;0
  3965. WireConnection;581;0;526;0
  3966. WireConnection;581;1;737;0
  3967. WireConnection;688;1;683;0
  3968. WireConnection;611;0;609;4
  3969. WireConnection;740;0;412;0
  3970. WireConnection;740;2;690;0
  3971. WireConnection;740;4;614;0
  3972. ASEEND*/
  3973. //CHKSM=F8F29CAAE1266ACC51F9292DFA4E970CA5EAE231