InTerra_ObjectIntegration.shader 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. Shader "InTerra/Built-in/Object into Terrain Integration"
  2. {
  3. Properties
  4. {
  5. _Color("Color", Color) = (1,1,1,1)
  6. _MainTex("Albedo (RGB)", 2D) = "white" {}
  7. _BumpMap("Normal Map", 2D) = "bump" {}
  8. _BumpScale("Normal Scale", Float) = 1
  9. _MainMask("Mask Map", 2D) = "grey" {}
  10. _Ao("A. Occlusion", Range(0,1)) = 0.0
  11. _Metallic("Metallic", Range(0,1)) = 0.0
  12. _Glossiness("Smoothness", Range(0,1)) = 0.0
  13. [HideInInspector] _HasMask("", Float) = 0
  14. [HideInInspector] _MaskMapRemapOffset("", Vector) = (0,0,0,0)
  15. [HideInInspector] _MaskMapRemapScale("", Vector) = (1,1,1,1)
  16. [HideInInspector] _Detail("", Float) = 1
  17. _DetailAlbedoMap("Detail Albedo", 2D) = "gery" {}
  18. _DetailNormalMap("Detail Normal Map", 2D) = "bump" {}
  19. _DetailNormalMapScale("Normal Scale", Float) = 1
  20. _DetailStrenght("Detail Strenght", Range(0,1)) = 0.5
  21. _DetailNormalStrenght("Detail Strenght", Range(0,1)) = 0.5
  22. _EmissionEnabled("Emission", Float) = 0
  23. _EmissionMap("Emission Color Map", 2D) = "white" {}
  24. _EmissionColor("Emission Color", Color) = (0,0,0,1)
  25. _EmissionIntensity("Emission Intensity", Range(0,2)) = 1
  26. _ParallaxHeight("Height", Range(0,15)) = 2
  27. _ParallaxSteps("Steps", Float) = 3
  28. _DisableTerrainParallax("Disable Terrain Parallax", Float) = 0
  29. _ParallaxAffineSteps("", Float) = 3
  30. _ParallaxAffineStepsTerrain("", Float) = 3
  31. _MipMapFade("Parallax MipMap fade", vector) = (3,15,0,35)
  32. _MipMapLevel("Parallax MipMap level", Float) = 0
  33. _MipMapCount("Main Mask MipMap Count", Float) = 15
  34. _Intersection("Intersection Values", Vector) = (-0.5,0.6,-2,2)
  35. _Sharpness("Sharpness", Range(30,100)) = 80
  36. _NormIntersect("Normals intersection", Vector) = (0, 0.6, 0, 1)
  37. _Intersection2("Intersection2", Vector) = (0.3,0.6,0,1)
  38. _Steepness("Steepness", Range(-0.7,0.2)) = -0.3
  39. _SteepDistortion("Distortion", Range(0,3)) = 0
  40. _SteepIntersection("Steep intersection", Float) = 0
  41. [Toggle(_OBJECT_TRIPLANR)] _Triplanar("Triplanar", Float) = 1
  42. [Toggle(_OBJECT_DISABLE_OFFSET)]_DisableOffsetY("Disable Offset", Float) = 0
  43. [Toggle(_OBJECT_DISABLE_DISTANCEBLEND)]_DisableDistanceBlending("Disable Hide Tiling", Float) = 0
  44. [HideInInspector] _HT_distance_scale("Scale", Range(0,0.55)) = 0.2
  45. [HideInInspector] _HT_distance("Distance", vector) = (0,20,0,100)
  46. [HideInInspector] _HT_cover("Cover strenght", Range(0,1)) = 0.6
  47. [HideInInspector] _HeightTransition("Height blending Sharpness", Range(0,60)) = 40
  48. [HideInInspector] _Distance_HeightTransition("Distance Height blending Sharpness ", Range(0,60)) = 40
  49. [HideInInspector] _LayerIndex1("", Float) = 0
  50. [HideInInspector] _LayerIndex2("", Float) = 1
  51. [HideInInspector] _ControlNumber("", Float) = 0
  52. [HideInInspector] _PassNumber("", float) = 0
  53. [HideInInspector] _Splat0("Splat 0", 2D) = "white" {}
  54. [HideInInspector] _Splat1("Splat 1", 2D) = "white" {}
  55. [HideInInspector] _Splat2("Splat 2", 2D) = "white" {}
  56. [HideInInspector] _Splat3("Splat 3", 2D) = "white" {}
  57. [HideInInspector] _Splat4("Splat 4", 2D) = "white" {}
  58. [HideInInspector] _Splat5("Splat 5", 2D) = "white" {}
  59. [HideInInspector] _Splat6("Splat 6", 2D) = "white" {}
  60. [HideInInspector] _Splat7("Splat 7", 2D) = "white" {}
  61. [HideInInspector] _Normal0("Normal 0", 2D) = "bump" {}
  62. [HideInInspector] _Normal1("Normal 1", 2D) = "bump" {}
  63. [HideInInspector] _Normal2("Normal 2", 2D) = "bump" {}
  64. [HideInInspector] _Normal3("Normal 3", 2D) = "bump" {}
  65. [HideInInspector] _Normal4("Normal 4", 2D) = "bump" {}
  66. [HideInInspector] _Normal5("Normal 5", 2D) = "bump" {}
  67. [HideInInspector] _Normal6("Normal 6", 2D) = "bump" {}
  68. [HideInInspector] _Normal7("Normal 7", 2D) = "bump" {}
  69. [HideInInspector] _Mask0("Mask 0", 2D) = "black" {}
  70. [HideInInspector] _Mask1("Mask 1", 2D) = "black" {}
  71. [HideInInspector] _Mask2("Mask 2", 2D) = "black" {}
  72. [HideInInspector] _Mask3("Mask 3", 2D) = "black" {}
  73. [HideInInspector] _Mask4("Mask 4", 2D) = "black" {}
  74. [HideInInspector] _Mask5("Mask 5", 2D) = "black" {}
  75. [HideInInspector] _Mask6("Mask 6", 2D) = "black" {}
  76. [HideInInspector] _Mask7("Mask 7", 2D) = "black" {}
  77. [HideInInspector] _Specular0("specular 0", Color) = (1,0,0,0)
  78. [HideInInspector] _Specular1("specular 1", Color) = (1,0,0,0)
  79. [HideInInspector] _Specular2("specular 2", Color) = (1,0,0,0)
  80. [HideInInspector] _Specular3("specular 3", Color) = (1,0,0,0)
  81. [HideInInspector] _Specular4("specular 4", Color) = (1,0,0,0)
  82. [HideInInspector] _Specular5("specular 5", Color) = (1,0,0,0)
  83. [HideInInspector] _Specular6("specular 6", Color) = (1,0,0,0)
  84. [HideInInspector] _Specular7("specular 7", Color) = (1,0,0,0)
  85. [HideInInspector] _SplatUV0("splat UV0", Vector) = (1,1,0,0)
  86. [HideInInspector] _SplatUV1("splat sUV1", Vector) = (1,1,0,0)
  87. [HideInInspector] _SplatUV2("splat sUV2", Vector) = (1,1,0,0)
  88. [HideInInspector] _SplatUV3("splat sUV3", Vector) = (1,1,0,0)
  89. [HideInInspector] _SplatUV4("splat sUV4", Vector) = (1,1,0,0)
  90. [HideInInspector] _SplatUV5("splat sUV5", Vector) = (1,1,0,0)
  91. [HideInInspector] _SplatUV6("splat sUV6", Vector) = (1,1,0,0)
  92. [HideInInspector] _SplatUV7("splat sUV7", Vector) = (1,1,0,0)
  93. [HideInInspector] _MaskMapRemapScale0("", Vector) = (0,0,0,0)
  94. [HideInInspector] _MaskMapRemapScale1("", Vector) = (0,0,0,0)
  95. [HideInInspector] _MaskMapRemapScale2("", Vector) = (0,0,0,0)
  96. [HideInInspector] _MaskMapRemapScale3("", Vector) = (0,0,0,0)
  97. [HideInInspector] _MaskMapRemapScale4("", Vector) = (0,0,0,0)
  98. [HideInInspector] _MaskMapRemapScale5("", Vector) = (0,0,0,0)
  99. [HideInInspector] _MaskMapRemapScale6("", Vector) = (0,0,0,0)
  100. [HideInInspector] _MaskMapRemapScale7("", Vector) = (0,0,0,0)
  101. [HideInInspector] _MaskMapRemapOffset0("", Vector) = (0,0,0,0)
  102. [HideInInspector] _MaskMapRemapOffset1("", Vector) = (0,0,0,0)
  103. [HideInInspector] _MaskMapRemapOffset2("", Vector) = (0,0,0,0)
  104. [HideInInspector] _MaskMapRemapOffset3("", Vector) = (0,0,0,0)
  105. [HideInInspector] _MaskMapRemapOffset4("", Vector) = (0,0,0,0)
  106. [HideInInspector] _MaskMapRemapOffset5("", Vector) = (0,0,0,0)
  107. [HideInInspector] _MaskMapRemapOffset6("", Vector) = (0,0,0,0)
  108. [HideInInspector] _MaskMapRemapOffset7("", Vector) = (0,0,0,0)
  109. [HideInInspector] _DiffuseRemapScale0("", Vector) = (1,1,1,1)
  110. [HideInInspector] _DiffuseRemapScale1("", Vector) = (1,1,1,1)
  111. [HideInInspector] _DiffuseRemapScale2("", Vector) = (1,1,1,1)
  112. [HideInInspector] _DiffuseRemapScale3("", Vector) = (1,1,1,1)
  113. [HideInInspector] _DiffuseRemapScale4("", Vector) = (1,1,1,1)
  114. [HideInInspector] _DiffuseRemapScale5("", Vector) = (1,1,1,1)
  115. [HideInInspector] _DiffuseRemapScale6("", Vector) = (1,1,1,1)
  116. [HideInInspector] _DiffuseRemapScale7("", Vector) = (1,1,1,1)
  117. [HideInInspector] _DiffuseRemapOffset0("", Vector) = (0,0,0,0)
  118. [HideInInspector] _DiffuseRemapOffset1("", Vector) = (0,0,0,0)
  119. [HideInInspector] _DiffuseRemapOffset2("", Vector) = (0,0,0,0)
  120. [HideInInspector] _DiffuseRemapOffset3("", Vector) = (0,0,0,0)
  121. [HideInInspector] _DiffuseRemapOffset4("", Vector) = (0,0,0,0)
  122. [HideInInspector] _DiffuseRemapOffset5("", Vector) = (0,0,0,0)
  123. [HideInInspector] _DiffuseRemapOffset6("", Vector) = (0,0,0,0)
  124. [HideInInspector] _DiffuseRemapOffset7("", Vector) = (0,0,0,0)
  125. [HideInInspector] _Smoothness0("", Float) = 0
  126. [HideInInspector] _Smoothness1("", Float) = 0
  127. [HideInInspector] _Smoothness2("", Float) = 0
  128. [HideInInspector] _Smoothness3("", Float) = 0
  129. [HideInInspector] _Smoothness4("", Float) = 0
  130. [HideInInspector] _Smoothness5("", Float) = 0
  131. [HideInInspector] _Smoothness6("", Float) = 0
  132. [HideInInspector] _Smoothness7("", Float) = 0
  133. [HideInInspector] _Metallic0("", Float) = 0
  134. [HideInInspector] _Metallic1("", Float) = 0
  135. [HideInInspector] _Metallic2("", Float) = 0
  136. [HideInInspector] _Metallic3("", Float) = 0
  137. [HideInInspector] _Metallic4("", Float) = 0
  138. [HideInInspector] _Metallic5("", Float) = 0
  139. [HideInInspector] _Metallic6("", Float) = 0
  140. [HideInInspector] _Metallic7("", Float) = 0
  141. [HideInInspector] _NormalScale0("", Float) = 1
  142. [HideInInspector] _NormalScale1("", Float) = 1
  143. [HideInInspector] _NormalScale2("", Float) = 1
  144. [HideInInspector] _NormalScale3("", Float) = 1
  145. [HideInInspector] _NormalScale4("", Float) = 1
  146. [HideInInspector] _NormalScale5("", Float) = 1
  147. [HideInInspector] _NormalScale6("", Float) = 1
  148. [HideInInspector] _NormalScale7("", Float) = 1
  149. [HideInInspector] _TerrainNormalmapTexture("", 2D) = "green" {}
  150. [HideInInspector] _TerrainHeightmapTexture("", 2D) = "black" {}
  151. [HideInInspector] _Control("cntrl", 2D) = "red" {}
  152. [HideInInspector] _Control1("cntrl", 2D) = "black" {}
  153. [HideInInspector] _TerrainPosition("tp", Vector) = (0,0,0)
  154. [HideInInspector] _TerrainSize("ts", Vector) = (0,0,0)
  155. [HideInInspector] _TerrainHeightmapScale("hms", Vector) = (0,0,0)
  156. [HideInInspector] _TriplanarOneToAllSteep("", Float) = 0
  157. [HideInInspector] _TriplanarSharpness("Triplanar Sharpness", Range(3,10)) = 8
  158. [HideInInspector] _TerrainColorTintTexture("Color Tint Texture", 2D) = "white" {}
  159. [HideInInspector] _TerrainColorTintStrenght("Color Tint Strenght", Range(1, 0)) = 0
  160. [HideInInspector] _TerrainNormalTintTexture("Additional Normal Texture", 2D) = "bump" {}
  161. [HideInInspector] _TerrainNormalTintStrenght("Additional Normal Strenght", Range(0, 1)) = 0.0
  162. [HideInInspector] _TerrainNormalTintDistance("Additional Normal Distance", vector) = (3, 10, 0, 25)
  163. [HideInInspector] _CustomTerrainSelection("", Float) = 0
  164. [HideInInspector] _WorldMapping("", Float) = 0
  165. [HideInInspector] _GlobalWetness("", Range(0, 1)) = 0
  166. [HideInInspector] _MeshTerrain("", Float) = 0
  167. [HideInInspector] _HeightmapBlending("", Float) = 1
  168. [HideInInspector] _Terrain_Parallax("", Float) = 0
  169. [HideInInspector] _Object_Parallax("", Float) = 0
  170. [HideInInspector] _Tracks("", Float) = 0
  171. [HideInInspector] _TrackAO("", Range(0, 1)) = 0.8
  172. [HideInInspector] _TrackEdgeNormals("Track Edge index", Range(0.001, 4)) = 1
  173. [HideInInspector] _TrackDetailTexture("Track Color Detail Texture", 2D) = "white" {}
  174. [HideInInspector] _TrackDetailNormalTexture("Track Normal Detail Texture", 2D) = "bump" {}
  175. [HideInInspector] _TrackDetailNormalStrenght("Track Detail Normal Strenght", Float) = 1
  176. [HideInInspector] _TrackNormalStrenght("Track Normal Strenght", Float) = 1
  177. [HideInInspector] _TrackHeightOffset("Track Heightmap Offset", Range(-1, 1)) = 0
  178. [HideInInspector] _TrackMultiplyStrenght("Track Multiply strenght", Float) = 3
  179. [HideInInspector] _TrackHeightTransition("Track Normal Strenght", Range(0, 60)) = 20
  180. [HideInInspector] _ParallaxTrackAffineSteps("", Float) = 3
  181. [HideInInspector] _ParallaxTrackSteps("", Float) = 5
  182. [HideInInspector] _TrackEdgeSharpness("Track Edge Normals", Range(0.001, 4)) = 1
  183. _GlobalWetnessDisabled("", Float) = 0
  184. }
  185. SubShader {
  186. Tags { "RenderType" = "Opaque"}
  187. LOD 200
  188. CGPROGRAM
  189. #pragma surface surf Standard vertex:SplatmapVert addshadow fullforwardshadows
  190. #pragma target 3.5
  191. #pragma shader_feature_local _TERRAIN_DISTANCEBLEND
  192. #pragma shader_feature_local _OBJECT_TRIPLANAR
  193. #pragma shader_feature_local ONE_PASS _LAYERS_ONE _LAYERS_TWO
  194. #define INTERRA_OBJECT
  195. #include "InTerra_DefinedGlobalKeywords.cginc"
  196. #if defined(_LAYERS_ONE) || defined(_LAYERS_TWO)
  197. #undef _LAYERS_EIGHT
  198. #endif
  199. #include "InTerra_InputsAndFunctions.cginc"
  200. #include "InTerra_Mixing.cginc"
  201. //===========================================================================
  202. //--------------------------------- SURFACE ---------------------------------
  203. //===========================================================================
  204. void surf (Input IN, inout SurfaceOutputStandard o) {
  205. half weight;
  206. fixed4 mixedDiffuse;
  207. SplatmapMix(IN, weight, mixedDiffuse, o.Normal, o.Occlusion, o.Metallic, o.Emission);
  208. o.Albedo = mixedDiffuse.rgb;
  209. o.Alpha = weight;
  210. o.Smoothness = mixedDiffuse.a;
  211. }
  212. ENDCG
  213. }
  214. FallBack "Diffuse"
  215. CustomEditor "InTerra.InTerra_ObjectShaderGUI"
  216. }