Table of Contents

BRG Instanced Renderer Config


The global configuration asset for BRG Instanced Renderer. This ScriptableObject controls culling behavior, memory allocation, shadow settings, LOD crossfade, and debug options.

By default, the config asset is located at Assets/BRG Instanced Renderer/BRGIRConfig.asset and is automatically registered in Edit > Project Settings > Player > Preloaded Assets.

To select the active config in the Project window, use the menu Tools > BRG Instanced Renderer > Select Config.

Culling

Property Type Default Description
Use BRG Occlusion Culling bool true Enables per-chunk occlusion testing against Unity's baked occlusion data. Chunks fully hidden behind occluders are skipped.

Pooling

These settings control memory allocation for instance storage. Adjusting these affects GPU memory usage and culling granularity.

Property Type Default Description
Pool Size int 64 Number of instance slots per memory pool. Valid values: 64, 128, or 256. Smaller values waste less memory on partially-filled pools. Larger values reduce the number of pools to manage.
Max Pools Per Chunk int 32 Maximum number of pools each chunk can hold. Higher values allow more instances per chunk, meaning fewer chunks to cull but less granular culling.
Initial Chunk Count int 256 Starting number of chunk slots. Grows automatically as needed.
Initial Pool Count int 1024 Starting number of pool slots. Grows automatically as needed.
Enable Auto Compaction bool false When enabled, GPU buffers are periodically shrunk when waste exceeds 50%. Can cause frame hitches during compaction, If possible, please use manual compaction instead!
Tip

If you know your scene's approximate instance count, set the initial chunk and pool counts high enough to avoid runtime growth. Alternatively, use Gathered Allocations (below) to record peak values automatically.

Light Probes

Property Type Default Description
Support Legacy Light Probes bool false Samples SphericalHarmonicsL2 per instance. Adds 128 bytes per instance to the GPU buffer (~65% total per-instance memory increase). Only needed if your project uses legacy light probes instead of APV.

Per-Instance Color

Property Type Default Description
Enable Per-Instance Color bool false Enables storing a color per-instance. This color can be read using the included BRGIR_Color ShaderGraph subgraph. Adds 4 bytes of GPU buffer memory per instance.

Shadows

Property Type Default Description
Max Shadow Crossfade Cascade int 4 Number of shadow cascades (starting from cascade 1) that use dithered crossfade. Smooths the seam between cascades. Set to 0 to disable. Can be overridden per-prototype via BRG Prototype Extra Data.

LOD Crossfade

Property Type Default Description
Debug Disable Crossfade bool false Disables all crossfade (stateless and animated), forcing instant LOD transitions.
Default Animated Crossfade Duration float 0.5s Time in seconds for animated LOD crossfade transitions. Applies to all prototypes unless overridden per-prefab. Can be overridden per-prototype via BRG Prototype Extra Data.
Skip Intermediate LODs bool true When an instance needs to transition multiple LOD levels (e.g., LOD0 to LOD3), skip intermediate levels and jump directly to the target. Reduces the number of fade transitions.

Debug

Property Type Default Description
Enable Debug Logging bool false Outputs verbose logging to the console for all major operations.
Debug Bypass Chunk Culling bool false Processes all instances regardless of chunk-level culling results. Useful for verifying that chunk culling is working correctly.
Debug Disable Culling bool false Skips GPU culling entirely and reuses the previous frame's visibility. Useful for isolating culling cost in the profiler.
Debug Disable Rendering bool false Runs GPU culling as normal but skips the actual BRG rendering. Useful for isolating rendering cost.
Debug Visualize Culling In Scene View bool false Freezes culling to the Game camera's frustum so you can orbit in the Scene View and see what is being culled.

Gathered Allocations

The system can record peak allocation values during runtime and use them as initial sizes on the next run, eliminating runtime buffer growth.

Property Type Description
Record Allocations bool Record peak allocation sizes during play mode and use them as initial allocation sizes.
Gathered Max Chunks int Peak chunk count from previous sessions.
Gathered Max Pools int Peak pool count from previous sessions.
Gathered Max Instances int Peak instance count from previous sessions.

Peak values are recorded automatically during play mode.

Button Description
Copy to Initial Sizes Copies the gathered peak values to the Initial Chunk Count and Initial Pool Count fields in the Pooling section. A Pool Padding slider (1.0–1.25) adds headroom above the recorded peaks.
Clear Gathered Data Resets all gathered values to zero.

Inspector Controls

The config inspector also shows:

Button Description
Set This As Active Registers this config in Preloaded Assets, replacing any existing config.
Open System Window Opens the System Window for live statistics.

The inspector validates that exactly one config is registered in Preloaded Assets and shows a warning if duplicates are found.