Enums.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. namespace VLB
  2. {
  3. public enum FeatureEnabledColorGradient
  4. {
  5. Off, // Do not support having a gradient as color
  6. HighOnly, // Support gradient color only for devices with Shader Level = 35 or higher
  7. HighAndLow // Support gradient color for all devices
  8. };
  9. public enum ColorMode
  10. {
  11. Flat, // Apply a flat/plain/single color
  12. Gradient // Apply a gradient
  13. }
  14. public enum AttenuationEquation
  15. {
  16. Linear = 0, // Simple linear attenuation.
  17. Quadratic = 1, // Quadratic attenuation, which usually gives more realistic results.
  18. Blend = 2 // Custom blending mix between linear and quadratic attenuation formulas. Use attenuationEquation property to tweak the mix.
  19. }
  20. public enum BlendingMode
  21. {
  22. Additive,
  23. SoftAdditive,
  24. TraditionalTransparency,
  25. }
  26. public enum ShaderAccuracy
  27. {
  28. /// <summary> Default accuracy: a lot of computation are done on the vertex shader to maximize performance. </summary>
  29. Fast,
  30. /// <summary> Higher accuracy: most of the computation are done on the pixel shader to maximize graphical quality at some performance cost. </summary>
  31. High,
  32. }
  33. public enum NoiseMode
  34. {
  35. /// <summary> 3D Noise is disabled </summary>
  36. Disabled,
  37. /// <summary> 3D Noise is enabled: noise will look static compared to the world </summary>
  38. WorldSpace,
  39. /// <summary> 3D Noise is enabled: noise will look static compared to the beam position </summary>
  40. LocalSpace,
  41. }
  42. public enum MeshType
  43. {
  44. Shared, // Use the global shared mesh (recommended setting, since it will save a lot on memory). Will use the geometry properties set on Config.
  45. Custom, // Use a custom mesh instead. Will use the geometry properties set on the beam.
  46. }
  47. public enum RenderPipeline
  48. {
  49. /// <summary> Unity's built-in Render Pipeline. </summary>
  50. BuiltIn,
  51. /// <summary> Use the Universal Render Pipeline. </summary>
  52. URP,
  53. /// <summary> Use the High Definition Render Pipeline. </summary>
  54. HDRP,
  55. }
  56. public enum RenderingMode
  57. {
  58. /// <summary> Use the 2 pass shader. Will generate 2 drawcalls per beam (Not compatible with custom Render Pipeline such as HDRP and LWRP).</summary>
  59. MultiPass,
  60. /// <summary> Use the 1 pass shader. Will generate 1 drawcall per beam. </summary>
  61. SinglePass,
  62. /// <summary> Dynamically batch multiple beams to combine and reduce draw calls. </summary>
  63. GPUInstancing,
  64. /// <summary> Use the SRP Batcher to automatically batch multiple beams and reduce draw calls. Only available when using SRP. </summary>
  65. SRPBatcher,
  66. }
  67. public enum RenderQueue
  68. {
  69. /// Specify a custom render queue.
  70. Custom = 0,
  71. /// This render queue is rendered before any others.
  72. Background = 1000,
  73. /// Opaque geometry uses this queue.
  74. Geometry = 2000,
  75. /// Alpha tested geometry uses this queue.
  76. AlphaTest = 2450,
  77. /// Last render queue that is considered "opaque".
  78. GeometryLast = 2500,
  79. /// This render queue is rendered after Geometry and AlphaTest, in back-to-front order.
  80. Transparent = 3000,
  81. /// This render queue is meant for overlay effects.
  82. Overlay = 4000,
  83. }
  84. public enum Dimensions
  85. {
  86. /// <summary> 3D </summary>
  87. Dim3D,
  88. /// <summary> 2D </summary>
  89. Dim2D
  90. }
  91. public enum PlaneAlignment
  92. {
  93. /// <summary>Align the plane to the surface normal which blocks the beam. Works better for large occluders such as floors and walls.</summary>
  94. Surface,
  95. /// <summary>Keep the plane aligned with the beam direction. Works better with more complex occluders or with corners.</summary>
  96. Beam
  97. }
  98. [System.Flags]
  99. public enum DynamicOcclusionUpdateRate
  100. {
  101. Never = 1 << 0,
  102. OnEnable = 1 << 1,
  103. OnBeamMove = 1 << 2,
  104. EveryXFrames = 1 << 3,
  105. OnBeamMoveAndEveryXFrames = OnBeamMove | EveryXFrames,
  106. }
  107. public enum ParticlesDirection
  108. {
  109. /// <summary> Random direction. </summary>
  110. Random,
  111. /// <summary> Particles follow the velicity direction in local space (Z is along the beam). </summary>
  112. LocalSpace,
  113. /// <summary> Particles follow the velicity direction in world space. </summary>
  114. WorldSpace
  115. };
  116. }