Guest User

Untitled

a guest
Apr 12th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.34 KB | None | 0 0
  1. // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
  2.  
  3. Shader "Standard"
  4. {
  5. Properties
  6. {
  7. _Color("Color", Color) = (1,1,1,1)
  8. _MainTex("Albedo", 2D) = "white" {}
  9.  
  10. _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
  11.  
  12. _Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5
  13. _GlossMapScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0
  14. [Enum(Metallic Alpha,0,Albedo Alpha,1)] _SmoothnessTextureChannel ("Smoothness texture channel", Float) = 0
  15.  
  16. [Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0
  17. _MetallicGlossMap("Metallic", 2D) = "white" {}
  18.  
  19. [ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0
  20. [ToggleOff] _GlossyReflections("Glossy Reflections", Float) = 1.0
  21.  
  22. _BumpScale("Scale", Float) = 1.0
  23. _BumpMap("Normal Map", 2D) = "bump" {}
  24.  
  25. _Parallax ("Height Scale", Range (0.005, 0.08)) = 0.02
  26. _ParallaxMap ("Height Map", 2D) = "black" {}
  27.  
  28. _OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0
  29. _OcclusionMap("Occlusion", 2D) = "white" {}
  30.  
  31. _EmissionColor("Color", Color) = (0,0,0)
  32. _EmissionMap("Emission", 2D) = "white" {}
  33.  
  34. _DetailMask("Detail Mask", 2D) = "white" {}
  35.  
  36. _DetailAlbedoMap("Detail Albedo x2", 2D) = "grey" {}
  37. _DetailNormalMapScale("Scale", Float) = 1.0
  38. _DetailNormalMap("Normal Map", 2D) = "bump" {}
  39.  
  40. [Enum(UV0,0,UV1,1)] _UVSec ("UV Set for secondary textures", Float) = 0
  41.  
  42.  
  43. // Blending state
  44. [HideInInspector] _Mode ("__mode", Float) = 0.0
  45. [HideInInspector] _SrcBlend ("__src", Float) = 1.0
  46. [HideInInspector] _DstBlend ("__dst", Float) = 0.0
  47. [HideInInspector] _ZWrite ("__zw", Float) = 1.0
  48. }
  49.  
  50. CGINCLUDE
  51. #define UNITY_SETUP_BRDF_INPUT MetallicSetup
  52. ENDCG
  53.  
  54. SubShader
  55. {
  56. Tags { "RenderType"="Opaque" "PerformanceChecks"="False" }
  57. LOD 300
  58. Cull Off
  59.  
  60.  
  61. // ------------------------------------------------------------------
  62. // Base forward pass (directional light, emission, lightmaps, ...)
  63. Pass
  64. {
  65. Name "FORWARD"
  66. Tags { "LightMode" = "ForwardBase" }
  67.  
  68. Blend [_SrcBlend] [_DstBlend]
  69. ZWrite [_ZWrite]
  70.  
  71. CGPROGRAM
  72. #pragma target 3.0
  73.  
  74. // -------------------------------------
  75.  
  76. #pragma shader_feature _NORMALMAP
  77. #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  78. #pragma shader_feature _EMISSION
  79. #pragma shader_feature _METALLICGLOSSMAP
  80. #pragma shader_feature ___ _DETAIL_MULX2
  81. #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  82. #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  83. #pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
  84. #pragma shader_feature _PARALLAXMAP
  85.  
  86. #pragma multi_compile_fwdbase
  87. #pragma multi_compile_fog
  88. #pragma multi_compile_instancing
  89.  
  90. #pragma vertex vertBase
  91. #pragma fragment fragBase
  92. #include "UnityStandardCoreForward.cginc"
  93.  
  94. ENDCG
  95. }
  96. // ------------------------------------------------------------------
  97. // Additive forward pass (one light per pass)
  98. Pass
  99. {
  100. Name "FORWARD_DELTA"
  101. Tags { "LightMode" = "ForwardAdd" }
  102. Blend [_SrcBlend] One
  103. Fog { Color (0,0,0,0) } // in additive pass fog should be black
  104. ZWrite Off
  105. ZTest LEqual
  106.  
  107. CGPROGRAM
  108. #pragma target 3.0
  109.  
  110. // -------------------------------------
  111.  
  112.  
  113. #pragma shader_feature _NORMALMAP
  114. #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  115. #pragma shader_feature _METALLICGLOSSMAP
  116. #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  117. #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  118. #pragma shader_feature ___ _DETAIL_MULX2
  119. #pragma shader_feature _PARALLAXMAP
  120.  
  121. #pragma multi_compile_fwdadd_fullshadows
  122. #pragma multi_compile_fog
  123.  
  124. #pragma vertex vertAdd
  125. #pragma fragment fragAdd
  126. #include "UnityStandardCoreForward.cginc"
  127.  
  128. ENDCG
  129. }
  130. // ------------------------------------------------------------------
  131. // Shadow rendering pass
  132. Pass {
  133. Name "ShadowCaster"
  134. Tags { "LightMode" = "ShadowCaster" }
  135.  
  136. ZWrite On ZTest LEqual
  137.  
  138. CGPROGRAM
  139. #pragma target 3.0
  140.  
  141. // -------------------------------------
  142.  
  143.  
  144. #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  145. #pragma shader_feature _METALLICGLOSSMAP
  146. #pragma shader_feature _PARALLAXMAP
  147. #pragma multi_compile_shadowcaster
  148. #pragma multi_compile_instancing
  149.  
  150. #pragma vertex vertShadowCaster
  151. #pragma fragment fragShadowCaster
  152.  
  153. #include "UnityStandardShadow.cginc"
  154.  
  155. ENDCG
  156. }
  157. // ------------------------------------------------------------------
  158. // Deferred pass
  159. Pass
  160. {
  161. Name "DEFERRED"
  162. Tags { "LightMode" = "Deferred" }
  163.  
  164. CGPROGRAM
  165. #pragma target 3.0
  166. #pragma exclude_renderers nomrt
  167.  
  168.  
  169. // -------------------------------------
  170.  
  171. #pragma shader_feature _NORMALMAP
  172. #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  173. #pragma shader_feature _EMISSION
  174. #pragma shader_feature _METALLICGLOSSMAP
  175. #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  176. #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  177. #pragma shader_feature ___ _DETAIL_MULX2
  178. #pragma shader_feature _PARALLAXMAP
  179.  
  180. #pragma multi_compile_prepassfinal
  181. #pragma multi_compile_instancing
  182.  
  183. #pragma vertex vertDeferred
  184. #pragma fragment fragDeferred
  185.  
  186. #include "UnityStandardCore.cginc"
  187.  
  188. ENDCG
  189. }
  190.  
  191. // ------------------------------------------------------------------
  192. // Extracts information for lightmapping, GI (emission, albedo, ...)
  193. // This pass it not used during regular rendering.
  194. Pass
  195. {
  196. Name "META"
  197. Tags { "LightMode"="Meta" }
  198.  
  199. Cull Off
  200.  
  201. CGPROGRAM
  202. #pragma vertex vert_meta
  203. #pragma fragment frag_meta
  204.  
  205. #pragma shader_feature _EMISSION
  206. #pragma shader_feature _METALLICGLOSSMAP
  207. #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  208. #pragma shader_feature ___ _DETAIL_MULX2
  209. #pragma shader_feature EDITOR_VISUALIZATION
  210.  
  211. #include "UnityStandardMeta.cginc"
  212. ENDCG
  213. }
  214. }
  215.  
  216. SubShader
  217. {
  218. Tags { "RenderType"="Opaque" "PerformanceChecks"="False" }
  219. LOD 150
  220. Cull Off
  221.  
  222. // ------------------------------------------------------------------
  223. // Base forward pass (directional light, emission, lightmaps, ...)
  224. Pass
  225. {
  226. Name "FORWARD"
  227. Tags { "LightMode" = "ForwardBase" }
  228.  
  229. Blend [_SrcBlend] [_DstBlend]
  230. ZWrite [_ZWrite]
  231.  
  232. CGPROGRAM
  233. #pragma target 2.0
  234.  
  235. #pragma shader_feature _NORMALMAP
  236. #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  237. #pragma shader_feature _EMISSION
  238. #pragma shader_feature _METALLICGLOSSMAP
  239. #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  240. #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  241. #pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
  242. // SM2.0: NOT SUPPORTED shader_feature ___ _DETAIL_MULX2
  243. // SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP
  244.  
  245. #pragma skip_variants SHADOWS_SOFT DIRLIGHTMAP_COMBINED
  246.  
  247. #pragma multi_compile_fwdbase
  248. #pragma multi_compile_fog
  249.  
  250. #pragma vertex vertBase
  251. #pragma fragment fragBase
  252. #include "UnityStandardCoreForward.cginc"
  253.  
  254. ENDCG
  255. }
  256. // ------------------------------------------------------------------
  257. // Additive forward pass (one light per pass)
  258. Pass
  259. {
  260. Name "FORWARD_DELTA"
  261. Tags { "LightMode" = "ForwardAdd" }
  262. Blend [_SrcBlend] One
  263. Fog { Color (0,0,0,0) } // in additive pass fog should be black
  264. ZWrite Off
  265. ZTest LEqual
  266.  
  267. CGPROGRAM
  268. #pragma target 2.0
  269.  
  270. #pragma shader_feature _NORMALMAP
  271. #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  272. #pragma shader_feature _METALLICGLOSSMAP
  273. #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  274. #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  275. #pragma shader_feature ___ _DETAIL_MULX2
  276. // SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP
  277. #pragma skip_variants SHADOWS_SOFT
  278.  
  279. #pragma multi_compile_fwdadd_fullshadows
  280. #pragma multi_compile_fog
  281.  
  282. #pragma vertex vertAdd
  283. #pragma fragment fragAdd
  284. #include "UnityStandardCoreForward.cginc"
  285.  
  286. ENDCG
  287. }
  288. // ------------------------------------------------------------------
  289. // Shadow rendering pass
  290. Pass {
  291. Name "ShadowCaster"
  292. Tags { "LightMode" = "ShadowCaster" }
  293.  
  294. ZWrite On ZTest LEqual
  295.  
  296. CGPROGRAM
  297. #pragma target 2.0
  298.  
  299. #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  300. #pragma shader_feature _METALLICGLOSSMAP
  301. #pragma skip_variants SHADOWS_SOFT
  302. #pragma multi_compile_shadowcaster
  303.  
  304. #pragma vertex vertShadowCaster
  305. #pragma fragment fragShadowCaster
  306.  
  307. #include "UnityStandardShadow.cginc"
  308.  
  309. ENDCG
  310. }
  311.  
  312. // ------------------------------------------------------------------
  313. // Extracts information for lightmapping, GI (emission, albedo, ...)
  314. // This pass it not used during regular rendering.
  315. Pass
  316. {
  317. Name "META"
  318. Tags { "LightMode"="Meta" }
  319.  
  320. Cull Off
  321.  
  322. CGPROGRAM
  323. #pragma vertex vert_meta
  324. #pragma fragment frag_meta
  325.  
  326. #pragma shader_feature _EMISSION
  327. #pragma shader_feature _METALLICGLOSSMAP
  328. #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  329. #pragma shader_feature ___ _DETAIL_MULX2
  330. #pragma shader_feature EDITOR_VISUALIZATION
  331.  
  332. #include "UnityStandardMeta.cginc"
  333. ENDCG
  334. }
  335. }
  336.  
  337.  
  338. FallBack "VertexLit"
  339. CustomEditor "StandardShaderGUI"
  340. }
Advertisement
Add Comment
Please, Sign In to add comment