> For the complete documentation index, see [llms.txt](https://flora.magneticarcade.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://flora.magneticarcade.com/rendering/culling-pipeline.md).

# Culling Pipeline

## Current Behavior

Flora currently uses the **Batch Renderer Group (BRG)** culling path.

> The old per-project/per-scene culling pipeline selection fields are obsolete and have no runtime effect.

## What This Affects

* CPU-side draw submission scaling
* Culling behavior per camera/view/light
* Memory tradeoffs for per-instance runtime data

***

## Batch Renderer Group

BRG-compatible shaders usually work out of the box, but you must avoid stripping required BRG variants in builds.

**Keep BRG shader variants**

* **Edit → Project Settings → Graphics**
* Set **BatchRendererGroup variants** to **Keep all**

> See Unity’s [BRG Getting Started Guide](https://docs.unity3d.com/Manual/batch-renderer-group-getting-started.html) for details.

***

### Performance

* BRG reduces CPU overhead in large scenes.
* Benefits are strongest when instance counts/types are high.

***

### Memory

BRG stores additional per-instance matrix-related data to support current Flora runtime behavior. This generally trades more instance-buffer memory for better scalability and feature support.

***

### Known Limitation: Child LOD Renderer Transforms

Child renderers under an `LODGroup` with non-identity transforms do not render using child local transforms in BRG mode.

Mitigation:

* Bake child transforms into meshes (for example via [FBX Exporter](https://docs.unity3d.com/Packages/com.unity.formats.fbx@5.1/manual/index.html)).

***

## Migration Note (Older Flora Docs/Projects)

Older Flora versions documented a selectable RenderMesh pipeline path. In current Flora runtime, this is historical context only and not a selectable runtime path.
