Splatmap (Holes).shader 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242
  1. Shader "Amazing Assets/Terrain To Mesh/Splatmap (Holes)"
  2. {
  3. Properties
  4. {
  5. //[HideInInspector][CurvedWorldBendSettings] _CurvedWorldBendSettings("0|1|1", Vector) = (0, 0, 0, 0)
  6. //Terrain To Mesh Properties/////////////////////////////////////////////////////////////////////////////////////////////////////////
  7. [HideInInspector] [TerrainToMeshLayerCounter] _T2M_Layer_Count ("Layer Count", float) = 0
  8. [Space]
  9. [HideInInspector] [NoScaleOffset] _T2M_SplatMap_0 ("Splat Map #10 (RGBA)", 2D) = "black" {}
  10. [HideInInspector] _T2M_Layer_0_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  11. [HideInInspector] [NoScaleOffset] _T2M_Layer_0_Diffuse ("Paint Map 1 (R)", 2D) = "white" {}
  12. [HideInInspector] _T2M_Layer_0_NormalScale("Strength", float) = 1
  13. [HideInInspector] [NoScaleOffset] _T2M_Layer_0_NormalMap("Bump", 2D) = "bump" {}
  14. [HideInInspector] [NoScaleOffset] _T2M_Layer_0_Mask ("Mask", 2D) = "white" {}
  15. [HideInInspector] _T2M_Layer_0_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  16. [HideInInspector] _T2M_Layer_0_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  17. [HideInInspector] _T2M_Layer_0_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  18. [HideInInspector] _T2M_Layer_0_SmoothnessFromDiffuseAlpha("", float) = 0
  19. [HideInInspector] _T2M_Layer_0_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  20. [HideInInspector] _T2M_Layer_0_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  21. [HideInInspector] _T2M_Layer_1_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  22. [HideInInspector] [NoScaleOffset] _T2M_Layer_1_Diffuse ("Paint Map 1 (R)", 2D) = "white" {}
  23. [HideInInspector] _T2M_Layer_1_NormalScale("Strength", float) = 1
  24. [HideInInspector] [NoScaleOffset] _T2M_Layer_1_NormalMap("Bump", 2D) = "bump" {}
  25. [HideInInspector] [NoScaleOffset] _T2M_Layer_1_Mask ("Mask", 2D) = "white" {}
  26. [HideInInspector] _T2M_Layer_1_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  27. [HideInInspector] _T2M_Layer_1_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  28. [HideInInspector] _T2M_Layer_1_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  29. [HideInInspector] _T2M_Layer_1_SmoothnessFromDiffuseAlpha("", float) = 0
  30. [HideInInspector] _T2M_Layer_1_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  31. [HideInInspector] _T2M_Layer_1_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  32. [HideInInspector] _T2M_Layer_2_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  33. [HideInInspector] [NoScaleOffset] _T2M_Layer_2_Diffuse ("Paint Map 2 (G)", 2D) = "white" {}
  34. [HideInInspector] _T2M_Layer_2_NormalScale("Strength", float) = 1
  35. [HideInInspector] [NoScaleOffset] _T2M_Layer_2_NormalMap("Bump", 2D) = "bump" {}
  36. [HideInInspector] [NoScaleOffset] _T2M_Layer_2_Mask ("Mask", 2D) = "white" {}
  37. [HideInInspector] _T2M_Layer_2_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  38. [HideInInspector] _T2M_Layer_2_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  39. [HideInInspector] _T2M_Layer_2_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  40. [HideInInspector] _T2M_Layer_2_SmoothnessFromDiffuseAlpha("", float) = 0
  41. [HideInInspector] _T2M_Layer_2_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  42. [HideInInspector] _T2M_Layer_2_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  43. [HideInInspector] _T2M_Layer_3_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  44. [HideInInspector] [NoScaleOffset] _T2M_Layer_3_Diffuse ("Paint Map 3 (B)", 2D) = "white" {}
  45. [HideInInspector] _T2M_Layer_3_NormalScale("Strength", float) = 1
  46. [HideInInspector] [NoScaleOffset] _T2M_Layer_3_NormalMap("Bump", 2D) = "bump" {}
  47. [HideInInspector] [NoScaleOffset] _T2M_Layer_3_Mask ("Mask", 2D) = "white" {}
  48. [HideInInspector] _T2M_Layer_3_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  49. [HideInInspector] _T2M_Layer_3_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  50. [HideInInspector] _T2M_Layer_3_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  51. [HideInInspector] _T2M_Layer_3_SmoothnessFromDiffuseAlpha("", float) = 0
  52. [HideInInspector] _T2M_Layer_3_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  53. [HideInInspector] _T2M_Layer_3_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  54. [HideInInspector] [NoScaleOffset] _T2M_SplatMap_1 ("Splat Map #1 (RGBA)", 2D) = "black" {}
  55. [HideInInspector] _T2M_Layer_4_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  56. [HideInInspector] [NoScaleOffset] _T2M_Layer_4_Diffuse ("Paint Map 4 (A)", 2D) = "white" {}
  57. [HideInInspector] _T2M_Layer_4_NormalScale("Strength", float) = 1
  58. [HideInInspector] [NoScaleOffset] _T2M_Layer_4_NormalMap("Bump", 2D) = "bump" {}
  59. [HideInInspector] [NoScaleOffset] _T2M_Layer_4_Mask ("Mask", 2D) = "white" {}
  60. [HideInInspector] _T2M_Layer_4_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  61. [HideInInspector] _T2M_Layer_4_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  62. [HideInInspector] _T2M_Layer_4_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  63. [HideInInspector] _T2M_Layer_4_SmoothnessFromDiffuseAlpha("", float) = 0
  64. [HideInInspector] _T2M_Layer_4_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  65. [HideInInspector] _T2M_Layer_4_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  66. [HideInInspector] _T2M_Layer_5_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  67. [HideInInspector] [NoScaleOffset] _T2M_Layer_5_Diffuse ("Paint Map 5 (R)", 2D) = "white" {}
  68. [HideInInspector] _T2M_Layer_5_NormalScale("Strength", float) = 1
  69. [HideInInspector] [NoScaleOffset] _T2M_Layer_5_NormalMap("Bump", 2D) = "bump" {}
  70. [HideInInspector] [NoScaleOffset] _T2M_Layer_5_Mask ("Mask", 2D) = "white" {}
  71. [HideInInspector] _T2M_Layer_5_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  72. [HideInInspector] _T2M_Layer_5_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  73. [HideInInspector] _T2M_Layer_5_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  74. [HideInInspector] _T2M_Layer_5_SmoothnessFromDiffuseAlpha("", float) = 0
  75. [HideInInspector] _T2M_Layer_5_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  76. [HideInInspector] _T2M_Layer_5_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  77. [HideInInspector] _T2M_Layer_6_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  78. [HideInInspector] [NoScaleOffset] _T2M_Layer_6_Diffuse ("Paint Map 6 (G)", 2D) = "white" {}
  79. [HideInInspector] _T2M_Layer_6_NormalScale("Strength", float) = 1
  80. [HideInInspector] [NoScaleOffset] _T2M_Layer_6_NormalMap("Bump", 2D) = "bump" {}
  81. [HideInInspector] [NoScaleOffset] _T2M_Layer_6_Mask ("Mask", 2D) = "white" {}
  82. [HideInInspector] _T2M_Layer_6_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  83. [HideInInspector] _T2M_Layer_6_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  84. [HideInInspector] _T2M_Layer_6_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  85. [HideInInspector] _T2M_Layer_6_SmoothnessFromDiffuseAlpha("", float) = 0
  86. [HideInInspector] _T2M_Layer_6_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  87. [HideInInspector] _T2M_Layer_6_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  88. [HideInInspector] _T2M_Layer_7_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  89. [HideInInspector] [NoScaleOffset] _T2M_Layer_7_Diffuse ("Paint Map 7 (B)", 2D) = "white" {}
  90. [HideInInspector] _T2M_Layer_7_NormalScale("Strength", float) = 1
  91. [HideInInspector] [NoScaleOffset] _T2M_Layer_7_NormalMap("Bump", 2D) = "bump" {}
  92. [HideInInspector] [NoScaleOffset] _T2M_Layer_7_Mask ("Mask", 2D) = "white" {}
  93. [HideInInspector] _T2M_Layer_7_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  94. [HideInInspector] _T2M_Layer_7_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  95. [HideInInspector] _T2M_Layer_7_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  96. [HideInInspector] _T2M_Layer_7_SmoothnessFromDiffuseAlpha("", float) = 0
  97. [HideInInspector] _T2M_Layer_7_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  98. [HideInInspector] _T2M_Layer_7_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  99. [HideInInspector] [NoScaleOffset] _T2M_SplatMap_2 ("Splat Map #2 (RGBA)", 2D) = "black" {}
  100. [HideInInspector] _T2M_Layer_8_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  101. [HideInInspector] [NoScaleOffset] _T2M_Layer_8_Diffuse ("Paint Map 8 (A)", 2D) = "white" {}
  102. [HideInInspector] _T2M_Layer_8_NormalScale("Strength", float) = 1
  103. [HideInInspector] [NoScaleOffset] _T2M_Layer_8_NormalMap("Bump", 2D) = "bump" {}
  104. [HideInInspector] [NoScaleOffset] _T2M_Layer_8_Mask ("Mask", 2D) = "white" {}
  105. [HideInInspector] _T2M_Layer_8_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  106. [HideInInspector] _T2M_Layer_8_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  107. [HideInInspector] _T2M_Layer_8_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  108. [HideInInspector] _T2M_Layer_8_SmoothnessFromDiffuseAlpha("", float) = 0
  109. [HideInInspector] _T2M_Layer_8_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  110. [HideInInspector] _T2M_Layer_8_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  111. [HideInInspector] _T2M_Layer_9_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  112. [HideInInspector] [NoScaleOffset] _T2M_Layer_9_Diffuse ("Paint Map 9 (R)", 2D) = "white" {}
  113. [HideInInspector] _T2M_Layer_9_NormalScale("Strength", float) = 1
  114. [HideInInspector] [NoScaleOffset] _T2M_Layer_9_NormalMap("Bump", 2D) = "bump" {}
  115. [HideInInspector] [NoScaleOffset] _T2M_Layer_9_Mask ("Mask", 2D) = "white" {}
  116. [HideInInspector] _T2M_Layer_9_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  117. [HideInInspector] _T2M_Layer_9_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  118. [HideInInspector] _T2M_Layer_9_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  119. [HideInInspector] _T2M_Layer_9_SmoothnessFromDiffuseAlpha("", float) = 0
  120. [HideInInspector] _T2M_Layer_9_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  121. [HideInInspector] _T2M_Layer_9_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  122. [HideInInspector] _T2M_Layer_10_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  123. [HideInInspector] [NoScaleOffset] _T2M_Layer_10_Diffuse ("Paint Map 10 (G)", 2D) = "white" {}
  124. [HideInInspector] _T2M_Layer_10_NormalScale("Strength", float) = 1
  125. [HideInInspector] [NoScaleOffset] _T2M_Layer_10_NormalMap("Bump", 2D) = "bump" {}
  126. [HideInInspector] [NoScaleOffset] _T2M_Layer_10_Mask ("Mask", 2D) = "white" {}
  127. [HideInInspector] _T2M_Layer_10_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  128. [HideInInspector] _T2M_Layer_10_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  129. [HideInInspector] _T2M_Layer_10_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  130. [HideInInspector] _T2M_Layer_10_SmoothnessFromDiffuseAlpha("", float) = 0
  131. [HideInInspector] _T2M_Layer_10_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  132. [HideInInspector] _T2M_Layer_10_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  133. [HideInInspector] _T2M_Layer_11_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  134. [HideInInspector] [NoScaleOffset] _T2M_Layer_11_Diffuse ("Paint Map 11 (B)", 2D) = "white" {}
  135. [HideInInspector] _T2M_Layer_11_NormalScale("Strength", float) = 1
  136. [HideInInspector] [NoScaleOffset] _T2M_Layer_11_NormalMap("Bump", 2D) = "bump" {}
  137. [HideInInspector] [NoScaleOffset] _T2M_Layer_11_Mask ("Mask", 2D) = "white" {}
  138. [HideInInspector] _T2M_Layer_11_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  139. [HideInInspector] _T2M_Layer_11_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  140. [HideInInspector] _T2M_Layer_11_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  141. [HideInInspector] _T2M_Layer_11_SmoothnessFromDiffuseAlpha("", float) = 0
  142. [HideInInspector] _T2M_Layer_11_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  143. [HideInInspector] _T2M_Layer_11_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  144. [HideInInspector] [NoScaleOffset] _T2M_SplatMap_3 ("Splat Map #3 (RGBA)", 2D) = "black" {}
  145. [HideInInspector] _T2M_Layer_12_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  146. [HideInInspector] [NoScaleOffset] _T2M_Layer_12_Diffuse ("Paint Map 12 (A)", 2D) = "white" {}
  147. [HideInInspector] _T2M_Layer_12_NormalScale("Strength", float) = 1
  148. [HideInInspector] [NoScaleOffset] _T2M_Layer_12_NormalMap("Bump", 2D) = "bump" {}
  149. [HideInInspector] [NoScaleOffset] _T2M_Layer_12_Mask ("Mask", 2D) = "white" {}
  150. [HideInInspector] _T2M_Layer_12_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  151. [HideInInspector] _T2M_Layer_12_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  152. [HideInInspector] _T2M_Layer_12_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  153. [HideInInspector] _T2M_Layer_12_SmoothnessFromDiffuseAlpha("", float) = 0
  154. [HideInInspector] _T2M_Layer_12_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  155. [HideInInspector] _T2M_Layer_12_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  156. [HideInInspector] _T2M_Layer_13_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  157. [HideInInspector] [NoScaleOffset] _T2M_Layer_13_Diffuse ("Paint Map 13 (R)", 2D) = "white" {}
  158. [HideInInspector] _T2M_Layer_13_NormalScale("Strength", float) = 1
  159. [HideInInspector] [NoScaleOffset] _T2M_Layer_13_NormalMap("Bump", 2D) = "bump" {}
  160. [HideInInspector] [NoScaleOffset] _T2M_Layer_13_Mask ("Mask", 2D) = "white" {}
  161. [HideInInspector] _T2M_Layer_13_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  162. [HideInInspector] _T2M_Layer_13_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  163. [HideInInspector] _T2M_Layer_13_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  164. [HideInInspector] _T2M_Layer_13_SmoothnessFromDiffuseAlpha("", float) = 0
  165. [HideInInspector] _T2M_Layer_13_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  166. [HideInInspector] _T2M_Layer_13_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  167. [HideInInspector] _T2M_Layer_14_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  168. [HideInInspector] [NoScaleOffset] _T2M_Layer_14_Diffuse ("Paint Map 14 (G)", 2D) = "white" {}
  169. [HideInInspector] _T2M_Layer_14_NormalScale("Strength", float) = 1
  170. [HideInInspector] [NoScaleOffset] _T2M_Layer_14_NormalMap("Bump", 2D) = "bump" {}
  171. [HideInInspector] [NoScaleOffset] _T2M_Layer_14_Mask ("Mask", 2D) = "white" {}
  172. [HideInInspector] _T2M_Layer_14_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  173. [HideInInspector] _T2M_Layer_14_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  174. [HideInInspector] _T2M_Layer_14_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  175. [HideInInspector] _T2M_Layer_14_SmoothnessFromDiffuseAlpha("", float) = 0
  176. [HideInInspector] _T2M_Layer_14_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  177. [HideInInspector] _T2M_Layer_14_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  178. [HideInInspector] _T2M_Layer_15_ColorTint ("Color Tint", Color) = (1, 1, 1, 1)
  179. [HideInInspector] [NoScaleOffset] _T2M_Layer_15_Diffuse ("Paint Map 15 (B)", 2D) = "white" {}
  180. [HideInInspector] _T2M_Layer_15_NormalScale("Strength", float) = 1
  181. [HideInInspector] [NoScaleOffset] _T2M_Layer_15_NormalMap("Bump", 2D) = "bump" {}
  182. [HideInInspector] [NoScaleOffset] _T2M_Layer_15_Mask ("Mask", 2D) = "white" {}
  183. [HideInInspector] _T2M_Layer_15_uvScaleOffset("UV Scale", Vector) = (1, 1, 0, 0)
  184. [HideInInspector] _T2M_Layer_15_MapsUsage("Maps Usage", Vector) = (0, 0, 0, 0)
  185. [HideInInspector] _T2M_Layer_15_MetallicOcclusionSmoothness("Metallic (R), Occlusion (G), Smoothness(A)", Vector) = (0, 1, 0, 0)
  186. [HideInInspector] _T2M_Layer_15_SmoothnessFromDiffuseAlpha("", float) = 0
  187. [HideInInspector] _T2M_Layer_15_MaskMapRemapMin("Maskmap Remap Min", Vector) = (0, 0, 0, 0)
  188. [HideInInspector] _T2M_Layer_15_MaskMapRemapMax("Maskmap Remap Max", Vector) = (1, 1, 1, 1)
  189. //Texture 2D Array
  190. [HideInInspector] [NoScaleOffset] _T2M_SplatMaps2DArray("SplatMaps 2D Array", 2DArray) = "black" {}
  191. [HideInInspector] [NoScaleOffset] _T2M_DiffuseMaps2DArray("DiffuseMaps 2D Array", 2DArray) = "white" {}
  192. [HideInInspector] [NoScaleOffset] _T2M_NormalMaps2DArray("NormalMaps 2D Array", 2DArray) = "bump" {}
  193. [HideInInspector] [NoScaleOffset] _T2M_MaskMaps2DArray("MaskMaps 2D Array", 2DArray) = "white" {}
  194. //Holesmap
  195. [HideInInspector] [NoScaleOffset] _T2M_HolesMap ("Holes Map", 2D) = "white" {}
  196. //Fallback use only
  197. [HideInInspector] _Color("Color", Color) = (1, 1, 1, 1) //Not used
  198. [HideInInspector] [NoScaleOffset] _MainTex("Fallback Diffuse", 2D) = "white" {}
  199. [HideInInspector] [NoScaleOffset] _BumpMap("Fallback Normal", 2D) = "bump" {}
  200. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  201. }
  202. //Main subshader
  203. SubShader
  204. {
  205. Tags { "RenderType"="Opaque" }
  206. LOD 200
  207. // ------------------------------------------------------------
  208. // Surface shader code generated out of a CGPROGRAM block:
  209. // ---- forward rendering base pass:
  210. Pass {
  211. Name "FORWARD"
  212. Tags { "LightMode" = "ForwardBase" }
  213. CGPROGRAM
  214. // compile directives
  215. #pragma vertex vert_surf
  216. #pragma fragment frag_surf
  217. #pragma target 3.5
  218. #pragma multi_compile_instancing
  219. #pragma multi_compile_fog
  220. #pragma multi_compile_fwdbase
  221. #include "HLSLSupport.cginc"
  222. #define UNITY_INSTANCED_LOD_FADE
  223. #define UNITY_INSTANCED_SH
  224. #define UNITY_INSTANCED_LIGHTMAPSTS
  225. #include "UnityShaderVariables.cginc"
  226. #include "UnityShaderUtilities.cginc"
  227. #include "UnityCG.cginc"
  228. #include "Lighting.cginc"
  229. #include "UnityPBSLighting.cginc"
  230. #include "AutoLight.cginc"
  231. #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2;
  232. #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)))
  233. #define WorldNormalVector(data,normal) fixed3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))
  234. struct Input
  235. {
  236. float2 texcoord;
  237. };
  238. //Curved World
  239. //#define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE
  240. //#define CURVEDWORLD_BEND_ID_1
  241. //#pragma shader_feature_local CURVEDWORLD_DISABLED_ON
  242. //#pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON
  243. //#include "Assets/Amazing Assets/Curved World/Shaders/Core/CurvedWorldTransform.cginc"
  244. #define _ALPHATEST_ON
  245. #pragma shader_feature_local _ _T2M_TEXTURE_SAMPLE_TYPE_ARRAY
  246. #pragma shader_feature_local _ _T2M_LAYER_COUNT_3 _T2M_LAYER_COUNT_4 _T2M_LAYER_COUNT_5 _T2M_LAYER_COUNT_6 _T2M_LAYER_COUNT_7 _T2M_LAYER_COUNT_8 _T2M_LAYER_COUNT_9 _T2M_LAYER_COUNT_10 _T2M_LAYER_COUNT_11 _T2M_LAYER_COUNT_12 _T2M_LAYER_COUNT_13 _T2M_LAYER_COUNT_14 _T2M_LAYER_COUNT_15 _T2M_LAYER_COUNT_16
  247. #pragma shader_feature_local _T2M_LAYER_0_NORMAL
  248. #pragma shader_feature_local _T2M_LAYER_1_NORMAL
  249. #pragma shader_feature_local _T2M_LAYER_2_NORMAL
  250. #pragma shader_feature_local _T2M_LAYER_3_NORMAL
  251. #pragma shader_feature_local _T2M_LAYER_4_NORMAL
  252. #pragma shader_feature_local _T2M_LAYER_5_NORMAL
  253. #pragma shader_feature_local _T2M_LAYER_6_NORMAL
  254. #pragma shader_feature_local _T2M_LAYER_7_NORMAL
  255. #pragma shader_feature_local _T2M_LAYER_8_NORMAL
  256. #pragma shader_feature_local _T2M_LAYER_9_NORMAL
  257. #pragma shader_feature_local _T2M_LAYER_10_NORMAL
  258. #pragma shader_feature_local _T2M_LAYER_11_NORMAL
  259. #pragma shader_feature_local _T2M_LAYER_12_NORMAL
  260. #pragma shader_feature_local _T2M_LAYER_13_NORMAL
  261. #pragma shader_feature_local _T2M_LAYER_14_NORMAL
  262. #pragma shader_feature_local _T2M_LAYER_15_NORMAL
  263. #pragma shader_feature_local _T2M_LAYER_0_MASK
  264. #pragma shader_feature_local _T2M_LAYER_1_MASK
  265. #pragma shader_feature_local _T2M_LAYER_2_MASK
  266. #pragma shader_feature_local _T2M_LAYER_3_MASK
  267. #pragma shader_feature_local _T2M_LAYER_4_MASK
  268. #pragma shader_feature_local _T2M_LAYER_5_MASK
  269. #pragma shader_feature_local _T2M_LAYER_6_MASK
  270. #pragma shader_feature_local _T2M_LAYER_7_MASK
  271. #pragma shader_feature_local _T2M_LAYER_8_MASK
  272. #pragma shader_feature_local _T2M_LAYER_9_MASK
  273. #pragma shader_feature_local _T2M_LAYER_10_MASK
  274. #pragma shader_feature_local _T2M_LAYER_11_MASK
  275. #pragma shader_feature_local _T2M_LAYER_12_MASK
  276. #pragma shader_feature_local _T2M_LAYER_13_MASK
  277. #pragma shader_feature_local _T2M_LAYER_14_MASK
  278. #pragma shader_feature_local _T2M_LAYER_15_MASK
  279. #define TERRAIN_TO_MESH_NEED_NORMAL
  280. #define TERRAIN_TO_MESH_NEED_METALLIC_SMOOTHNESS_OCCLUSION
  281. #include "Splatmap.cginc"
  282. // vertex-to-fragment interpolation data
  283. // no lightmaps:
  284. #ifndef LIGHTMAP_ON
  285. // half-precision fragment shader registers:
  286. #ifdef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS
  287. #define FOG_COMBINED_WITH_TSPACE
  288. struct v2f_surf {
  289. UNITY_POSITION(pos);
  290. float4 tSpace0 : TEXCOORD0;
  291. float4 tSpace1 : TEXCOORD1;
  292. float4 tSpace2 : TEXCOORD2;
  293. float2 custompack0 : TEXCOORD3; // texcoord
  294. #if UNITY_SHOULD_SAMPLE_SH
  295. half3 sh : TEXCOORD4; // SH
  296. #endif
  297. UNITY_LIGHTING_COORDS(5,6)
  298. #if SHADER_TARGET >= 30
  299. float4 lmap : TEXCOORD7;
  300. #endif
  301. UNITY_VERTEX_INPUT_INSTANCE_ID
  302. UNITY_VERTEX_OUTPUT_STEREO
  303. };
  304. #endif
  305. // high-precision fragment shader registers:
  306. #ifndef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS
  307. struct v2f_surf {
  308. UNITY_POSITION(pos);
  309. float4 tSpace0 : TEXCOORD0;
  310. float4 tSpace1 : TEXCOORD1;
  311. float4 tSpace2 : TEXCOORD2;
  312. float2 custompack0 : TEXCOORD3; // texcoord
  313. #if UNITY_SHOULD_SAMPLE_SH
  314. half3 sh : TEXCOORD4; // SH
  315. #endif
  316. UNITY_FOG_COORDS(5)
  317. UNITY_SHADOW_COORDS(6)
  318. #if SHADER_TARGET >= 30
  319. float4 lmap : TEXCOORD7;
  320. #endif
  321. UNITY_VERTEX_INPUT_INSTANCE_ID
  322. UNITY_VERTEX_OUTPUT_STEREO
  323. };
  324. #endif
  325. #endif
  326. // with lightmaps:
  327. #ifdef LIGHTMAP_ON
  328. // half-precision fragment shader registers:
  329. #ifdef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS
  330. #define FOG_COMBINED_WITH_TSPACE
  331. struct v2f_surf {
  332. UNITY_POSITION(pos);
  333. float4 tSpace0 : TEXCOORD0;
  334. float4 tSpace1 : TEXCOORD1;
  335. float4 tSpace2 : TEXCOORD2;
  336. float2 custompack0 : TEXCOORD3; // texcoord
  337. float4 lmap : TEXCOORD4;
  338. UNITY_LIGHTING_COORDS(5,6)
  339. UNITY_VERTEX_INPUT_INSTANCE_ID
  340. UNITY_VERTEX_OUTPUT_STEREO
  341. };
  342. #endif
  343. // high-precision fragment shader registers:
  344. #ifndef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS
  345. struct v2f_surf {
  346. UNITY_POSITION(pos);
  347. float4 tSpace0 : TEXCOORD0;
  348. float4 tSpace1 : TEXCOORD1;
  349. float4 tSpace2 : TEXCOORD2;
  350. float2 custompack0 : TEXCOORD3; // texcoord
  351. float4 lmap : TEXCOORD4;
  352. UNITY_FOG_COORDS(5)
  353. UNITY_SHADOW_COORDS(6)
  354. UNITY_VERTEX_INPUT_INSTANCE_ID
  355. UNITY_VERTEX_OUTPUT_STEREO
  356. };
  357. #endif
  358. #endif
  359. // vertex shader
  360. v2f_surf vert_surf (appdata_full v) {
  361. UNITY_SETUP_INSTANCE_ID(v);
  362. v2f_surf o;
  363. UNITY_INITIALIZE_OUTPUT(v2f_surf,o);
  364. UNITY_TRANSFER_INSTANCE_ID(v,o);
  365. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  366. Input customInputData;
  367. vert (v, customInputData);
  368. o.custompack0.xy = customInputData.texcoord;
  369. o.pos = UnityObjectToClipPos(v.vertex);
  370. float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
  371. float3 worldNormal = UnityObjectToWorldNormal(v.normal);
  372. fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz);
  373. fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w;
  374. fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign;
  375. o.tSpace0 = float4(worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x);
  376. o.tSpace1 = float4(worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y);
  377. o.tSpace2 = float4(worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z);
  378. #ifdef DYNAMICLIGHTMAP_ON
  379. o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw;
  380. #endif
  381. #ifdef LIGHTMAP_ON
  382. o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw;
  383. #endif
  384. // SH/ambient and vertex lights
  385. #ifndef LIGHTMAP_ON
  386. #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL
  387. o.sh = 0;
  388. // Approximated illumination from non-important point lights
  389. #ifdef VERTEXLIGHT_ON
  390. o.sh += Shade4PointLights (
  391. unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0,
  392. unity_LightColor[0].rgb, unity_LightColor[1].rgb, unity_LightColor[2].rgb, unity_LightColor[3].rgb,
  393. unity_4LightAtten0, worldPos, worldNormal);
  394. #endif
  395. o.sh = ShadeSHPerVertex (worldNormal, o.sh);
  396. #endif
  397. #endif // !LIGHTMAP_ON
  398. UNITY_TRANSFER_LIGHTING(o,v.texcoord1.xy); // pass shadow and, possibly, light cookie coordinates to pixel shader
  399. #ifdef FOG_COMBINED_WITH_TSPACE
  400. UNITY_TRANSFER_FOG_COMBINED_WITH_TSPACE(o,o.pos); // pass fog coordinates to pixel shader
  401. #elif defined (FOG_COMBINED_WITH_WORLD_POS)
  402. UNITY_TRANSFER_FOG_COMBINED_WITH_WORLD_POS(o,o.pos); // pass fog coordinates to pixel shader
  403. #else
  404. UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader
  405. #endif
  406. return o;
  407. }
  408. // fragment shader
  409. fixed4 frag_surf (v2f_surf IN) : SV_Target {
  410. UNITY_SETUP_INSTANCE_ID(IN);
  411. // prepare and unpack data
  412. Input surfIN;
  413. #ifdef FOG_COMBINED_WITH_TSPACE
  414. UNITY_EXTRACT_FOG_FROM_TSPACE(IN);
  415. #elif defined (FOG_COMBINED_WITH_WORLD_POS)
  416. UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN);
  417. #else
  418. UNITY_EXTRACT_FOG(IN);
  419. #endif
  420. #ifdef FOG_COMBINED_WITH_TSPACE
  421. UNITY_RECONSTRUCT_TBN(IN);
  422. #else
  423. UNITY_EXTRACT_TBN(IN);
  424. #endif
  425. UNITY_INITIALIZE_OUTPUT(Input,surfIN);
  426. surfIN.texcoord.x = 1.0;
  427. surfIN.texcoord = IN.custompack0.xy;
  428. float3 worldPos = float3(IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w);
  429. #ifndef USING_DIRECTIONAL_LIGHT
  430. fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos));
  431. #else
  432. fixed3 lightDir = _WorldSpaceLightPos0.xyz;
  433. #endif
  434. float3 worldViewDir = normalize(UnityWorldSpaceViewDir(worldPos));
  435. #ifdef UNITY_COMPILER_HLSL
  436. SurfaceOutputStandard o = (SurfaceOutputStandard)0;
  437. #else
  438. SurfaceOutputStandard o;
  439. #endif
  440. o.Albedo = 0.0;
  441. o.Emission = 0.0;
  442. o.Alpha = 0.0;
  443. o.Occlusion = 1.0;
  444. fixed3 normalWorldVertex = fixed3(0,0,1);
  445. o.Normal = fixed3(0,0,1);
  446. // call surface function
  447. surf (surfIN, o);
  448. // compute lighting & shadowing factor
  449. UNITY_LIGHT_ATTENUATION(atten, IN, worldPos)
  450. fixed4 c = 0;
  451. float3 worldN;
  452. worldN.x = dot(_unity_tbn_0, o.Normal);
  453. worldN.y = dot(_unity_tbn_1, o.Normal);
  454. worldN.z = dot(_unity_tbn_2, o.Normal);
  455. worldN = normalize(worldN);
  456. o.Normal = worldN;
  457. // Setup lighting environment
  458. UnityGI gi;
  459. UNITY_INITIALIZE_OUTPUT(UnityGI, gi);
  460. gi.indirect.diffuse = 0;
  461. gi.indirect.specular = 0;
  462. gi.light.color = _LightColor0.rgb;
  463. gi.light.dir = lightDir;
  464. // Call GI (lightmaps/SH/reflections) lighting function
  465. UnityGIInput giInput;
  466. UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput);
  467. giInput.light = gi.light;
  468. giInput.worldPos = worldPos;
  469. giInput.worldViewDir = worldViewDir;
  470. giInput.atten = atten;
  471. #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)
  472. giInput.lightmapUV = IN.lmap;
  473. #else
  474. giInput.lightmapUV = 0.0;
  475. #endif
  476. #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL
  477. giInput.ambient = IN.sh;
  478. #else
  479. giInput.ambient.rgb = 0.0;
  480. #endif
  481. giInput.probeHDR[0] = unity_SpecCube0_HDR;
  482. giInput.probeHDR[1] = unity_SpecCube1_HDR;
  483. #if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION)
  484. giInput.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending
  485. #endif
  486. #ifdef UNITY_SPECCUBE_BOX_PROJECTION
  487. giInput.boxMax[0] = unity_SpecCube0_BoxMax;
  488. giInput.probePosition[0] = unity_SpecCube0_ProbePosition;
  489. giInput.boxMax[1] = unity_SpecCube1_BoxMax;
  490. giInput.boxMin[1] = unity_SpecCube1_BoxMin;
  491. giInput.probePosition[1] = unity_SpecCube1_ProbePosition;
  492. #endif
  493. LightingStandard_GI(o, giInput, gi);
  494. // realtime lighting: call lighting function
  495. c += LightingStandard (o, worldViewDir, gi);
  496. UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog
  497. UNITY_OPAQUE_ALPHA(c.a);
  498. return c;
  499. }
  500. ENDCG
  501. }
  502. // ---- forward rendering additive lights pass:
  503. Pass {
  504. Name "FORWARD"
  505. Tags { "LightMode" = "ForwardAdd" }
  506. ZWrite Off Blend One One
  507. CGPROGRAM
  508. // compile directives
  509. #pragma vertex vert_surf
  510. #pragma fragment frag_surf
  511. #pragma target 3.5
  512. #pragma multi_compile_instancing
  513. #pragma multi_compile_fog
  514. #pragma skip_variants INSTANCING_ON
  515. #pragma multi_compile_fwdadd_fullshadows
  516. #include "HLSLSupport.cginc"
  517. #define UNITY_INSTANCED_LOD_FADE
  518. #define UNITY_INSTANCED_SH
  519. #define UNITY_INSTANCED_LIGHTMAPSTS
  520. #include "UnityShaderVariables.cginc"
  521. #include "UnityShaderUtilities.cginc"
  522. #include "UnityCG.cginc"
  523. #include "Lighting.cginc"
  524. #include "UnityPBSLighting.cginc"
  525. #include "AutoLight.cginc"
  526. #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2;
  527. #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)))
  528. #define WorldNormalVector(data,normal) fixed3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))
  529. struct Input
  530. {
  531. float2 texcoord;
  532. };
  533. //Curved World
  534. //#define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE
  535. //#define CURVEDWORLD_BEND_ID_1
  536. //#pragma shader_feature_local CURVEDWORLD_DISABLED_ON
  537. //#pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON
  538. //#include "Assets/Amazing Assets/Curved World/Shaders/Core/CurvedWorldTransform.cginc"
  539. #define _ALPHATEST_ON
  540. #pragma shader_feature_local _ _T2M_TEXTURE_SAMPLE_TYPE_ARRAY
  541. #pragma shader_feature_local _ _T2M_LAYER_COUNT_3 _T2M_LAYER_COUNT_4 _T2M_LAYER_COUNT_5 _T2M_LAYER_COUNT_6 _T2M_LAYER_COUNT_7 _T2M_LAYER_COUNT_8 _T2M_LAYER_COUNT_9 _T2M_LAYER_COUNT_10 _T2M_LAYER_COUNT_11 _T2M_LAYER_COUNT_12 _T2M_LAYER_COUNT_13 _T2M_LAYER_COUNT_14 _T2M_LAYER_COUNT_15 _T2M_LAYER_COUNT_16
  542. #pragma shader_feature_local _T2M_LAYER_0_NORMAL
  543. #pragma shader_feature_local _T2M_LAYER_1_NORMAL
  544. #pragma shader_feature_local _T2M_LAYER_2_NORMAL
  545. #pragma shader_feature_local _T2M_LAYER_3_NORMAL
  546. #pragma shader_feature_local _T2M_LAYER_4_NORMAL
  547. #pragma shader_feature_local _T2M_LAYER_5_NORMAL
  548. #pragma shader_feature_local _T2M_LAYER_6_NORMAL
  549. #pragma shader_feature_local _T2M_LAYER_7_NORMAL
  550. #pragma shader_feature_local _T2M_LAYER_8_NORMAL
  551. #pragma shader_feature_local _T2M_LAYER_9_NORMAL
  552. #pragma shader_feature_local _T2M_LAYER_10_NORMAL
  553. #pragma shader_feature_local _T2M_LAYER_11_NORMAL
  554. #pragma shader_feature_local _T2M_LAYER_12_NORMAL
  555. #pragma shader_feature_local _T2M_LAYER_13_NORMAL
  556. #pragma shader_feature_local _T2M_LAYER_14_NORMAL
  557. #pragma shader_feature_local _T2M_LAYER_15_NORMAL
  558. #pragma shader_feature_local _T2M_LAYER_0_MASK
  559. #pragma shader_feature_local _T2M_LAYER_1_MASK
  560. #pragma shader_feature_local _T2M_LAYER_2_MASK
  561. #pragma shader_feature_local _T2M_LAYER_3_MASK
  562. #pragma shader_feature_local _T2M_LAYER_4_MASK
  563. #pragma shader_feature_local _T2M_LAYER_5_MASK
  564. #pragma shader_feature_local _T2M_LAYER_6_MASK
  565. #pragma shader_feature_local _T2M_LAYER_7_MASK
  566. #pragma shader_feature_local _T2M_LAYER_8_MASK
  567. #pragma shader_feature_local _T2M_LAYER_9_MASK
  568. #pragma shader_feature_local _T2M_LAYER_10_MASK
  569. #pragma shader_feature_local _T2M_LAYER_11_MASK
  570. #pragma shader_feature_local _T2M_LAYER_12_MASK
  571. #pragma shader_feature_local _T2M_LAYER_13_MASK
  572. #pragma shader_feature_local _T2M_LAYER_14_MASK
  573. #pragma shader_feature_local _T2M_LAYER_15_MASK
  574. #define TERRAIN_TO_MESH_NEED_NORMAL
  575. #define TERRAIN_TO_MESH_NEED_METALLIC_SMOOTHNESS_OCCLUSION
  576. #include "Splatmap.cginc"
  577. // vertex-to-fragment interpolation data
  578. struct v2f_surf {
  579. UNITY_POSITION(pos);
  580. float3 tSpace0 : TEXCOORD0;
  581. float3 tSpace1 : TEXCOORD1;
  582. float3 tSpace2 : TEXCOORD2;
  583. float3 worldPos : TEXCOORD3;
  584. float2 custompack0 : TEXCOORD4; // texcoord
  585. UNITY_LIGHTING_COORDS(5,6)
  586. UNITY_FOG_COORDS(7)
  587. UNITY_VERTEX_INPUT_INSTANCE_ID
  588. UNITY_VERTEX_OUTPUT_STEREO
  589. };
  590. // vertex shader
  591. v2f_surf vert_surf (appdata_full v) {
  592. UNITY_SETUP_INSTANCE_ID(v);
  593. v2f_surf o;
  594. UNITY_INITIALIZE_OUTPUT(v2f_surf,o);
  595. UNITY_TRANSFER_INSTANCE_ID(v,o);
  596. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  597. Input customInputData;
  598. vert (v, customInputData);
  599. o.custompack0.xy = customInputData.texcoord;
  600. o.pos = UnityObjectToClipPos(v.vertex);
  601. float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
  602. float3 worldNormal = UnityObjectToWorldNormal(v.normal);
  603. fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz);
  604. fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w;
  605. fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign;
  606. o.tSpace0 = float3(worldTangent.x, worldBinormal.x, worldNormal.x);
  607. o.tSpace1 = float3(worldTangent.y, worldBinormal.y, worldNormal.y);
  608. o.tSpace2 = float3(worldTangent.z, worldBinormal.z, worldNormal.z);
  609. o.worldPos.xyz = worldPos;
  610. UNITY_TRANSFER_LIGHTING(o,v.texcoord1.xy); // pass shadow and, possibly, light cookie coordinates to pixel shader
  611. UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader
  612. return o;
  613. }
  614. // fragment shader
  615. fixed4 frag_surf (v2f_surf IN) : SV_Target {
  616. UNITY_SETUP_INSTANCE_ID(IN);
  617. // prepare and unpack data
  618. Input surfIN;
  619. #ifdef FOG_COMBINED_WITH_TSPACE
  620. UNITY_EXTRACT_FOG_FROM_TSPACE(IN);
  621. #elif defined (FOG_COMBINED_WITH_WORLD_POS)
  622. UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN);
  623. #else
  624. UNITY_EXTRACT_FOG(IN);
  625. #endif
  626. #ifdef FOG_COMBINED_WITH_TSPACE
  627. UNITY_RECONSTRUCT_TBN(IN);
  628. #else
  629. UNITY_EXTRACT_TBN(IN);
  630. #endif
  631. UNITY_INITIALIZE_OUTPUT(Input,surfIN);
  632. surfIN.texcoord.x = 1.0;
  633. surfIN.texcoord = IN.custompack0.xy;
  634. float3 worldPos = IN.worldPos.xyz;
  635. #ifndef USING_DIRECTIONAL_LIGHT
  636. fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos));
  637. #else
  638. fixed3 lightDir = _WorldSpaceLightPos0.xyz;
  639. #endif
  640. float3 worldViewDir = normalize(UnityWorldSpaceViewDir(worldPos));
  641. #ifdef UNITY_COMPILER_HLSL
  642. SurfaceOutputStandard o = (SurfaceOutputStandard)0;
  643. #else
  644. SurfaceOutputStandard o;
  645. #endif
  646. o.Albedo = 0.0;
  647. o.Emission = 0.0;
  648. o.Alpha = 0.0;
  649. o.Occlusion = 1.0;
  650. fixed3 normalWorldVertex = fixed3(0,0,1);
  651. o.Normal = fixed3(0,0,1);
  652. // call surface function
  653. surf (surfIN, o);
  654. UNITY_LIGHT_ATTENUATION(atten, IN, worldPos)
  655. fixed4 c = 0;
  656. float3 worldN;
  657. worldN.x = dot(_unity_tbn_0, o.Normal);
  658. worldN.y = dot(_unity_tbn_1, o.Normal);
  659. worldN.z = dot(_unity_tbn_2, o.Normal);
  660. worldN = normalize(worldN);
  661. o.Normal = worldN;
  662. // Setup lighting environment
  663. UnityGI gi;
  664. UNITY_INITIALIZE_OUTPUT(UnityGI, gi);
  665. gi.indirect.diffuse = 0;
  666. gi.indirect.specular = 0;
  667. gi.light.color = _LightColor0.rgb;
  668. gi.light.dir = lightDir;
  669. gi.light.color *= atten;
  670. c += LightingStandard (o, worldViewDir, gi);
  671. c.a = 0.0;
  672. UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog
  673. UNITY_OPAQUE_ALPHA(c.a);
  674. return c;
  675. }
  676. ENDCG
  677. }
  678. // ---- deferred shading pass:
  679. Pass {
  680. Name "DEFERRED"
  681. Tags { "LightMode" = "Deferred" }
  682. CGPROGRAM
  683. // compile directives
  684. #pragma vertex vert_surf
  685. #pragma fragment frag_surf
  686. #pragma target 3.5
  687. #pragma multi_compile_instancing
  688. #pragma exclude_renderers nomrt
  689. #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
  690. #pragma multi_compile_prepassfinal
  691. #include "HLSLSupport.cginc"
  692. #define UNITY_INSTANCED_LOD_FADE
  693. #define UNITY_INSTANCED_SH
  694. #define UNITY_INSTANCED_LIGHTMAPSTS
  695. #include "UnityShaderVariables.cginc"
  696. #include "UnityShaderUtilities.cginc"
  697. #include "UnityCG.cginc"
  698. #include "Lighting.cginc"
  699. #include "UnityPBSLighting.cginc"
  700. #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2;
  701. #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)))
  702. #define WorldNormalVector(data,normal) fixed3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))
  703. struct Input
  704. {
  705. float2 texcoord;
  706. };
  707. //Curved World
  708. //#define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE
  709. //#define CURVEDWORLD_BEND_ID_1
  710. //#pragma shader_feature_local CURVEDWORLD_DISABLED_ON
  711. //#pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON
  712. //#include "Assets/Amazing Assets/Curved World/Shaders/Core/CurvedWorldTransform.cginc"
  713. #define _ALPHATEST_ON
  714. #pragma shader_feature_local _ _T2M_TEXTURE_SAMPLE_TYPE_ARRAY
  715. #pragma shader_feature_local _ _T2M_LAYER_COUNT_3 _T2M_LAYER_COUNT_4 _T2M_LAYER_COUNT_5 _T2M_LAYER_COUNT_6 _T2M_LAYER_COUNT_7 _T2M_LAYER_COUNT_8 _T2M_LAYER_COUNT_9 _T2M_LAYER_COUNT_10 _T2M_LAYER_COUNT_11 _T2M_LAYER_COUNT_12 _T2M_LAYER_COUNT_13 _T2M_LAYER_COUNT_14 _T2M_LAYER_COUNT_15 _T2M_LAYER_COUNT_16
  716. #pragma shader_feature_local _T2M_LAYER_0_NORMAL
  717. #pragma shader_feature_local _T2M_LAYER_1_NORMAL
  718. #pragma shader_feature_local _T2M_LAYER_2_NORMAL
  719. #pragma shader_feature_local _T2M_LAYER_3_NORMAL
  720. #pragma shader_feature_local _T2M_LAYER_4_NORMAL
  721. #pragma shader_feature_local _T2M_LAYER_5_NORMAL
  722. #pragma shader_feature_local _T2M_LAYER_6_NORMAL
  723. #pragma shader_feature_local _T2M_LAYER_7_NORMAL
  724. #pragma shader_feature_local _T2M_LAYER_8_NORMAL
  725. #pragma shader_feature_local _T2M_LAYER_9_NORMAL
  726. #pragma shader_feature_local _T2M_LAYER_10_NORMAL
  727. #pragma shader_feature_local _T2M_LAYER_11_NORMAL
  728. #pragma shader_feature_local _T2M_LAYER_12_NORMAL
  729. #pragma shader_feature_local _T2M_LAYER_13_NORMAL
  730. #pragma shader_feature_local _T2M_LAYER_14_NORMAL
  731. #pragma shader_feature_local _T2M_LAYER_15_NORMAL
  732. #pragma shader_feature_local _T2M_LAYER_0_MASK
  733. #pragma shader_feature_local _T2M_LAYER_1_MASK
  734. #pragma shader_feature_local _T2M_LAYER_2_MASK
  735. #pragma shader_feature_local _T2M_LAYER_3_MASK
  736. #pragma shader_feature_local _T2M_LAYER_4_MASK
  737. #pragma shader_feature_local _T2M_LAYER_5_MASK
  738. #pragma shader_feature_local _T2M_LAYER_6_MASK
  739. #pragma shader_feature_local _T2M_LAYER_7_MASK
  740. #pragma shader_feature_local _T2M_LAYER_8_MASK
  741. #pragma shader_feature_local _T2M_LAYER_9_MASK
  742. #pragma shader_feature_local _T2M_LAYER_10_MASK
  743. #pragma shader_feature_local _T2M_LAYER_11_MASK
  744. #pragma shader_feature_local _T2M_LAYER_12_MASK
  745. #pragma shader_feature_local _T2M_LAYER_13_MASK
  746. #pragma shader_feature_local _T2M_LAYER_14_MASK
  747. #pragma shader_feature_local _T2M_LAYER_15_MASK
  748. #define TERRAIN_TO_MESH_NEED_NORMAL
  749. #define TERRAIN_TO_MESH_NEED_METALLIC_SMOOTHNESS_OCCLUSION
  750. #include "Splatmap.cginc"
  751. // vertex-to-fragment interpolation data
  752. struct v2f_surf {
  753. UNITY_POSITION(pos);
  754. float4 tSpace0 : TEXCOORD0;
  755. float4 tSpace1 : TEXCOORD1;
  756. float4 tSpace2 : TEXCOORD2;
  757. float2 custompack0 : TEXCOORD3; // texcoord
  758. #ifndef DIRLIGHTMAP_OFF
  759. float3 viewDir : TEXCOORD4;
  760. #endif
  761. float4 lmap : TEXCOORD5;
  762. #ifndef LIGHTMAP_ON
  763. #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL
  764. half3 sh : TEXCOORD6; // SH
  765. #endif
  766. #else
  767. #ifdef DIRLIGHTMAP_OFF
  768. float4 lmapFadePos : TEXCOORD6;
  769. #endif
  770. #endif
  771. UNITY_VERTEX_INPUT_INSTANCE_ID
  772. UNITY_VERTEX_OUTPUT_STEREO
  773. };
  774. // vertex shader
  775. v2f_surf vert_surf (appdata_full v) {
  776. UNITY_SETUP_INSTANCE_ID(v);
  777. v2f_surf o;
  778. UNITY_INITIALIZE_OUTPUT(v2f_surf,o);
  779. UNITY_TRANSFER_INSTANCE_ID(v,o);
  780. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  781. Input customInputData;
  782. vert (v, customInputData);
  783. o.custompack0.xy = customInputData.texcoord;
  784. o.pos = UnityObjectToClipPos(v.vertex);
  785. float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
  786. float3 worldNormal = UnityObjectToWorldNormal(v.normal);
  787. fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz);
  788. fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w;
  789. fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign;
  790. o.tSpace0 = float4(worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x);
  791. o.tSpace1 = float4(worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y);
  792. o.tSpace2 = float4(worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z);
  793. float3 viewDirForLight = UnityWorldSpaceViewDir(worldPos);
  794. #ifndef DIRLIGHTMAP_OFF
  795. o.viewDir.x = dot(viewDirForLight, worldTangent);
  796. o.viewDir.y = dot(viewDirForLight, worldBinormal);
  797. o.viewDir.z = dot(viewDirForLight, worldNormal);
  798. #endif
  799. #ifdef DYNAMICLIGHTMAP_ON
  800. o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw;
  801. #else
  802. o.lmap.zw = 0;
  803. #endif
  804. #ifdef LIGHTMAP_ON
  805. o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw;
  806. #ifdef DIRLIGHTMAP_OFF
  807. o.lmapFadePos.xyz = (mul(unity_ObjectToWorld, v.vertex).xyz - unity_ShadowFadeCenterAndType.xyz) * unity_ShadowFadeCenterAndType.w;
  808. o.lmapFadePos.w = (-UnityObjectToViewPos(v.vertex).z) * (1.0 - unity_ShadowFadeCenterAndType.w);
  809. #endif
  810. #else
  811. o.lmap.xy = 0;
  812. #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL
  813. o.sh = 0;
  814. o.sh = ShadeSHPerVertex (worldNormal, o.sh);
  815. #endif
  816. #endif
  817. return o;
  818. }
  819. #ifdef LIGHTMAP_ON
  820. float4 unity_LightmapFade;
  821. #endif
  822. fixed4 unity_Ambient;
  823. // fragment shader
  824. void frag_surf (v2f_surf IN,
  825. out half4 outGBuffer0 : SV_Target0,
  826. out half4 outGBuffer1 : SV_Target1,
  827. out half4 outGBuffer2 : SV_Target2,
  828. out half4 outEmission : SV_Target3
  829. #if defined(SHADOWS_SHADOWMASK) && (UNITY_ALLOWED_MRT_COUNT > 4)
  830. , out half4 outShadowMask : SV_Target4
  831. #endif
  832. ) {
  833. UNITY_SETUP_INSTANCE_ID(IN);
  834. // prepare and unpack data
  835. Input surfIN;
  836. #ifdef FOG_COMBINED_WITH_TSPACE
  837. UNITY_EXTRACT_FOG_FROM_TSPACE(IN);
  838. #elif defined (FOG_COMBINED_WITH_WORLD_POS)
  839. UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN);
  840. #else
  841. UNITY_EXTRACT_FOG(IN);
  842. #endif
  843. #ifdef FOG_COMBINED_WITH_TSPACE
  844. UNITY_RECONSTRUCT_TBN(IN);
  845. #else
  846. UNITY_EXTRACT_TBN(IN);
  847. #endif
  848. UNITY_INITIALIZE_OUTPUT(Input,surfIN);
  849. surfIN.texcoord.x = 1.0;
  850. surfIN.texcoord = IN.custompack0.xy;
  851. float3 worldPos = float3(IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w);
  852. #ifndef USING_DIRECTIONAL_LIGHT
  853. fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos));
  854. #else
  855. fixed3 lightDir = _WorldSpaceLightPos0.xyz;
  856. #endif
  857. float3 worldViewDir = normalize(UnityWorldSpaceViewDir(worldPos));
  858. #ifdef UNITY_COMPILER_HLSL
  859. SurfaceOutputStandard o = (SurfaceOutputStandard)0;
  860. #else
  861. SurfaceOutputStandard o;
  862. #endif
  863. o.Albedo = 0.0;
  864. o.Emission = 0.0;
  865. o.Alpha = 0.0;
  866. o.Occlusion = 1.0;
  867. fixed3 normalWorldVertex = fixed3(0,0,1);
  868. o.Normal = fixed3(0,0,1);
  869. // call surface function
  870. surf (surfIN, o);
  871. fixed3 originalNormal = o.Normal;
  872. float3 worldN;
  873. worldN.x = dot(_unity_tbn_0, o.Normal);
  874. worldN.y = dot(_unity_tbn_1, o.Normal);
  875. worldN.z = dot(_unity_tbn_2, o.Normal);
  876. worldN = normalize(worldN);
  877. o.Normal = worldN;
  878. half atten = 1;
  879. // Setup lighting environment
  880. UnityGI gi;
  881. UNITY_INITIALIZE_OUTPUT(UnityGI, gi);
  882. gi.indirect.diffuse = 0;
  883. gi.indirect.specular = 0;
  884. gi.light.color = 0;
  885. gi.light.dir = half3(0,1,0);
  886. // Call GI (lightmaps/SH/reflections) lighting function
  887. UnityGIInput giInput;
  888. UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput);
  889. giInput.light = gi.light;
  890. giInput.worldPos = worldPos;
  891. giInput.worldViewDir = worldViewDir;
  892. giInput.atten = atten;
  893. #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)
  894. giInput.lightmapUV = IN.lmap;
  895. #else
  896. giInput.lightmapUV = 0.0;
  897. #endif
  898. #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL
  899. giInput.ambient = IN.sh;
  900. #else
  901. giInput.ambient.rgb = 0.0;
  902. #endif
  903. giInput.probeHDR[0] = unity_SpecCube0_HDR;
  904. giInput.probeHDR[1] = unity_SpecCube1_HDR;
  905. #if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION)
  906. giInput.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending
  907. #endif
  908. #ifdef UNITY_SPECCUBE_BOX_PROJECTION
  909. giInput.boxMax[0] = unity_SpecCube0_BoxMax;
  910. giInput.probePosition[0] = unity_SpecCube0_ProbePosition;
  911. giInput.boxMax[1] = unity_SpecCube1_BoxMax;
  912. giInput.boxMin[1] = unity_SpecCube1_BoxMin;
  913. giInput.probePosition[1] = unity_SpecCube1_ProbePosition;
  914. #endif
  915. LightingStandard_GI(o, giInput, gi);
  916. // call lighting function to output g-buffer
  917. outEmission = LightingStandard_Deferred (o, worldViewDir, gi, outGBuffer0, outGBuffer1, outGBuffer2);
  918. #if defined(SHADOWS_SHADOWMASK) && (UNITY_ALLOWED_MRT_COUNT > 4)
  919. outShadowMask = UnityGetRawBakedOcclusions (IN.lmap.xy, worldPos);
  920. #endif
  921. #ifndef UNITY_HDR_ON
  922. outEmission.rgb = exp2(-outEmission.rgb);
  923. #endif
  924. }
  925. ENDCG
  926. }
  927. // ---- shadow caster pass:
  928. Pass {
  929. Name "ShadowCaster"
  930. Tags { "LightMode" = "ShadowCaster" }
  931. ZWrite On ZTest LEqual
  932. CGPROGRAM
  933. // compile directives
  934. #pragma vertex vert_surf
  935. #pragma fragment frag_surf
  936. #pragma target 3.0
  937. #pragma multi_compile_instancing
  938. #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
  939. #pragma multi_compile_shadowcaster
  940. #include "HLSLSupport.cginc"
  941. #define UNITY_INSTANCED_LOD_FADE
  942. #define UNITY_INSTANCED_SH
  943. #define UNITY_INSTANCED_LIGHTMAPSTS
  944. #include "UnityShaderVariables.cginc"
  945. #include "UnityShaderUtilities.cginc"
  946. #include "UnityCG.cginc"
  947. #include "Lighting.cginc"
  948. #include "UnityPBSLighting.cginc"
  949. #define INTERNAL_DATA
  950. #define WorldReflectionVector(data,normal) data.worldRefl
  951. #define WorldNormalVector(data,normal) normal
  952. struct Input
  953. {
  954. float2 texcoord;
  955. };
  956. //Curved World
  957. //#define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE
  958. //#define CURVEDWORLD_BEND_ID_1
  959. //#pragma shader_feature_local CURVEDWORLD_DISABLED_ON
  960. //#pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON
  961. //#include "Assets/Amazing Assets/Curved World/Shaders/Core/CurvedWorldTransform.cginc"
  962. #define _ALPHATEST_ON
  963. #define TERRAIN_TO_MESH_PASS_SHADOW_CASTER
  964. #include "Splatmap.cginc"
  965. // vertex-to-fragment interpolation data
  966. struct v2f_surf {
  967. V2F_SHADOW_CASTER;
  968. float3 worldPos : TEXCOORD1;
  969. float2 custompack0 : TEXCOORD2; // texcoord
  970. UNITY_VERTEX_INPUT_INSTANCE_ID
  971. UNITY_VERTEX_OUTPUT_STEREO
  972. };
  973. // vertex shader
  974. v2f_surf vert_surf (appdata_full v) {
  975. UNITY_SETUP_INSTANCE_ID(v);
  976. v2f_surf o;
  977. UNITY_INITIALIZE_OUTPUT(v2f_surf,o);
  978. UNITY_TRANSFER_INSTANCE_ID(v,o);
  979. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  980. Input customInputData;
  981. vert (v, customInputData);
  982. o.custompack0.xy = customInputData.texcoord;
  983. float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
  984. float3 worldNormal = UnityObjectToWorldNormal(v.normal);
  985. o.worldPos.xyz = worldPos;
  986. TRANSFER_SHADOW_CASTER_NORMALOFFSET(o)
  987. return o;
  988. }
  989. // fragment shader
  990. fixed4 frag_surf (v2f_surf IN) : SV_Target {
  991. UNITY_SETUP_INSTANCE_ID(IN);
  992. // prepare and unpack data
  993. Input surfIN;
  994. #ifdef FOG_COMBINED_WITH_TSPACE
  995. UNITY_EXTRACT_FOG_FROM_TSPACE(IN);
  996. #elif defined (FOG_COMBINED_WITH_WORLD_POS)
  997. UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN);
  998. #else
  999. UNITY_EXTRACT_FOG(IN);
  1000. #endif
  1001. UNITY_INITIALIZE_OUTPUT(Input,surfIN);
  1002. surfIN.texcoord.x = 1.0;
  1003. surfIN.texcoord = IN.custompack0.xy;
  1004. float3 worldPos = IN.worldPos.xyz;
  1005. #ifndef USING_DIRECTIONAL_LIGHT
  1006. fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos));
  1007. #else
  1008. fixed3 lightDir = _WorldSpaceLightPos0.xyz;
  1009. #endif
  1010. #ifdef UNITY_COMPILER_HLSL
  1011. SurfaceOutputStandard o = (SurfaceOutputStandard)0;
  1012. #else
  1013. SurfaceOutputStandard o;
  1014. #endif
  1015. o.Albedo = 0.0;
  1016. o.Emission = 0.0;
  1017. o.Alpha = 0.0;
  1018. o.Occlusion = 1.0;
  1019. fixed3 normalWorldVertex = fixed3(0,0,1);
  1020. // call surface function
  1021. surf (surfIN, o);
  1022. SHADOW_CASTER_FRAGMENT(IN)
  1023. }
  1024. ENDCG
  1025. }
  1026. }
  1027. //"Mobile/Diffuse"
  1028. SubShader
  1029. {
  1030. Tags { "RenderType"="Opaque" }
  1031. LOD 150
  1032. CGPROGRAM
  1033. #pragma surface surf Lambert fullforwardshadows addshadow vertex:vert
  1034. //Curved World
  1035. //#define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE
  1036. //#define CURVEDWORLD_BEND_ID_1
  1037. //#pragma shader_feature_local CURVEDWORLD_DISABLED_ON
  1038. //#pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON
  1039. //#include "Assets/Amazing Assets/Curved World/Shaders/Core/CurvedWorldTransform.cginc"
  1040. #define _ALPHATEST_ON
  1041. sampler2D _MainTex;
  1042. sampler2D _T2M_HolesMap;
  1043. sampler2D _BumpMap;
  1044. struct Input
  1045. {
  1046. float2 texcoord;
  1047. };
  1048. void vert (inout appdata_full v, out Input o)
  1049. {
  1050. UNITY_INITIALIZE_OUTPUT(Input,o);
  1051. o.texcoord = v.texcoord.xy;
  1052. //Curved World
  1053. #if defined(CURVEDWORLD_IS_INSTALLED) && !defined(CURVEDWORLD_DISABLED_ON)
  1054. #ifdef CURVEDWORLD_NORMAL_TRANSFORMATION_ON
  1055. CURVEDWORLD_TRANSFORM_VERTEX_AND_NORMAL(v.vertex, v.normal, v.tangent)
  1056. #else
  1057. CURVEDWORLD_TRANSFORM_VERTEX(v.vertex)
  1058. #endif
  1059. #endif
  1060. }
  1061. void surf (Input IN, inout SurfaceOutput o)
  1062. {
  1063. o.Alpha = 1;
  1064. #if defined(_ALPHATEST_ON)
  1065. o.Alpha = tex2D(_T2M_HolesMap, IN.texcoord).r;
  1066. clip(o.Alpha - 0.5);
  1067. #endif
  1068. o.Albedo = tex2D(_MainTex, IN.texcoord).rgb;
  1069. o.Normal = UnpackNormal(tex2D(_BumpMap, IN.texcoord));
  1070. }
  1071. ENDCG
  1072. }
  1073. CustomEditor "AmazingAssets.TerrainToMesh.Editor.SplatmapShaderGUI"
  1074. }