logo
pub enum ClusterConfig {
    None,
    Single,
    XYZ {
        dimensions: UVec3,
        z_config: ClusterZConfig,
        dynamic_resizing: bool,
    },
    FixedZ {
        total: u32,
        z_slices: u32,
        z_config: ClusterZConfig,
        dynamic_resizing: bool,
    },
}
Expand description

Configuration of the clustering strategy for clustered forward rendering

Variants

None

Disable light cluster calculations for this view

Single

One single cluster. Optimal for low-light complexity scenes or scenes where most lights affect the entire scene.

XYZ

Fields

dimensions: UVec3
z_config: ClusterZConfig
dynamic_resizing: bool

Specify if clusters should automatically resize in X/Y if there is a risk of exceeding the available cluster-light index limit

Explicit X, Y and Z counts (may yield non-square X/Y clusters depending on the aspect ratio)

FixedZ

Fields

total: u32
z_slices: u32
z_config: ClusterZConfig
dynamic_resizing: bool

Specify if clusters should automatically resize in X/Y if there is a risk of exceeding the available cluster-light index limit

Fixed number of Z slices, X and Y calculated to give square clusters with at most total clusters. For top-down games where lights will generally always be within a short depth range, it may be useful to use this configuration with 1 or few Z slices. This would reduce the number of lights per cluster by distributing more clusters in screen space X/Y which matches how lights are distributed in the scene.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

Returns the argument unchanged.

Creates Self using data from the given World

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more