InTerra_MeshTerrain.shader 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. Shader "InTerra/Built-in/Mesh Terrain (Standard)"
  2. {
  3. Properties
  4. {
  5. [HideInInspector] _MipMapFade("Parallax MipMap fade", vector) = (3,15,0,35)
  6. [HideInInspector] _MipMapLevel("Parallax MipMap level", Float) = 0
  7. [HideInInspector] _MipMapCount("Main Mask MipMap Count", Float) = 15
  8. _HT_distance("Distance", vector) = (3,10,0,25)
  9. _HT_distance_scale("Scale", Range(0,0.5)) = 0.25
  10. _HT_cover("Cover strenght", Range(0,1)) = 0.8
  11. _ParallaxAffineStepsTerrain("", Float) = 3
  12. [HideInInspector] _HeightTransition("Height blending Sharpness", Range(0,60)) = 40
  13. [HideInInspector] _Distance_HeightTransition("Distance Height blending Sharpness ", Range(0,60)) = 40
  14. [HideInInspector] _NumLayersCount("", Float) = 0
  15. [HideInInspector] _Splat0("Splat 0", 2D) = "white" {}
  16. [HideInInspector] _Splat1("Splat 1", 2D) = "white" {}
  17. [HideInInspector] _Splat2("Splat 2", 2D) = "white" {}
  18. [HideInInspector] _Splat3("Splat 3", 2D) = "white" {}
  19. [HideInInspector] _Splat4("Splat 4", 2D) = "white" {}
  20. [HideInInspector] _Splat5("Splat 5", 2D) = "white" {}
  21. [HideInInspector] _Splat6("Splat 6", 2D) = "white" {}
  22. [HideInInspector] _Splat7("Splat 7", 2D) = "white" {}
  23. [HideInInspector] _Normal0("Normal 0", 2D) = "bump" {}
  24. [HideInInspector] _Normal1("Normal 1", 2D) = "bump" {}
  25. [HideInInspector] _Normal2("Normal 2", 2D) = "bump" {}
  26. [HideInInspector] _Normal3("Normal 3", 2D) = "bump" {}
  27. [HideInInspector] _Normal4("Normal 4", 2D) = "bump" {}
  28. [HideInInspector] _Normal5("Normal 5", 2D) = "bump" {}
  29. [HideInInspector] _Normal6("Normal 6", 2D) = "bump" {}
  30. [HideInInspector] _Normal7("Normal 7", 2D) = "bump" {}
  31. [HideInInspector] _Mask0("Mask 0", 2D) = "black" {}
  32. [HideInInspector] _Mask1("Mask 1", 2D) = "black" {}
  33. [HideInInspector] _Mask2("Mask 2", 2D) = "black" {}
  34. [HideInInspector] _Mask3("Mask 3", 2D) = "black" {}
  35. [HideInInspector] _Mask4("Mask 4", 2D) = "black" {}
  36. [HideInInspector] _Mask5("Mask 5", 2D) = "black" {}
  37. [HideInInspector] _Mask6("Mask 6", 2D) = "black" {}
  38. [HideInInspector] _Mask7("Mask 7", 2D) = "black" {}
  39. [HideInInspector] _Specular0("specular 0", Color) = (1,0,0,0)
  40. [HideInInspector] _Specular1("specular 1", Color) = (1,0,0,0)
  41. [HideInInspector] _Specular2("specular 2", Color) = (1,0,0,0)
  42. [HideInInspector] _Specular3("specular 3", Color) = (1,0,0,0)
  43. [HideInInspector] _Specular4("specular 4", Color) = (1,0,0,0)
  44. [HideInInspector] _Specular5("specular 5", Color) = (1,0,0,0)
  45. [HideInInspector] _Specular6("specular 6", Color) = (1,0,0,0)
  46. [HideInInspector] _Specular7("specular 7", Color) = (1,0,0,0)
  47. [HideInInspector] _SplatUV0("splat UV0", Vector) = (1,1,0,0)
  48. [HideInInspector] _SplatUV1("splat sUV1", Vector) = (1,1,0,0)
  49. [HideInInspector] _SplatUV2("splat sUV2", Vector) = (1,1,0,0)
  50. [HideInInspector] _SplatUV3("splat sUV3", Vector) = (1,1,0,0)
  51. [HideInInspector] _SplatUV4("splat sUV4", Vector) = (1,1,0,0)
  52. [HideInInspector] _SplatUV5("splat sUV5", Vector) = (1,1,0,0)
  53. [HideInInspector] _SplatUV6("splat sUV6", Vector) = (1,1,0,0)
  54. [HideInInspector] _SplatUV7("splat sUV7", Vector) = (1,1,0,0)
  55. [HideInInspector] _MaskMapRemapScale0("", Vector) = (0,0,0,0)
  56. [HideInInspector] _MaskMapRemapScale1("", Vector) = (0,0,0,0)
  57. [HideInInspector] _MaskMapRemapScale2("", Vector) = (0,0,0,0)
  58. [HideInInspector] _MaskMapRemapScale3("", Vector) = (0,0,0,0)
  59. [HideInInspector] _MaskMapRemapScale4("", Vector) = (0,0,0,0)
  60. [HideInInspector] _MaskMapRemapScale5("", Vector) = (0,0,0,0)
  61. [HideInInspector] _MaskMapRemapScale6("", Vector) = (0,0,0,0)
  62. [HideInInspector] _MaskMapRemapScale7("", Vector) = (0,0,0,0)
  63. [HideInInspector] _MaskMapRemapOffset0("", Vector) = (0,0,0,0)
  64. [HideInInspector] _MaskMapRemapOffset1("", Vector) = (0,0,0,0)
  65. [HideInInspector] _MaskMapRemapOffset2("", Vector) = (0,0,0,0)
  66. [HideInInspector] _MaskMapRemapOffset3("", Vector) = (0,0,0,0)
  67. [HideInInspector] _MaskMapRemapOffset4("", Vector) = (0,0,0,0)
  68. [HideInInspector] _MaskMapRemapOffset5("", Vector) = (0,0,0,0)
  69. [HideInInspector] _MaskMapRemapOffset6("", Vector) = (0,0,0,0)
  70. [HideInInspector] _MaskMapRemapOffset7("", Vector) = (0,0,0,0)
  71. [HideInInspector] _DiffuseRemapScale0("", Vector) = (1,1,1,1)
  72. [HideInInspector] _DiffuseRemapScale1("", Vector) = (1,1,1,1)
  73. [HideInInspector] _DiffuseRemapScale2("", Vector) = (1,1,1,1)
  74. [HideInInspector] _DiffuseRemapScale3("", Vector) = (1,1,1,1)
  75. [HideInInspector] _DiffuseRemapScale4("", Vector) = (1,1,1,1)
  76. [HideInInspector] _DiffuseRemapScale5("", Vector) = (1,1,1,1)
  77. [HideInInspector] _DiffuseRemapScale6("", Vector) = (1,1,1,1)
  78. [HideInInspector] _DiffuseRemapScale7("", Vector) = (1,1,1,1)
  79. [HideInInspector] _DiffuseRemapOffset0("", Vector) = (0,0,0,0)
  80. [HideInInspector] _DiffuseRemapOffset1("", Vector) = (0,0,0,0)
  81. [HideInInspector] _DiffuseRemapOffset2("", Vector) = (0,0,0,0)
  82. [HideInInspector] _DiffuseRemapOffset3("", Vector) = (0,0,0,0)
  83. [HideInInspector] _DiffuseRemapOffset4("", Vector) = (0,0,0,0)
  84. [HideInInspector] _DiffuseRemapOffset5("", Vector) = (0,0,0,0)
  85. [HideInInspector] _DiffuseRemapOffset6("", Vector) = (0,0,0,0)
  86. [HideInInspector] _DiffuseRemapOffset7("", Vector) = (0,0,0,0)
  87. [HideInInspector] _Smoothness0("", Float) = 0
  88. [HideInInspector] _Smoothness1("", Float) = 0
  89. [HideInInspector] _Smoothness2("", Float) = 0
  90. [HideInInspector] _Smoothness3("", Float) = 0
  91. [HideInInspector] _Smoothness4("", Float) = 0
  92. [HideInInspector] _Smoothness5("", Float) = 0
  93. [HideInInspector] _Smoothness6("", Float) = 0
  94. [HideInInspector] _Smoothness7("", Float) = 0
  95. [HideInInspector] _Metallic0("", Float) = 0
  96. [HideInInspector] _Metallic1("", Float) = 0
  97. [HideInInspector] _Metallic2("", Float) = 0
  98. [HideInInspector] _Metallic3("", Float) = 0
  99. [HideInInspector] _Metallic4("", Float) = 0
  100. [HideInInspector] _Metallic5("", Float) = 0
  101. [HideInInspector] _Metallic6("", Float) = 0
  102. [HideInInspector] _Metallic7("", Float) = 0
  103. [HideInInspector] _NormalScale0("", Float) = 1
  104. [HideInInspector] _NormalScale1("", Float) = 1
  105. [HideInInspector] _NormalScale2("", Float) = 1
  106. [HideInInspector] _NormalScale3("", Float) = 1
  107. [HideInInspector] _NormalScale4("", Float) = 1
  108. [HideInInspector] _NormalScale5("", Float) = 1
  109. [HideInInspector] _NormalScale6("", Float) = 1
  110. [HideInInspector] _NormalScale7("", Float) = 1
  111. [HideInInspector] _TerrainNormalmapTexture("", 2D) = "bump" {}
  112. [HideInInspector] _TerrainHeightmapTexture("", 2D) = "black" {}
  113. [HideInInspector] _Control("cntrl", 2D) = "red" {}
  114. [HideInInspector] _Control1("cntrl1", 2D) = "black" {}
  115. [HideInInspector] _TerrainPosition("tp", Vector) = (0,0,0)
  116. [HideInInspector] _TerrainSize("ts", Vector) = (100,10,100)
  117. [HideInInspector] _TerrainHeightmapScale("hms", Vector) = (1, 100, 1, 50)
  118. [HideInInspector] _HeightmapBase("", Float) = 0
  119. [HideInInspector] _HeightmapBaseCustom("", Float) = 0
  120. [HideInInspector] _TriplanarOneToAllSteep("", Float) = 0
  121. [HideInInspector] _TriplanarSharpness("Triplanar Sharpness", Range(3,10)) = 8
  122. [HideInInspector] _TerrainColorTintTexture("Color Tint Texture", 2D) = "white" {}
  123. [HideInInspector] _TerrainColorTintStrenght("Color Tint Strenght", Range(1, 0)) = 0
  124. [HideInInspector] _TerrainNormalTintTexture("Additional Normal Texture", 2D) = "bump" {}
  125. [HideInInspector] _TerrainNormalTintStrenght("Additional Normal Strenght", Range(0, 1)) = 0.0
  126. [HideInInspector] _TerrainNormalTintDistance("Additional Normal Distance", vector) = (3, 10, 0, 25)
  127. [HideInInspector] _WorldMapping("", Float) = 0
  128. [HideInInspector] _CustomTerrainSelection("", Float) = 0
  129. [HideInInspector] _GlobalSmoothness("", Range(0, 1)) = 0
  130. [HideInInspector] _TwoLayersOnly("", Float) = 0
  131. [HideInInspector] _HeightmapBlending("", Float) = 1
  132. [HideInInspector] _Terrain_Parallax("", Float) = 0
  133. [HideInInspector] _Tracks("", Float) = 0
  134. [HideInInspector] _Gamma("", Float) = 0
  135. [HideInInspector] _NormalsFromHeightmap("", Float) = 0
  136. [HideInInspector] _TrackAO("", Range(0, 1)) = 0.8
  137. [HideInInspector] _TrackEdgeNormals("Track Edge index", Range(0.001, 4)) = 1
  138. [HideInInspector] _TrackEdgeSharpness("Track Edge Normals", Range(0.001, 4)) = 1
  139. [HideInInspector] _TrackDetailTexture("Track Color Detail Texture", 2D) = "white" {}
  140. [HideInInspector] _TrackDetailNormalTexture("Track Normal Detail Texture", 2D) = "bump" {}
  141. [HideInInspector] _TrackDetailNormalStrenght("Track Detail Normal Strenght", Float) = 1
  142. [HideInInspector] _TrackNormalStrenght("Track Normal Strenght", Float) = 1
  143. [HideInInspector] _TrackHeightOffset("Track Heightmap Offset", Range(-1, 1)) = 0
  144. [HideInInspector] _TrackMultiplyStrenght("Track Multiply strenght", Float) = 3
  145. [HideInInspector] _TrackHeightTransition("Track Normal Strenght", Range(0, 60)) = 20
  146. [HideInInspector] _ParallaxTrackAffineSteps("", Float) = 3
  147. [HideInInspector] _ParallaxTrackSteps("", Float) = 5
  148. }
  149. SubShader {
  150. Tags { "RenderType" = "Opaque"}
  151. LOD 200
  152. CGPROGRAM
  153. #pragma surface surf Standard vertex:SplatmapVert addshadow fullforwardshadows
  154. #pragma target 3.5
  155. #pragma shader_feature_local _TERRAIN_DISTANCEBLEND
  156. #pragma shader_feature_local __ _TERRAIN_TRIPLANAR_ONE _TERRAIN_TRIPLANAR
  157. #define INTERRA_MESH_TERRAIN
  158. #include "InTerra_DefinedGlobalKeywords.cginc"
  159. #include "InTerra_InputsAndFunctions.cginc"
  160. #include "InTerra_Mixing.cginc"
  161. //===========================================================================
  162. //--------------------------------- SURFACE ---------------------------------
  163. //===========================================================================
  164. void surf (Input IN, inout SurfaceOutputStandard o) {
  165. half weight;
  166. fixed4 mixedDiffuse;
  167. SplatmapMix(IN, weight, mixedDiffuse, o.Normal, o.Occlusion, o.Metallic);
  168. o.Albedo = mixedDiffuse.rgb;
  169. o.Alpha = weight;
  170. o.Smoothness = mixedDiffuse.a;
  171. }
  172. ENDCG
  173. }
  174. FallBack "Diffuse"
  175. CustomEditor "InTerra.InTerra_TerrainShaderGUI"
  176. }