namespace VLB { public enum FeatureEnabledColorGradient { Off, // Do not support having a gradient as color HighOnly, // Support gradient color only for devices with Shader Level = 35 or higher HighAndLow // Support gradient color for all devices }; public enum ColorMode { Flat, // Apply a flat/plain/single color Gradient // Apply a gradient } public enum AttenuationEquation { Linear = 0, // Simple linear attenuation. Quadratic = 1, // Quadratic attenuation, which usually gives more realistic results. Blend = 2 // Custom blending mix between linear and quadratic attenuation formulas. Use attenuationEquation property to tweak the mix. } public enum AttenuationEquationHD { Linear = 0, // Simple linear attenuation. Quadratic = 1, // Quadratic attenuation, which usually gives more realistic results. } public enum BlendingMode { Additive, SoftAdditive, TraditionalTransparency, } public enum ShaderAccuracy { /// Default accuracy: a lot of computation are done on the vertex shader to maximize performance. Fast, /// Higher accuracy: most of the computation are done on the pixel shader to maximize graphical quality at some performance cost. High, } public enum NoiseMode { /// 3D Noise is disabled Disabled, /// 3D Noise is enabled: noise will look static compared to the world WorldSpace, /// 3D Noise is enabled: noise will look static compared to the beam position LocalSpace, } public enum MeshType { Shared, // Use the global shared mesh (recommended setting, since it will save a lot on memory). Will use the geometry properties set on Config. Custom, // Use a custom mesh instead. Will use the geometry properties set on the beam. } public enum RenderPipeline { /// Unity's built-in Render Pipeline. BuiltIn, /// Use the Universal Render Pipeline. URP, /// Use the High Definition Render Pipeline. HDRP, } public enum ShaderMode { SD, HD } public enum RenderingMode { /// Use the 2 pass shader. Will generate 2 drawcalls per beam (Not compatible with custom Render Pipeline such as HDRP and LWRP). MultiPass, /// Use the 1 pass shader. Will generate 1 drawcall per beam. Default, /// Dynamically batch multiple beams to combine and reduce draw calls. GPUInstancing, /// Use the SRP Batcher to automatically batch multiple beams and reduce draw calls. Only available when using SRP. SRPBatcher, } public enum RenderQueue { /// Specify a custom render queue. Custom = 0, /// This render queue is rendered before any others. Background = 1000, /// Opaque geometry uses this queue. Geometry = 2000, /// Alpha tested geometry uses this queue. AlphaTest = 2450, /// Last render queue that is considered "opaque". GeometryLast = 2500, /// This render queue is rendered after Geometry and AlphaTest, in back-to-front order. Transparent = 3000, /// This render queue is meant for overlay effects. Overlay = 4000, } public enum Dimensions { /// 3D Dim3D, /// 2D Dim2D } public enum PlaneAlignment { /// Align the plane to the surface normal which blocks the beam. Works better for large occluders such as floors and walls. Surface, /// Keep the plane aligned with the beam direction. Works better with more complex occluders or with corners. Beam } [System.Flags] public enum DynamicOcclusionUpdateRate { Never = 1 << 0, OnEnable = 1 << 1, OnBeamMove = 1 << 2, EveryXFrames = 1 << 3, OnBeamMoveAndEveryXFrames = OnBeamMove | EveryXFrames, } public enum ParticlesDirection { /// Random direction. Random, /// Particles follow the velicity direction in local space (Z is along the beam). LocalSpace, /// Particles follow the velicity direction in world space. WorldSpace } [System.Flags] public enum ShadowUpdateRate { Never = 1 << 0, OnEnable = 1 << 1, OnBeamMove = 1 << 2, EveryXFrames = 1 << 3, OnBeamMoveAndEveryXFrames = OnBeamMove | EveryXFrames, } public enum CookieChannel { Red = 0, Green = 1, Blue = 2, Alpha = 3, RGBA = 4 } [System.Flags] public enum DirtyProps { None = 0, Intensity = 1 << 1, HDRPExposureWeight = 1 << 2, ColorMode = 1 << 3, Color = 1 << 4, BlendingMode = 1 << 5, Cone = 1 << 6, SideSoftness = 1 << 7, Attenuation = 1 << 8, Dimensions = 1 << 9, RaymarchingQuality = 1 << 10, Jittering = 1 << 11, NoiseMode = 1 << 12, NoiseIntensity = 1 << 13, NoiseVelocityAndScale = 1 << 14, CookieProps = 1 << 15, ShadowProps = 1 << 16, AllWithoutMaterialChange = Intensity | HDRPExposureWeight | Color | Cone | SideSoftness | Jittering | NoiseIntensity | NoiseVelocityAndScale | CookieProps | ShadowProps, OnlyMaterialChangeOnly = Attenuation | ColorMode | BlendingMode | Dimensions | RaymarchingQuality | NoiseMode, All = AllWithoutMaterialChange | OnlyMaterialChangeOnly, } }