暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BakedLit.shader 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. Shader "Universal Render Pipeline/Baked Lit"
  2. {
  3. Properties
  4. {
  5. [MainTexture] _BaseMap("Texture", 2D) = "white" {}
  6. [MainColor] _BaseColor("Color", Color) = (1, 1, 1, 1)
  7. _Cutoff("AlphaCutout", Range(0.0, 1.0)) = 0.5
  8. _BumpMap("Normal Map", 2D) = "bump" {}
  9. // BlendMode
  10. _Surface("__surface", Float) = 0.0
  11. _Blend("__mode", Float) = 0.0
  12. _Cull("__cull", Float) = 2.0
  13. [ToggleUI] _AlphaClip("__clip", Float) = 0.0
  14. [HideInInspector] _BlendOp("__blendop", Float) = 0.0
  15. [HideInInspector] _SrcBlend("__src", Float) = 1.0
  16. [HideInInspector] _DstBlend("__dst", Float) = 0.0
  17. [HideInInspector] _SrcBlendAlpha("__srcA", Float) = 1.0
  18. [HideInInspector] _DstBlendAlpha("__dstA", Float) = 0.0
  19. [HideInInspector] _ZWrite("__zw", Float) = 1.0
  20. [HideInInspector] _AlphaToMask("__alphaToMask", Float) = 0.0
  21. [HideInInspector] _AddPrecomputedVelocity("_AddPrecomputedVelocity", Float) = 0.0
  22. // Editmode props
  23. _QueueOffset("Queue offset", Float) = 0.0
  24. [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
  25. [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
  26. [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
  27. }
  28. SubShader
  29. {
  30. Tags
  31. {
  32. "RenderType" = "Opaque"
  33. "IgnoreProjector" = "True"
  34. "RenderPipeline" = "UniversalPipeline"
  35. }
  36. LOD 100
  37. // -------------------------------------
  38. // Render State Commands
  39. Blend [_SrcBlend][_DstBlend], [_SrcBlendAlpha][_DstBlendAlpha]
  40. ZWrite [_ZWrite]
  41. Cull [_Cull]
  42. Pass
  43. {
  44. Name "BakedLit"
  45. Tags
  46. {
  47. "LightMode" = "UniversalForwardOnly"
  48. }
  49. // -------------------------------------
  50. // Render State Commands
  51. AlphaToMask[_AlphaToMask]
  52. HLSLPROGRAM
  53. #pragma target 2.0
  54. // -------------------------------------
  55. // Shader Stages
  56. #pragma vertex BakedLitForwardPassVertex
  57. #pragma fragment BakedLitForwardPassFragment
  58. // -------------------------------------
  59. // Material Keywords
  60. #pragma shader_feature_local _NORMALMAP
  61. #pragma shader_feature_local_fragment _SURFACE_TYPE_TRANSPARENT
  62. #pragma shader_feature_local_fragment _ALPHATEST_ON
  63. #pragma shader_feature_local_fragment _ALPHAMODULATE_ON
  64. // -------------------------------------
  65. // Universal Pipeline keywords
  66. #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
  67. #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
  68. #pragma multi_compile _ EVALUATE_SH_MIXED EVALUATE_SH_VERTEX
  69. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl"
  70. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
  71. // -------------------------------------
  72. // Unity defined keywords
  73. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  74. #pragma multi_compile _ LIGHTMAP_ON
  75. #pragma multi_compile _ USE_LEGACY_LIGHTMAPS
  76. #pragma multi_compile_fog
  77. #pragma multi_compile _ DEBUG_DISPLAY
  78. #pragma multi_compile _ LOD_FADE_CROSSFADE
  79. //--------------------------------------
  80. // GPU Instancing
  81. #pragma multi_compile_instancing
  82. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  83. // -------------------------------------
  84. // Includes
  85. // Lighting include is needed because of GI
  86. #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl"
  87. #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitForwardPass.hlsl"
  88. ENDHLSL
  89. }
  90. Pass
  91. {
  92. Tags
  93. {
  94. "LightMode" = "DepthOnly"
  95. }
  96. // -------------------------------------
  97. // Render State Commands
  98. ZWrite On
  99. ColorMask R
  100. HLSLPROGRAM
  101. #pragma target 2.0
  102. // -------------------------------------
  103. // Shader Stages
  104. #pragma vertex DepthOnlyVertex
  105. #pragma fragment DepthOnlyFragment
  106. // -------------------------------------
  107. // Material Keywords
  108. #pragma shader_feature_local _ALPHATEST_ON
  109. // -------------------------------------
  110. // Unity defined keywords
  111. #pragma multi_compile _ LOD_FADE_CROSSFADE
  112. //--------------------------------------
  113. // GPU Instancing
  114. #pragma multi_compile_instancing
  115. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  116. // -------------------------------------
  117. // Includes
  118. #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl"
  119. #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl"
  120. ENDHLSL
  121. }
  122. // This pass is used when drawing to a _CameraNormalsTexture texture with the forward renderer or the depthNormal prepass with the deferred renderer.
  123. Pass
  124. {
  125. Name "DepthNormalsOnly"
  126. Tags
  127. {
  128. "LightMode" = "DepthNormalsOnly"
  129. }
  130. // -------------------------------------
  131. // Render State Commands
  132. ZWrite On
  133. Cull[_Cull]
  134. HLSLPROGRAM
  135. #pragma target 2.0
  136. // -------------------------------------
  137. // Shader Stages
  138. #pragma vertex DepthNormalsVertex
  139. #pragma fragment DepthNormalsFragment
  140. // -------------------------------------
  141. // Material Keywords
  142. #pragma shader_feature_local _ _NORMALMAP
  143. #pragma shader_feature_local_fragment _ALPHATEST_ON
  144. // -------------------------------------
  145. // Universal Pipeline keywords
  146. #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT // forward-only variant
  147. #pragma multi_compile _ LOD_FADE_CROSSFADE
  148. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
  149. //--------------------------------------
  150. // GPU Instancing
  151. #pragma multi_compile_instancing
  152. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  153. // -------------------------------------
  154. // Includes
  155. #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl"
  156. #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitDepthNormalsPass.hlsl"
  157. ENDHLSL
  158. }
  159. // Same as DepthNormals pass, but used for deferred renderer and forwardOnly materials.
  160. Pass
  161. {
  162. Name "DepthNormalsOnly"
  163. Tags
  164. {
  165. "LightMode" = "DepthNormalsOnly"
  166. }
  167. // -------------------------------------
  168. // Render State Commands
  169. ZWrite On
  170. Cull[_Cull]
  171. HLSLPROGRAM
  172. #pragma target 2.0
  173. // -------------------------------------
  174. // Shader Stages
  175. #pragma vertex DepthNormalsVertex
  176. #pragma fragment DepthNormalsFragment
  177. // -------------------------------------
  178. // Material Keywords
  179. #pragma shader_feature_local _ _NORMALMAP
  180. #pragma shader_feature_local_fragment _ALPHATEST_ON
  181. // -------------------------------------
  182. // Universal Pipeline keywords
  183. #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT // forward-only variant
  184. #pragma multi_compile _ LOD_FADE_CROSSFADE
  185. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
  186. //--------------------------------------
  187. // Defines
  188. #define BUMP_SCALE_NOT_SUPPORTED 1
  189. //--------------------------------------
  190. // GPU Instancing
  191. #pragma multi_compile_instancing
  192. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  193. // -------------------------------------
  194. // Includes
  195. #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl"
  196. #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthNormalsPass.hlsl"
  197. ENDHLSL
  198. }
  199. // This pass it not used during regular rendering, only for lightmap baking.
  200. Pass
  201. {
  202. Name "Meta"
  203. Tags
  204. {
  205. "LightMode" = "Meta"
  206. }
  207. // -------------------------------------
  208. // Render State Commands
  209. Cull Off
  210. HLSLPROGRAM
  211. #pragma target 2.0
  212. // -------------------------------------
  213. // Shader Stages
  214. #pragma vertex UniversalVertexMeta
  215. #pragma fragment UniversalFragmentMetaUnlit
  216. // -------------------------------------
  217. // Unity defined keywords
  218. #pragma shader_feature EDITOR_VISUALIZATION
  219. // -------------------------------------
  220. // Includes
  221. #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl"
  222. #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitMetaPass.hlsl"
  223. ENDHLSL
  224. }
  225. Pass
  226. {
  227. Name "Universal2D"
  228. Tags
  229. {
  230. "LightMode" = "Universal2D"
  231. }
  232. // -------------------------------------
  233. // Render State Commands
  234. Blend[_SrcBlend][_DstBlend]
  235. ZWrite[_ZWrite]
  236. Cull[_Cull]
  237. HLSLPROGRAM
  238. #pragma target 2.0
  239. // -------------------------------------
  240. // Shader Stages
  241. #pragma vertex vert
  242. #pragma fragment frag
  243. // -------------------------------------
  244. // Material Keywords
  245. #pragma shader_feature_local_fragment _ALPHATEST_ON
  246. #pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON
  247. // -------------------------------------
  248. // Includes
  249. #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl"
  250. #include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/Universal2D.hlsl"
  251. ENDHLSL
  252. }
  253. Pass
  254. {
  255. Name "MotionVectors"
  256. Tags { "LightMode" = "MotionVectors" }
  257. ColorMask RG
  258. HLSLPROGRAM
  259. #pragma shader_feature_local _ALPHATEST_ON
  260. #pragma multi_compile _ LOD_FADE_CROSSFADE
  261. #pragma shader_feature_local_vertex _ADD_PRECOMPUTED_VELOCITY
  262. #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl"
  263. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ObjectMotionVectors.hlsl"
  264. ENDHLSL
  265. }
  266. Pass
  267. {
  268. Name "XRMotionVectors"
  269. Tags { "LightMode" = "XRMotionVectors" }
  270. ColorMask RGBA
  271. // Stencil write for obj motion pixels
  272. Stencil
  273. {
  274. WriteMask 1
  275. Ref 1
  276. Comp Always
  277. Pass Replace
  278. }
  279. HLSLPROGRAM
  280. #pragma shader_feature_local _ALPHATEST_ON
  281. #pragma multi_compile _ LOD_FADE_CROSSFADE
  282. #pragma shader_feature_local_vertex _ADD_PRECOMPUTED_VELOCITY
  283. #define APLICATION_SPACE_WARP_MOTION 1
  284. #include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl"
  285. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ObjectMotionVectors.hlsl"
  286. ENDHLSL
  287. }
  288. }
  289. FallBack "Universal Render Pipeline/Unlit"
  290. CustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.BakedLitShader"
  291. }