SimpleLit.shader 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. // Shader targeted for low end devices. Single Pass Forward Rendering.
  2. Shader "Universal Render Pipeline/Simple Lit"
  3. {
  4. // Keep properties of StandardSpecular shader for upgrade reasons.
  5. Properties
  6. {
  7. [MainTexture] _BaseColor("Base Color", Color) = (1, 1, 1, 1)
  8. [MainColor] _BaseMap("Base Map (RGB) Smoothness / Alpha (A)", 2D) = "white" {}
  9. _Cutoff("Alpha Clipping", Range(0.0, 1.0)) = 0.5
  10. _SpecColor("Specular Color", Color) = (0.5, 0.5, 0.5, 0.5)
  11. _SpecGlossMap("Specular Map", 2D) = "white" {}
  12. [Enum(Specular Alpha,0,Albedo Alpha,1)] _SmoothnessSource("Smoothness Source", Float) = 0.0
  13. [ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0
  14. [HideInInspector] _BumpScale("Scale", Float) = 1.0
  15. [NoScaleOffset] _BumpMap("Normal Map", 2D) = "bump" {}
  16. _EmissionColor("Emission Color", Color) = (0,0,0)
  17. [NoScaleOffset]_EmissionMap("Emission Map", 2D) = "white" {}
  18. // Blending state
  19. [HideInInspector] _Surface("__surface", Float) = 0.0
  20. [HideInInspector] _Blend("__blend", Float) = 0.0
  21. [HideInInspector] _AlphaClip("__clip", Float) = 0.0
  22. [HideInInspector] _SrcBlend("__src", Float) = 1.0
  23. [HideInInspector] _DstBlend("__dst", Float) = 0.0
  24. [HideInInspector] _ZWrite("__zw", Float) = 1.0
  25. [HideInInspector] _Cull("__cull", Float) = 2.0
  26. [ToogleOff] _ReceiveShadows("Receive Shadows", Float) = 1.0
  27. // Editmode props
  28. [HideInInspector] _QueueOffset("Queue offset", Float) = 0.0
  29. [HideInInspector] _Smoothness("SMoothness", Float) = 0.5
  30. // ObsoleteProperties
  31. [HideInInspector] _MainTex("BaseMap", 2D) = "white" {}
  32. [HideInInspector] _Color("Base Color", Color) = (1, 1, 1, 1)
  33. [HideInInspector] _Shininess("Smoothness", Float) = 0.0
  34. [HideInInspector] _GlossinessSource("GlossinessSource", Float) = 0.0
  35. [HideInInspector] _SpecSource("SpecularHighlights", Float) = 0.0
  36. }
  37. SubShader
  38. {
  39. Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" "IgnoreProjector" = "True"}
  40. LOD 300
  41. Pass
  42. {
  43. Name "ForwardLit"
  44. Tags { "LightMode" = "UniversalForward" }
  45. // Use same blending / depth states as Standard shader
  46. Blend[_SrcBlend][_DstBlend]
  47. ZWrite[_ZWrite]
  48. Cull[_Cull]
  49. HLSLPROGRAM
  50. // Required to compile gles 2.0 with standard srp library
  51. #pragma prefer_hlslcc gles
  52. #pragma exclude_renderers d3d11_9x
  53. #pragma target 2.0
  54. // -------------------------------------
  55. // Material Keywords
  56. #pragma shader_feature _ALPHATEST_ON
  57. #pragma shader_feature _ALPHAPREMULTIPLY_ON
  58. #pragma shader_feature _ _SPECGLOSSMAP _SPECULAR_COLOR
  59. #pragma shader_feature _GLOSSINESS_FROM_BASE_ALPHA
  60. #pragma shader_feature _NORMALMAP
  61. #pragma shader_feature _EMISSION
  62. #pragma shader_feature _RECEIVE_SHADOWS_OFF
  63. // -------------------------------------
  64. // Universal Pipeline keywords
  65. #pragma multi_compile _ _MAIN_LIGHT_SHADOWS
  66. #pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
  67. #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
  68. #pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS
  69. #pragma multi_compile _ _SHADOWS_SOFT
  70. #pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE
  71. // -------------------------------------
  72. // Unity defined keywords
  73. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  74. #pragma multi_compile _ LIGHTMAP_ON
  75. #pragma multi_compile_fog
  76. //--------------------------------------
  77. // GPU Instancing
  78. #pragma multi_compile_instancing
  79. #pragma vertex LitPassVertexSimple
  80. #pragma fragment LitPassFragmentSimple
  81. #define BUMP_SCALE_NOT_SUPPORTED 1
  82. #include "Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitInput.hlsl"
  83. #include "Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitForwardPass.hlsl"
  84. ENDHLSL
  85. }
  86. Pass
  87. {
  88. Name "ShadowCaster"
  89. Tags{"LightMode" = "ShadowCaster"}
  90. ZWrite On
  91. ZTest LEqual
  92. Cull[_Cull]
  93. HLSLPROGRAM
  94. // Required to compile gles 2.0 with standard srp library
  95. #pragma prefer_hlslcc gles
  96. #pragma exclude_renderers d3d11_9x
  97. #pragma target 2.0
  98. // -------------------------------------
  99. // Material Keywords
  100. #pragma shader_feature _ALPHATEST_ON
  101. #pragma shader_feature _GLOSSINESS_FROM_BASE_ALPHA
  102. //--------------------------------------
  103. // GPU Instancing
  104. #pragma multi_compile_instancing
  105. #pragma vertex ShadowPassVertex
  106. #pragma fragment ShadowPassFragment
  107. #include "Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitInput.hlsl"
  108. #include "Packages/com.unity.render-pipelines.universal/Shaders/ShadowCasterPass.hlsl"
  109. ENDHLSL
  110. }
  111. Pass
  112. {
  113. Name "DepthOnly"
  114. Tags{"LightMode" = "DepthOnly"}
  115. ZWrite On
  116. ColorMask 0
  117. Cull[_Cull]
  118. HLSLPROGRAM
  119. // Required to compile gles 2.0 with standard srp library
  120. #pragma prefer_hlslcc gles
  121. #pragma exclude_renderers d3d11_9x
  122. #pragma target 2.0
  123. #pragma vertex DepthOnlyVertex
  124. #pragma fragment DepthOnlyFragment
  125. // -------------------------------------
  126. // Material Keywords
  127. #pragma shader_feature _ALPHATEST_ON
  128. #pragma shader_feature _GLOSSINESS_FROM_BASE_ALPHA
  129. //--------------------------------------
  130. // GPU Instancing
  131. #pragma multi_compile_instancing
  132. #include "Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitInput.hlsl"
  133. #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl"
  134. ENDHLSL
  135. }
  136. // This pass it not used during regular rendering, only for lightmap baking.
  137. Pass
  138. {
  139. Name "Meta"
  140. Tags{ "LightMode" = "Meta" }
  141. Cull Off
  142. HLSLPROGRAM
  143. // Required to compile gles 2.0 with standard srp library
  144. #pragma prefer_hlslcc gles
  145. #pragma exclude_renderers d3d11_9x
  146. #pragma vertex UniversalVertexMeta
  147. #pragma fragment UniversalFragmentMetaSimple
  148. #pragma shader_feature _EMISSION
  149. #pragma shader_feature _SPECGLOSSMAP
  150. #include "Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitInput.hlsl"
  151. #include "Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitMetaPass.hlsl"
  152. ENDHLSL
  153. }
  154. Pass
  155. {
  156. Name "Universal2D"
  157. Tags{ "LightMode" = "Universal2D" }
  158. Tags{ "RenderType" = "Transparent" "Queue" = "Transparent" }
  159. HLSLPROGRAM
  160. // Required to compile gles 2.0 with standard srp library
  161. #pragma prefer_hlslcc gles
  162. #pragma exclude_renderers d3d11_9x
  163. #pragma vertex vert
  164. #pragma fragment frag
  165. #pragma shader_feature _ALPHATEST_ON
  166. #pragma shader_feature _ALPHAPREMULTIPLY_ON
  167. #include "Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitInput.hlsl"
  168. #include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/Universal2D.hlsl"
  169. ENDHLSL
  170. }
  171. }
  172. Fallback "Hidden/Universal Render Pipeline/FallbackError"
  173. CustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.SimpleLitShader"
  174. }