ParticlesSimpleLit.shader 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. // ------------------------------------------
  2. // Only directional light is supported for lit particles
  3. // No shadow
  4. // No distortion
  5. Shader "Universal Render Pipeline/Particles/Simple Lit"
  6. {
  7. Properties
  8. {
  9. _BaseMap("Base Map", 2D) = "white" {}
  10. _BaseColor("Base Color", Color) = (1,1,1,1)
  11. _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
  12. _SpecGlossMap("Specular", 2D) = "white" {}
  13. _SpecColor("Specular", Color) = (1.0, 1.0, 1.0)
  14. _Smoothness("Smoothness", Range(0.0, 1.0)) = 0.5
  15. _BumpScale("Scale", Float) = 1.0
  16. _BumpMap("Normal Map", 2D) = "bump" {}
  17. _EmissionColor("Color", Color) = (0,0,0)
  18. _EmissionMap("Emission", 2D) = "white" {}
  19. [HideInInspector] _SmoothnessSource("Smoothness Source", Float) = 0.0
  20. [ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0
  21. _ReceiveShadows("Receive Shadows", Float) = 1.0
  22. // -------------------------------------
  23. // Particle specific
  24. _SoftParticlesNearFadeDistance("Soft Particles Near Fade", Float) = 0.0
  25. _SoftParticlesFarFadeDistance("Soft Particles Far Fade", Float) = 1.0
  26. _CameraNearFadeDistance("Camera Near Fade", Float) = 1.0
  27. _CameraFarFadeDistance("Camera Far Fade", Float) = 2.0
  28. _DistortionBlend("Distortion Blend", Float) = 0.5
  29. _DistortionStrength("Distortion Strength", Float) = 1.0
  30. // -------------------------------------
  31. // Hidden properties - Generic
  32. [HideInInspector] _Surface("__surface", Float) = 0.0
  33. [HideInInspector] _Blend("__mode", Float) = 0.0
  34. [HideInInspector] _AlphaClip("__clip", Float) = 0.0
  35. [HideInInspector] _BlendOp("__blendop", Float) = 0.0
  36. [HideInInspector] _SrcBlend("__src", Float) = 1.0
  37. [HideInInspector] _DstBlend("__dst", Float) = 0.0
  38. [HideInInspector] _ZWrite("__zw", Float) = 1.0
  39. [HideInInspector] _Cull("__cull", Float) = 2.0
  40. // Particle specific
  41. [HideInInspector] _ColorMode("_ColorMode", Float) = 0.0
  42. [HideInInspector] _BaseColorAddSubDiff("_ColorMode", Vector) = (0,0,0,0)
  43. [ToggleOff] _FlipbookBlending("__flipbookblending", Float) = 0.0
  44. [HideInInspector] _SoftParticlesEnabled("__softparticlesenabled", Float) = 0.0
  45. [HideInInspector] _CameraFadingEnabled("__camerafadingenabled", Float) = 0.0
  46. [HideInInspector] _SoftParticleFadeParams("__softparticlefadeparams", Vector) = (0,0,0,0)
  47. [HideInInspector] _CameraFadeParams("__camerafadeparams", Vector) = (0,0,0,0)
  48. [HideInInspector] _DistortionEnabled("__distortionenabled", Float) = 0.0
  49. [HideInInspector] _DistortionStrengthScaled("Distortion Strength Scaled", Float) = 0.1
  50. // Editmode props
  51. [HideInInspector] _QueueOffset("Queue offset", Float) = 0.0
  52. // ObsoleteProperties
  53. [HideInInspector] _FlipbookMode("flipbook", Float) = 0
  54. [HideInInspector] _Glossiness("gloss", Float) = 0
  55. [HideInInspector] _Mode("mode", Float) = 0
  56. [HideInInspector] _Color("color", Color) = (1,1,1,1)
  57. }
  58. SubShader
  59. {
  60. Tags{"RenderType" = "Opaque" "IgnoreProjector" = "True" "PreviewType" = "Plane" "PerformanceChecks" = "False" "RenderPipeline" = "UniversalPipeline"}
  61. // ------------------------------------------------------------------
  62. // Forward pass.
  63. Pass
  64. {
  65. // Lightmode matches the ShaderPassName set in UniversalRenderPipeline.cs. SRPDefaultUnlit and passes with
  66. // no LightMode tag are also rendered by Universal Render Pipeline
  67. Name "ForwardLit"
  68. Tags {"LightMode" = "UniversalForward"}
  69. BlendOp[_BlendOp]
  70. Blend[_SrcBlend][_DstBlend]
  71. ZWrite[_ZWrite]
  72. Cull[_Cull]
  73. HLSLPROGRAM
  74. // Required to compile gles 2.0 with standard SRP library
  75. // All shaders must be compiled with HLSLcc and currently only gles is not using HLSLcc by default
  76. #pragma prefer_hlslcc gles
  77. #pragma exclude_renderers d3d11_9x
  78. #pragma target 2.0
  79. // -------------------------------------
  80. // Material Keywords
  81. #pragma shader_feature _NORMALMAP
  82. #pragma shader_feature _EMISSION
  83. #pragma shader_feature _ _SPECGLOSSMAP _SPECULAR_COLOR
  84. #pragma shader_feature _GLOSSINESS_FROM_BASE_ALPHA
  85. #pragma shader_feature _RECEIVE_SHADOWS_OFF
  86. // -------------------------------------
  87. // Particle Keywords
  88. #pragma shader_feature _ _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON
  89. #pragma shader_feature _ALPHATEST_ON
  90. #pragma shader_feature _ _COLOROVERLAY_ON _COLORCOLOR_ON _COLORADDSUBDIFF_ON
  91. #pragma shader_feature _FLIPBOOKBLENDING_ON
  92. #pragma shader_feature _SOFTPARTICLES_ON
  93. #pragma shader_feature _FADING_ON
  94. #pragma shader_feature _DISTORTION_ON
  95. // -------------------------------------
  96. // Universal Pipeline keywords
  97. #pragma multi_compile _ _MAIN_LIGHT_SHADOWS
  98. #pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
  99. #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
  100. #pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS
  101. #pragma multi_compile _ _SHADOWS_SOFT
  102. // -------------------------------------
  103. // Unity defined keywords
  104. #pragma multi_compile_fog
  105. #pragma vertex ParticlesLitVertex
  106. #pragma fragment ParticlesLitFragment
  107. #define BUMP_SCALE_NOT_SUPPORTED 1
  108. #include "Packages/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLitInput.hlsl"
  109. #include "Packages/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLitForwardPass.hlsl"
  110. ENDHLSL
  111. }
  112. Pass
  113. {
  114. Name "Universal2D"
  115. Tags{ "LightMode" = "Universal2D" }
  116. Blend[_SrcBlend][_DstBlend]
  117. ZWrite[_ZWrite]
  118. Cull[_Cull]
  119. HLSLPROGRAM
  120. // Required to compile gles 2.0 with standard srp library
  121. #pragma prefer_hlslcc gles
  122. #pragma exclude_renderers d3d11_9x
  123. #pragma vertex vert
  124. #pragma fragment frag
  125. #pragma shader_feature _ALPHATEST_ON
  126. #pragma shader_feature _ALPHAPREMULTIPLY_ON
  127. #include "Packages/com.unity.render-pipelines.universal/Shaders/UnlitInput.hlsl"
  128. #include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/Universal2D.hlsl"
  129. ENDHLSL
  130. }
  131. }
  132. Fallback "Universal Render Pipeline/Particles/Unlit"
  133. CustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.ParticlesSimpleLitShader"
  134. }