Splatmap.shader 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227
  1. Shader "Amazing Assets/Terrain To Mesh/Splatmap"
  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. #pragma shader_feature_local _ _T2M_TEXTURE_SAMPLE_TYPE_ARRAY
  245. #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
  246. #pragma shader_feature_local _T2M_LAYER_0_NORMAL
  247. #pragma shader_feature_local _T2M_LAYER_1_NORMAL
  248. #pragma shader_feature_local _T2M_LAYER_2_NORMAL
  249. #pragma shader_feature_local _T2M_LAYER_3_NORMAL
  250. #pragma shader_feature_local _T2M_LAYER_4_NORMAL
  251. #pragma shader_feature_local _T2M_LAYER_5_NORMAL
  252. #pragma shader_feature_local _T2M_LAYER_6_NORMAL
  253. #pragma shader_feature_local _T2M_LAYER_7_NORMAL
  254. #pragma shader_feature_local _T2M_LAYER_8_NORMAL
  255. #pragma shader_feature_local _T2M_LAYER_9_NORMAL
  256. #pragma shader_feature_local _T2M_LAYER_10_NORMAL
  257. #pragma shader_feature_local _T2M_LAYER_11_NORMAL
  258. #pragma shader_feature_local _T2M_LAYER_12_NORMAL
  259. #pragma shader_feature_local _T2M_LAYER_13_NORMAL
  260. #pragma shader_feature_local _T2M_LAYER_14_NORMAL
  261. #pragma shader_feature_local _T2M_LAYER_15_NORMAL
  262. #pragma shader_feature_local _T2M_LAYER_0_MASK
  263. #pragma shader_feature_local _T2M_LAYER_1_MASK
  264. #pragma shader_feature_local _T2M_LAYER_2_MASK
  265. #pragma shader_feature_local _T2M_LAYER_3_MASK
  266. #pragma shader_feature_local _T2M_LAYER_4_MASK
  267. #pragma shader_feature_local _T2M_LAYER_5_MASK
  268. #pragma shader_feature_local _T2M_LAYER_6_MASK
  269. #pragma shader_feature_local _T2M_LAYER_7_MASK
  270. #pragma shader_feature_local _T2M_LAYER_8_MASK
  271. #pragma shader_feature_local _T2M_LAYER_9_MASK
  272. #pragma shader_feature_local _T2M_LAYER_10_MASK
  273. #pragma shader_feature_local _T2M_LAYER_11_MASK
  274. #pragma shader_feature_local _T2M_LAYER_12_MASK
  275. #pragma shader_feature_local _T2M_LAYER_13_MASK
  276. #pragma shader_feature_local _T2M_LAYER_14_MASK
  277. #pragma shader_feature_local _T2M_LAYER_15_MASK
  278. #define TERRAIN_TO_MESH_NEED_NORMAL
  279. #define TERRAIN_TO_MESH_NEED_METALLIC_SMOOTHNESS_OCCLUSION
  280. #include "Splatmap.cginc"
  281. // vertex-to-fragment interpolation data
  282. // no lightmaps:
  283. #ifndef LIGHTMAP_ON
  284. // half-precision fragment shader registers:
  285. #ifdef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS
  286. #define FOG_COMBINED_WITH_TSPACE
  287. struct v2f_surf {
  288. UNITY_POSITION(pos);
  289. float4 tSpace0 : TEXCOORD0;
  290. float4 tSpace1 : TEXCOORD1;
  291. float4 tSpace2 : TEXCOORD2;
  292. float2 custompack0 : TEXCOORD3; // texcoord
  293. #if UNITY_SHOULD_SAMPLE_SH
  294. half3 sh : TEXCOORD4; // SH
  295. #endif
  296. UNITY_LIGHTING_COORDS(5,6)
  297. #if SHADER_TARGET >= 30
  298. float4 lmap : TEXCOORD7;
  299. #endif
  300. UNITY_VERTEX_INPUT_INSTANCE_ID
  301. UNITY_VERTEX_OUTPUT_STEREO
  302. };
  303. #endif
  304. // high-precision fragment shader registers:
  305. #ifndef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS
  306. struct v2f_surf {
  307. UNITY_POSITION(pos);
  308. float4 tSpace0 : TEXCOORD0;
  309. float4 tSpace1 : TEXCOORD1;
  310. float4 tSpace2 : TEXCOORD2;
  311. float2 custompack0 : TEXCOORD3; // texcoord
  312. #if UNITY_SHOULD_SAMPLE_SH
  313. half3 sh : TEXCOORD4; // SH
  314. #endif
  315. UNITY_FOG_COORDS(5)
  316. UNITY_SHADOW_COORDS(6)
  317. #if SHADER_TARGET >= 30
  318. float4 lmap : TEXCOORD7;
  319. #endif
  320. UNITY_VERTEX_INPUT_INSTANCE_ID
  321. UNITY_VERTEX_OUTPUT_STEREO
  322. };
  323. #endif
  324. #endif
  325. // with lightmaps:
  326. #ifdef LIGHTMAP_ON
  327. // half-precision fragment shader registers:
  328. #ifdef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS
  329. #define FOG_COMBINED_WITH_TSPACE
  330. struct v2f_surf {
  331. UNITY_POSITION(pos);
  332. float4 tSpace0 : TEXCOORD0;
  333. float4 tSpace1 : TEXCOORD1;
  334. float4 tSpace2 : TEXCOORD2;
  335. float2 custompack0 : TEXCOORD3; // texcoord
  336. float4 lmap : TEXCOORD4;
  337. UNITY_LIGHTING_COORDS(5,6)
  338. UNITY_VERTEX_INPUT_INSTANCE_ID
  339. UNITY_VERTEX_OUTPUT_STEREO
  340. };
  341. #endif
  342. // high-precision fragment shader registers:
  343. #ifndef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS
  344. struct v2f_surf {
  345. UNITY_POSITION(pos);
  346. float4 tSpace0 : TEXCOORD0;
  347. float4 tSpace1 : TEXCOORD1;
  348. float4 tSpace2 : TEXCOORD2;
  349. float2 custompack0 : TEXCOORD3; // texcoord
  350. float4 lmap : TEXCOORD4;
  351. UNITY_FOG_COORDS(5)
  352. UNITY_SHADOW_COORDS(6)
  353. UNITY_VERTEX_INPUT_INSTANCE_ID
  354. UNITY_VERTEX_OUTPUT_STEREO
  355. };
  356. #endif
  357. #endif
  358. // vertex shader
  359. v2f_surf vert_surf (appdata_full v) {
  360. UNITY_SETUP_INSTANCE_ID(v);
  361. v2f_surf o;
  362. UNITY_INITIALIZE_OUTPUT(v2f_surf,o);
  363. UNITY_TRANSFER_INSTANCE_ID(v,o);
  364. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  365. Input customInputData;
  366. vert (v, customInputData);
  367. o.custompack0.xy = customInputData.texcoord;
  368. o.pos = UnityObjectToClipPos(v.vertex);
  369. float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
  370. float3 worldNormal = UnityObjectToWorldNormal(v.normal);
  371. fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz);
  372. fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w;
  373. fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign;
  374. o.tSpace0 = float4(worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x);
  375. o.tSpace1 = float4(worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y);
  376. o.tSpace2 = float4(worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z);
  377. #ifdef DYNAMICLIGHTMAP_ON
  378. o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw;
  379. #endif
  380. #ifdef LIGHTMAP_ON
  381. o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw;
  382. #endif
  383. // SH/ambient and vertex lights
  384. #ifndef LIGHTMAP_ON
  385. #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL
  386. o.sh = 0;
  387. // Approximated illumination from non-important point lights
  388. #ifdef VERTEXLIGHT_ON
  389. o.sh += Shade4PointLights (
  390. unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0,
  391. unity_LightColor[0].rgb, unity_LightColor[1].rgb, unity_LightColor[2].rgb, unity_LightColor[3].rgb,
  392. unity_4LightAtten0, worldPos, worldNormal);
  393. #endif
  394. o.sh = ShadeSHPerVertex (worldNormal, o.sh);
  395. #endif
  396. #endif // !LIGHTMAP_ON
  397. UNITY_TRANSFER_LIGHTING(o,v.texcoord1.xy); // pass shadow and, possibly, light cookie coordinates to pixel shader
  398. #ifdef FOG_COMBINED_WITH_TSPACE
  399. UNITY_TRANSFER_FOG_COMBINED_WITH_TSPACE(o,o.pos); // pass fog coordinates to pixel shader
  400. #elif defined (FOG_COMBINED_WITH_WORLD_POS)
  401. UNITY_TRANSFER_FOG_COMBINED_WITH_WORLD_POS(o,o.pos); // pass fog coordinates to pixel shader
  402. #else
  403. UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader
  404. #endif
  405. return o;
  406. }
  407. // fragment shader
  408. fixed4 frag_surf (v2f_surf IN) : SV_Target {
  409. UNITY_SETUP_INSTANCE_ID(IN);
  410. // prepare and unpack data
  411. Input surfIN;
  412. #ifdef FOG_COMBINED_WITH_TSPACE
  413. UNITY_EXTRACT_FOG_FROM_TSPACE(IN);
  414. #elif defined (FOG_COMBINED_WITH_WORLD_POS)
  415. UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN);
  416. #else
  417. UNITY_EXTRACT_FOG(IN);
  418. #endif
  419. #ifdef FOG_COMBINED_WITH_TSPACE
  420. UNITY_RECONSTRUCT_TBN(IN);
  421. #else
  422. UNITY_EXTRACT_TBN(IN);
  423. #endif
  424. UNITY_INITIALIZE_OUTPUT(Input,surfIN);
  425. surfIN.texcoord.x = 1.0;
  426. surfIN.texcoord = IN.custompack0.xy;
  427. float3 worldPos = float3(IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w);
  428. #ifndef USING_DIRECTIONAL_LIGHT
  429. fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos));
  430. #else
  431. fixed3 lightDir = _WorldSpaceLightPos0.xyz;
  432. #endif
  433. float3 worldViewDir = normalize(UnityWorldSpaceViewDir(worldPos));
  434. #ifdef UNITY_COMPILER_HLSL
  435. SurfaceOutputStandard o = (SurfaceOutputStandard)0;
  436. #else
  437. SurfaceOutputStandard o;
  438. #endif
  439. o.Albedo = 0.0;
  440. o.Emission = 0.0;
  441. o.Alpha = 0.0;
  442. o.Occlusion = 1.0;
  443. fixed3 normalWorldVertex = fixed3(0,0,1);
  444. o.Normal = fixed3(0,0,1);
  445. // call surface function
  446. surf (surfIN, o);
  447. // compute lighting & shadowing factor
  448. UNITY_LIGHT_ATTENUATION(atten, IN, worldPos)
  449. fixed4 c = 0;
  450. float3 worldN;
  451. worldN.x = dot(_unity_tbn_0, o.Normal);
  452. worldN.y = dot(_unity_tbn_1, o.Normal);
  453. worldN.z = dot(_unity_tbn_2, o.Normal);
  454. worldN = normalize(worldN);
  455. o.Normal = worldN;
  456. // Setup lighting environment
  457. UnityGI gi;
  458. UNITY_INITIALIZE_OUTPUT(UnityGI, gi);
  459. gi.indirect.diffuse = 0;
  460. gi.indirect.specular = 0;
  461. gi.light.color = _LightColor0.rgb;
  462. gi.light.dir = lightDir;
  463. // Call GI (lightmaps/SH/reflections) lighting function
  464. UnityGIInput giInput;
  465. UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput);
  466. giInput.light = gi.light;
  467. giInput.worldPos = worldPos;
  468. giInput.worldViewDir = worldViewDir;
  469. giInput.atten = atten;
  470. #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)
  471. giInput.lightmapUV = IN.lmap;
  472. #else
  473. giInput.lightmapUV = 0.0;
  474. #endif
  475. #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL
  476. giInput.ambient = IN.sh;
  477. #else
  478. giInput.ambient.rgb = 0.0;
  479. #endif
  480. giInput.probeHDR[0] = unity_SpecCube0_HDR;
  481. giInput.probeHDR[1] = unity_SpecCube1_HDR;
  482. #if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION)
  483. giInput.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending
  484. #endif
  485. #ifdef UNITY_SPECCUBE_BOX_PROJECTION
  486. giInput.boxMax[0] = unity_SpecCube0_BoxMax;
  487. giInput.probePosition[0] = unity_SpecCube0_ProbePosition;
  488. giInput.boxMax[1] = unity_SpecCube1_BoxMax;
  489. giInput.boxMin[1] = unity_SpecCube1_BoxMin;
  490. giInput.probePosition[1] = unity_SpecCube1_ProbePosition;
  491. #endif
  492. LightingStandard_GI(o, giInput, gi);
  493. // realtime lighting: call lighting function
  494. c += LightingStandard (o, worldViewDir, gi);
  495. UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog
  496. UNITY_OPAQUE_ALPHA(c.a);
  497. return c;
  498. }
  499. ENDCG
  500. }
  501. // ---- forward rendering additive lights pass:
  502. Pass {
  503. Name "FORWARD"
  504. Tags { "LightMode" = "ForwardAdd" }
  505. ZWrite Off Blend One One
  506. CGPROGRAM
  507. // compile directives
  508. #pragma vertex vert_surf
  509. #pragma fragment frag_surf
  510. #pragma target 3.5
  511. #pragma multi_compile_instancing
  512. #pragma multi_compile_fog
  513. #pragma skip_variants INSTANCING_ON
  514. #pragma multi_compile_fwdadd_fullshadows
  515. #include "HLSLSupport.cginc"
  516. #define UNITY_INSTANCED_LOD_FADE
  517. #define UNITY_INSTANCED_SH
  518. #define UNITY_INSTANCED_LIGHTMAPSTS
  519. #include "UnityShaderVariables.cginc"
  520. #include "UnityShaderUtilities.cginc"
  521. #include "UnityCG.cginc"
  522. #include "Lighting.cginc"
  523. #include "UnityPBSLighting.cginc"
  524. #include "AutoLight.cginc"
  525. #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2;
  526. #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)))
  527. #define WorldNormalVector(data,normal) fixed3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))
  528. struct Input
  529. {
  530. float2 texcoord;
  531. };
  532. //Curved World
  533. //#define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE
  534. //#define CURVEDWORLD_BEND_ID_1
  535. //#pragma shader_feature_local CURVEDWORLD_DISABLED_ON
  536. //#pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON
  537. //#include "Assets/Amazing Assets/Curved World/Shaders/Core/CurvedWorldTransform.cginc"
  538. #pragma shader_feature_local _ _T2M_TEXTURE_SAMPLE_TYPE_ARRAY
  539. #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
  540. #pragma shader_feature_local _T2M_LAYER_0_NORMAL
  541. #pragma shader_feature_local _T2M_LAYER_1_NORMAL
  542. #pragma shader_feature_local _T2M_LAYER_2_NORMAL
  543. #pragma shader_feature_local _T2M_LAYER_3_NORMAL
  544. #pragma shader_feature_local _T2M_LAYER_4_NORMAL
  545. #pragma shader_feature_local _T2M_LAYER_5_NORMAL
  546. #pragma shader_feature_local _T2M_LAYER_6_NORMAL
  547. #pragma shader_feature_local _T2M_LAYER_7_NORMAL
  548. #pragma shader_feature_local _T2M_LAYER_8_NORMAL
  549. #pragma shader_feature_local _T2M_LAYER_9_NORMAL
  550. #pragma shader_feature_local _T2M_LAYER_10_NORMAL
  551. #pragma shader_feature_local _T2M_LAYER_11_NORMAL
  552. #pragma shader_feature_local _T2M_LAYER_12_NORMAL
  553. #pragma shader_feature_local _T2M_LAYER_13_NORMAL
  554. #pragma shader_feature_local _T2M_LAYER_14_NORMAL
  555. #pragma shader_feature_local _T2M_LAYER_15_NORMAL
  556. #pragma shader_feature_local _T2M_LAYER_0_MASK
  557. #pragma shader_feature_local _T2M_LAYER_1_MASK
  558. #pragma shader_feature_local _T2M_LAYER_2_MASK
  559. #pragma shader_feature_local _T2M_LAYER_3_MASK
  560. #pragma shader_feature_local _T2M_LAYER_4_MASK
  561. #pragma shader_feature_local _T2M_LAYER_5_MASK
  562. #pragma shader_feature_local _T2M_LAYER_6_MASK
  563. #pragma shader_feature_local _T2M_LAYER_7_MASK
  564. #pragma shader_feature_local _T2M_LAYER_8_MASK
  565. #pragma shader_feature_local _T2M_LAYER_9_MASK
  566. #pragma shader_feature_local _T2M_LAYER_10_MASK
  567. #pragma shader_feature_local _T2M_LAYER_11_MASK
  568. #pragma shader_feature_local _T2M_LAYER_12_MASK
  569. #pragma shader_feature_local _T2M_LAYER_13_MASK
  570. #pragma shader_feature_local _T2M_LAYER_14_MASK
  571. #pragma shader_feature_local _T2M_LAYER_15_MASK
  572. #define TERRAIN_TO_MESH_NEED_NORMAL
  573. #define TERRAIN_TO_MESH_NEED_METALLIC_SMOOTHNESS_OCCLUSION
  574. #include "Splatmap.cginc"
  575. // vertex-to-fragment interpolation data
  576. struct v2f_surf {
  577. UNITY_POSITION(pos);
  578. float3 tSpace0 : TEXCOORD0;
  579. float3 tSpace1 : TEXCOORD1;
  580. float3 tSpace2 : TEXCOORD2;
  581. float3 worldPos : TEXCOORD3;
  582. float2 custompack0 : TEXCOORD4; // texcoord
  583. UNITY_LIGHTING_COORDS(5,6)
  584. UNITY_FOG_COORDS(7)
  585. UNITY_VERTEX_INPUT_INSTANCE_ID
  586. UNITY_VERTEX_OUTPUT_STEREO
  587. };
  588. // vertex shader
  589. v2f_surf vert_surf (appdata_full v) {
  590. UNITY_SETUP_INSTANCE_ID(v);
  591. v2f_surf o;
  592. UNITY_INITIALIZE_OUTPUT(v2f_surf,o);
  593. UNITY_TRANSFER_INSTANCE_ID(v,o);
  594. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  595. Input customInputData;
  596. vert (v, customInputData);
  597. o.custompack0.xy = customInputData.texcoord;
  598. o.pos = UnityObjectToClipPos(v.vertex);
  599. float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
  600. float3 worldNormal = UnityObjectToWorldNormal(v.normal);
  601. fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz);
  602. fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w;
  603. fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign;
  604. o.tSpace0 = float3(worldTangent.x, worldBinormal.x, worldNormal.x);
  605. o.tSpace1 = float3(worldTangent.y, worldBinormal.y, worldNormal.y);
  606. o.tSpace2 = float3(worldTangent.z, worldBinormal.z, worldNormal.z);
  607. o.worldPos.xyz = worldPos;
  608. UNITY_TRANSFER_LIGHTING(o,v.texcoord1.xy); // pass shadow and, possibly, light cookie coordinates to pixel shader
  609. UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader
  610. return o;
  611. }
  612. // fragment shader
  613. fixed4 frag_surf (v2f_surf IN) : SV_Target {
  614. UNITY_SETUP_INSTANCE_ID(IN);
  615. // prepare and unpack data
  616. Input surfIN;
  617. #ifdef FOG_COMBINED_WITH_TSPACE
  618. UNITY_EXTRACT_FOG_FROM_TSPACE(IN);
  619. #elif defined (FOG_COMBINED_WITH_WORLD_POS)
  620. UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN);
  621. #else
  622. UNITY_EXTRACT_FOG(IN);
  623. #endif
  624. #ifdef FOG_COMBINED_WITH_TSPACE
  625. UNITY_RECONSTRUCT_TBN(IN);
  626. #else
  627. UNITY_EXTRACT_TBN(IN);
  628. #endif
  629. UNITY_INITIALIZE_OUTPUT(Input,surfIN);
  630. surfIN.texcoord.x = 1.0;
  631. surfIN.texcoord = IN.custompack0.xy;
  632. float3 worldPos = IN.worldPos.xyz;
  633. #ifndef USING_DIRECTIONAL_LIGHT
  634. fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos));
  635. #else
  636. fixed3 lightDir = _WorldSpaceLightPos0.xyz;
  637. #endif
  638. float3 worldViewDir = normalize(UnityWorldSpaceViewDir(worldPos));
  639. #ifdef UNITY_COMPILER_HLSL
  640. SurfaceOutputStandard o = (SurfaceOutputStandard)0;
  641. #else
  642. SurfaceOutputStandard o;
  643. #endif
  644. o.Albedo = 0.0;
  645. o.Emission = 0.0;
  646. o.Alpha = 0.0;
  647. o.Occlusion = 1.0;
  648. fixed3 normalWorldVertex = fixed3(0,0,1);
  649. o.Normal = fixed3(0,0,1);
  650. // call surface function
  651. surf (surfIN, o);
  652. UNITY_LIGHT_ATTENUATION(atten, IN, worldPos)
  653. fixed4 c = 0;
  654. float3 worldN;
  655. worldN.x = dot(_unity_tbn_0, o.Normal);
  656. worldN.y = dot(_unity_tbn_1, o.Normal);
  657. worldN.z = dot(_unity_tbn_2, o.Normal);
  658. worldN = normalize(worldN);
  659. o.Normal = worldN;
  660. // Setup lighting environment
  661. UnityGI gi;
  662. UNITY_INITIALIZE_OUTPUT(UnityGI, gi);
  663. gi.indirect.diffuse = 0;
  664. gi.indirect.specular = 0;
  665. gi.light.color = _LightColor0.rgb;
  666. gi.light.dir = lightDir;
  667. gi.light.color *= atten;
  668. c += LightingStandard (o, worldViewDir, gi);
  669. c.a = 0.0;
  670. UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog
  671. UNITY_OPAQUE_ALPHA(c.a);
  672. return c;
  673. }
  674. ENDCG
  675. }
  676. // ---- deferred shading pass:
  677. Pass {
  678. Name "DEFERRED"
  679. Tags { "LightMode" = "Deferred" }
  680. CGPROGRAM
  681. // compile directives
  682. #pragma vertex vert_surf
  683. #pragma fragment frag_surf
  684. #pragma target 3.5
  685. #pragma multi_compile_instancing
  686. #pragma exclude_renderers nomrt
  687. #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
  688. #pragma multi_compile_prepassfinal
  689. #include "HLSLSupport.cginc"
  690. #define UNITY_INSTANCED_LOD_FADE
  691. #define UNITY_INSTANCED_SH
  692. #define UNITY_INSTANCED_LIGHTMAPSTS
  693. #include "UnityShaderVariables.cginc"
  694. #include "UnityShaderUtilities.cginc"
  695. #include "UnityCG.cginc"
  696. #include "Lighting.cginc"
  697. #include "UnityPBSLighting.cginc"
  698. #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2;
  699. #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)))
  700. #define WorldNormalVector(data,normal) fixed3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))
  701. struct Input
  702. {
  703. float2 texcoord;
  704. };
  705. //Curved World
  706. //#define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE
  707. //#define CURVEDWORLD_BEND_ID_1
  708. //#pragma shader_feature_local CURVEDWORLD_DISABLED_ON
  709. //#pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON
  710. //#include "Assets/Amazing Assets/Curved World/Shaders/Core/CurvedWorldTransform.cginc"
  711. #pragma shader_feature_local _ _T2M_TEXTURE_SAMPLE_TYPE_ARRAY
  712. #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
  713. #pragma shader_feature_local _T2M_LAYER_0_NORMAL
  714. #pragma shader_feature_local _T2M_LAYER_1_NORMAL
  715. #pragma shader_feature_local _T2M_LAYER_2_NORMAL
  716. #pragma shader_feature_local _T2M_LAYER_3_NORMAL
  717. #pragma shader_feature_local _T2M_LAYER_4_NORMAL
  718. #pragma shader_feature_local _T2M_LAYER_5_NORMAL
  719. #pragma shader_feature_local _T2M_LAYER_6_NORMAL
  720. #pragma shader_feature_local _T2M_LAYER_7_NORMAL
  721. #pragma shader_feature_local _T2M_LAYER_8_NORMAL
  722. #pragma shader_feature_local _T2M_LAYER_9_NORMAL
  723. #pragma shader_feature_local _T2M_LAYER_10_NORMAL
  724. #pragma shader_feature_local _T2M_LAYER_11_NORMAL
  725. #pragma shader_feature_local _T2M_LAYER_12_NORMAL
  726. #pragma shader_feature_local _T2M_LAYER_13_NORMAL
  727. #pragma shader_feature_local _T2M_LAYER_14_NORMAL
  728. #pragma shader_feature_local _T2M_LAYER_15_NORMAL
  729. #pragma shader_feature_local _T2M_LAYER_0_MASK
  730. #pragma shader_feature_local _T2M_LAYER_1_MASK
  731. #pragma shader_feature_local _T2M_LAYER_2_MASK
  732. #pragma shader_feature_local _T2M_LAYER_3_MASK
  733. #pragma shader_feature_local _T2M_LAYER_4_MASK
  734. #pragma shader_feature_local _T2M_LAYER_5_MASK
  735. #pragma shader_feature_local _T2M_LAYER_6_MASK
  736. #pragma shader_feature_local _T2M_LAYER_7_MASK
  737. #pragma shader_feature_local _T2M_LAYER_8_MASK
  738. #pragma shader_feature_local _T2M_LAYER_9_MASK
  739. #pragma shader_feature_local _T2M_LAYER_10_MASK
  740. #pragma shader_feature_local _T2M_LAYER_11_MASK
  741. #pragma shader_feature_local _T2M_LAYER_12_MASK
  742. #pragma shader_feature_local _T2M_LAYER_13_MASK
  743. #pragma shader_feature_local _T2M_LAYER_14_MASK
  744. #pragma shader_feature_local _T2M_LAYER_15_MASK
  745. #define TERRAIN_TO_MESH_NEED_NORMAL
  746. #define TERRAIN_TO_MESH_NEED_METALLIC_SMOOTHNESS_OCCLUSION
  747. #include "Splatmap.cginc"
  748. // vertex-to-fragment interpolation data
  749. struct v2f_surf {
  750. UNITY_POSITION(pos);
  751. float4 tSpace0 : TEXCOORD0;
  752. float4 tSpace1 : TEXCOORD1;
  753. float4 tSpace2 : TEXCOORD2;
  754. float2 custompack0 : TEXCOORD3; // texcoord
  755. #ifndef DIRLIGHTMAP_OFF
  756. float3 viewDir : TEXCOORD4;
  757. #endif
  758. float4 lmap : TEXCOORD5;
  759. #ifndef LIGHTMAP_ON
  760. #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL
  761. half3 sh : TEXCOORD6; // SH
  762. #endif
  763. #else
  764. #ifdef DIRLIGHTMAP_OFF
  765. float4 lmapFadePos : TEXCOORD6;
  766. #endif
  767. #endif
  768. UNITY_VERTEX_INPUT_INSTANCE_ID
  769. UNITY_VERTEX_OUTPUT_STEREO
  770. };
  771. // vertex shader
  772. v2f_surf vert_surf (appdata_full v) {
  773. UNITY_SETUP_INSTANCE_ID(v);
  774. v2f_surf o;
  775. UNITY_INITIALIZE_OUTPUT(v2f_surf,o);
  776. UNITY_TRANSFER_INSTANCE_ID(v,o);
  777. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  778. Input customInputData;
  779. vert (v, customInputData);
  780. o.custompack0.xy = customInputData.texcoord;
  781. o.pos = UnityObjectToClipPos(v.vertex);
  782. float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
  783. float3 worldNormal = UnityObjectToWorldNormal(v.normal);
  784. fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz);
  785. fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w;
  786. fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign;
  787. o.tSpace0 = float4(worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x);
  788. o.tSpace1 = float4(worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y);
  789. o.tSpace2 = float4(worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z);
  790. float3 viewDirForLight = UnityWorldSpaceViewDir(worldPos);
  791. #ifndef DIRLIGHTMAP_OFF
  792. o.viewDir.x = dot(viewDirForLight, worldTangent);
  793. o.viewDir.y = dot(viewDirForLight, worldBinormal);
  794. o.viewDir.z = dot(viewDirForLight, worldNormal);
  795. #endif
  796. #ifdef DYNAMICLIGHTMAP_ON
  797. o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw;
  798. #else
  799. o.lmap.zw = 0;
  800. #endif
  801. #ifdef LIGHTMAP_ON
  802. o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw;
  803. #ifdef DIRLIGHTMAP_OFF
  804. o.lmapFadePos.xyz = (mul(unity_ObjectToWorld, v.vertex).xyz - unity_ShadowFadeCenterAndType.xyz) * unity_ShadowFadeCenterAndType.w;
  805. o.lmapFadePos.w = (-UnityObjectToViewPos(v.vertex).z) * (1.0 - unity_ShadowFadeCenterAndType.w);
  806. #endif
  807. #else
  808. o.lmap.xy = 0;
  809. #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL
  810. o.sh = 0;
  811. o.sh = ShadeSHPerVertex (worldNormal, o.sh);
  812. #endif
  813. #endif
  814. return o;
  815. }
  816. #ifdef LIGHTMAP_ON
  817. float4 unity_LightmapFade;
  818. #endif
  819. fixed4 unity_Ambient;
  820. // fragment shader
  821. void frag_surf (v2f_surf IN,
  822. out half4 outGBuffer0 : SV_Target0,
  823. out half4 outGBuffer1 : SV_Target1,
  824. out half4 outGBuffer2 : SV_Target2,
  825. out half4 outEmission : SV_Target3
  826. #if defined(SHADOWS_SHADOWMASK) && (UNITY_ALLOWED_MRT_COUNT > 4)
  827. , out half4 outShadowMask : SV_Target4
  828. #endif
  829. ) {
  830. UNITY_SETUP_INSTANCE_ID(IN);
  831. // prepare and unpack data
  832. Input surfIN;
  833. #ifdef FOG_COMBINED_WITH_TSPACE
  834. UNITY_EXTRACT_FOG_FROM_TSPACE(IN);
  835. #elif defined (FOG_COMBINED_WITH_WORLD_POS)
  836. UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN);
  837. #else
  838. UNITY_EXTRACT_FOG(IN);
  839. #endif
  840. #ifdef FOG_COMBINED_WITH_TSPACE
  841. UNITY_RECONSTRUCT_TBN(IN);
  842. #else
  843. UNITY_EXTRACT_TBN(IN);
  844. #endif
  845. UNITY_INITIALIZE_OUTPUT(Input,surfIN);
  846. surfIN.texcoord.x = 1.0;
  847. surfIN.texcoord = IN.custompack0.xy;
  848. float3 worldPos = float3(IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w);
  849. #ifndef USING_DIRECTIONAL_LIGHT
  850. fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos));
  851. #else
  852. fixed3 lightDir = _WorldSpaceLightPos0.xyz;
  853. #endif
  854. float3 worldViewDir = normalize(UnityWorldSpaceViewDir(worldPos));
  855. #ifdef UNITY_COMPILER_HLSL
  856. SurfaceOutputStandard o = (SurfaceOutputStandard)0;
  857. #else
  858. SurfaceOutputStandard o;
  859. #endif
  860. o.Albedo = 0.0;
  861. o.Emission = 0.0;
  862. o.Alpha = 0.0;
  863. o.Occlusion = 1.0;
  864. fixed3 normalWorldVertex = fixed3(0,0,1);
  865. o.Normal = fixed3(0,0,1);
  866. // call surface function
  867. surf (surfIN, o);
  868. fixed3 originalNormal = o.Normal;
  869. float3 worldN;
  870. worldN.x = dot(_unity_tbn_0, o.Normal);
  871. worldN.y = dot(_unity_tbn_1, o.Normal);
  872. worldN.z = dot(_unity_tbn_2, o.Normal);
  873. worldN = normalize(worldN);
  874. o.Normal = worldN;
  875. half atten = 1;
  876. // Setup lighting environment
  877. UnityGI gi;
  878. UNITY_INITIALIZE_OUTPUT(UnityGI, gi);
  879. gi.indirect.diffuse = 0;
  880. gi.indirect.specular = 0;
  881. gi.light.color = 0;
  882. gi.light.dir = half3(0,1,0);
  883. // Call GI (lightmaps/SH/reflections) lighting function
  884. UnityGIInput giInput;
  885. UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput);
  886. giInput.light = gi.light;
  887. giInput.worldPos = worldPos;
  888. giInput.worldViewDir = worldViewDir;
  889. giInput.atten = atten;
  890. #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)
  891. giInput.lightmapUV = IN.lmap;
  892. #else
  893. giInput.lightmapUV = 0.0;
  894. #endif
  895. #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL
  896. giInput.ambient = IN.sh;
  897. #else
  898. giInput.ambient.rgb = 0.0;
  899. #endif
  900. giInput.probeHDR[0] = unity_SpecCube0_HDR;
  901. giInput.probeHDR[1] = unity_SpecCube1_HDR;
  902. #if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION)
  903. giInput.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending
  904. #endif
  905. #ifdef UNITY_SPECCUBE_BOX_PROJECTION
  906. giInput.boxMax[0] = unity_SpecCube0_BoxMax;
  907. giInput.probePosition[0] = unity_SpecCube0_ProbePosition;
  908. giInput.boxMax[1] = unity_SpecCube1_BoxMax;
  909. giInput.boxMin[1] = unity_SpecCube1_BoxMin;
  910. giInput.probePosition[1] = unity_SpecCube1_ProbePosition;
  911. #endif
  912. LightingStandard_GI(o, giInput, gi);
  913. // call lighting function to output g-buffer
  914. outEmission = LightingStandard_Deferred (o, worldViewDir, gi, outGBuffer0, outGBuffer1, outGBuffer2);
  915. #if defined(SHADOWS_SHADOWMASK) && (UNITY_ALLOWED_MRT_COUNT > 4)
  916. outShadowMask = UnityGetRawBakedOcclusions (IN.lmap.xy, worldPos);
  917. #endif
  918. #ifndef UNITY_HDR_ON
  919. outEmission.rgb = exp2(-outEmission.rgb);
  920. #endif
  921. }
  922. ENDCG
  923. }
  924. // ---- shadow caster pass:
  925. Pass {
  926. Name "ShadowCaster"
  927. Tags { "LightMode" = "ShadowCaster" }
  928. ZWrite On ZTest LEqual
  929. CGPROGRAM
  930. // compile directives
  931. #pragma vertex vert_surf
  932. #pragma fragment frag_surf
  933. #pragma target 3.0
  934. #pragma multi_compile_instancing
  935. #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
  936. #pragma multi_compile_shadowcaster
  937. #include "HLSLSupport.cginc"
  938. #define UNITY_INSTANCED_LOD_FADE
  939. #define UNITY_INSTANCED_SH
  940. #define UNITY_INSTANCED_LIGHTMAPSTS
  941. #include "UnityShaderVariables.cginc"
  942. #include "UnityShaderUtilities.cginc"
  943. #include "UnityCG.cginc"
  944. #include "Lighting.cginc"
  945. #include "UnityPBSLighting.cginc"
  946. #define INTERNAL_DATA
  947. #define WorldReflectionVector(data,normal) data.worldRefl
  948. #define WorldNormalVector(data,normal) normal
  949. struct Input
  950. {
  951. float2 texcoord;
  952. };
  953. //Curved World
  954. //#define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE
  955. //#define CURVEDWORLD_BEND_ID_1
  956. //#pragma shader_feature_local CURVEDWORLD_DISABLED_ON
  957. //#pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON
  958. //#include "Assets/Amazing Assets/Curved World/Shaders/Core/CurvedWorldTransform.cginc"
  959. #define TERRAIN_TO_MESH_PASS_SHADOW_CASTER
  960. #include "Splatmap.cginc"
  961. // vertex-to-fragment interpolation data
  962. struct v2f_surf {
  963. V2F_SHADOW_CASTER;
  964. float3 worldPos : TEXCOORD1;
  965. float2 custompack0 : TEXCOORD2; // texcoord
  966. UNITY_VERTEX_INPUT_INSTANCE_ID
  967. UNITY_VERTEX_OUTPUT_STEREO
  968. };
  969. // vertex shader
  970. v2f_surf vert_surf (appdata_full v) {
  971. UNITY_SETUP_INSTANCE_ID(v);
  972. v2f_surf o;
  973. UNITY_INITIALIZE_OUTPUT(v2f_surf,o);
  974. UNITY_TRANSFER_INSTANCE_ID(v,o);
  975. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  976. Input customInputData;
  977. vert (v, customInputData);
  978. o.custompack0.xy = customInputData.texcoord;
  979. float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
  980. float3 worldNormal = UnityObjectToWorldNormal(v.normal);
  981. o.worldPos.xyz = worldPos;
  982. TRANSFER_SHADOW_CASTER_NORMALOFFSET(o)
  983. return o;
  984. }
  985. // fragment shader
  986. fixed4 frag_surf (v2f_surf IN) : SV_Target {
  987. UNITY_SETUP_INSTANCE_ID(IN);
  988. // prepare and unpack data
  989. Input surfIN;
  990. #ifdef FOG_COMBINED_WITH_TSPACE
  991. UNITY_EXTRACT_FOG_FROM_TSPACE(IN);
  992. #elif defined (FOG_COMBINED_WITH_WORLD_POS)
  993. UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN);
  994. #else
  995. UNITY_EXTRACT_FOG(IN);
  996. #endif
  997. UNITY_INITIALIZE_OUTPUT(Input,surfIN);
  998. surfIN.texcoord.x = 1.0;
  999. surfIN.texcoord = IN.custompack0.xy;
  1000. float3 worldPos = IN.worldPos.xyz;
  1001. #ifndef USING_DIRECTIONAL_LIGHT
  1002. fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos));
  1003. #else
  1004. fixed3 lightDir = _WorldSpaceLightPos0.xyz;
  1005. #endif
  1006. #ifdef UNITY_COMPILER_HLSL
  1007. SurfaceOutputStandard o = (SurfaceOutputStandard)0;
  1008. #else
  1009. SurfaceOutputStandard o;
  1010. #endif
  1011. o.Albedo = 0.0;
  1012. o.Emission = 0.0;
  1013. o.Alpha = 0.0;
  1014. o.Occlusion = 1.0;
  1015. fixed3 normalWorldVertex = fixed3(0,0,1);
  1016. // call surface function
  1017. surf (surfIN, o);
  1018. SHADOW_CASTER_FRAGMENT(IN)
  1019. }
  1020. ENDCG
  1021. }
  1022. }
  1023. //"Mobile/Diffuse"
  1024. SubShader
  1025. {
  1026. Tags { "RenderType"="Opaque" }
  1027. LOD 150
  1028. CGPROGRAM
  1029. #pragma surface surf Lambert fullforwardshadows addshadow vertex:vert
  1030. //Curved World
  1031. //#define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE
  1032. //#define CURVEDWORLD_BEND_ID_1
  1033. //#pragma shader_feature_local CURVEDWORLD_DISABLED_ON
  1034. //#pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON
  1035. //#include "Assets/Amazing Assets/Curved World/Shaders/Core/CurvedWorldTransform.cginc"
  1036. sampler2D _MainTex;
  1037. sampler2D _T2M_HolesMap;
  1038. sampler2D _BumpMap;
  1039. struct Input
  1040. {
  1041. float2 texcoord;
  1042. };
  1043. void vert (inout appdata_full v, out Input o)
  1044. {
  1045. UNITY_INITIALIZE_OUTPUT(Input,o);
  1046. o.texcoord = v.texcoord.xy;
  1047. //Curved World
  1048. #if defined(CURVEDWORLD_IS_INSTALLED) && !defined(CURVEDWORLD_DISABLED_ON)
  1049. #ifdef CURVEDWORLD_NORMAL_TRANSFORMATION_ON
  1050. CURVEDWORLD_TRANSFORM_VERTEX_AND_NORMAL(v.vertex, v.normal, v.tangent)
  1051. #else
  1052. CURVEDWORLD_TRANSFORM_VERTEX(v.vertex)
  1053. #endif
  1054. #endif
  1055. }
  1056. void surf (Input IN, inout SurfaceOutput o)
  1057. {
  1058. o.Albedo = tex2D(_MainTex, IN.texcoord).rgb;
  1059. o.Normal = UnpackNormal(tex2D(_BumpMap, IN.texcoord));
  1060. }
  1061. ENDCG
  1062. }
  1063. CustomEditor "AmazingAssets.TerrainToMesh.Editor.SplatmapShaderGUI"
  1064. }