InTerra_DiffuseObjectIntegration.shader 12 KB

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