Advertisement
Guest User

Untitled

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