
Batch Renderer Group
Unity's API for high-performance rendering.
Flora provides experimental support for Unity's BatchRendererGroup (BRG). You can select it as the culling pipeline via the SceneSettings component.

If you want BRG to be the default pipeline for the entire project, change the default value in Graphics Settings.
Performance
BRG significantly reduces CPU overhead by efficiently scheduling draw calls and minimizing state change overhead, which is particularly beneficial in complex scenes with many unique instance types. It generally more efficient compared to the legacy RenderMesh pipeline.
If your scene primarily consists of only a few prefab types, the performance improvements provided by BRG may be less noticeable, however it will scale with the project better.
Lights
Another advantage of BRG is per-light shadow culling. The legacy pipeline has no information about what light is being rendered, only whether instances should be included in shadow passes. BRG on the other hand will cull instances for each shadow culling light, which can have a dramatic impact on performance with multiple shadow casting lights.
Memory
There is one area the legacy pipeline has a slight advantage. BRG requires inverse matrices to be stored in the instance buffer. The legacy pipeline builds inverse matrices within the shader, reducing GPU memory, but also adding a slight overhead within each shader. This means BRG instances on the GPU are at least twice as large (96 vs 48 bytes), or with motion vectors (192 vs 96 bytes).
Shader Compatibility
BRG supports a wide variety of shaders without requiring modifications. Compatible shaders include:
Built-in shaders from Unity’s Universal Render Pipeline (URP)
Built-in shaders from Unity’s High Definition Render Pipeline (HDRP)
Shaders created with ShaderGraph
Third-party shaders supporting DOTS instancing or Amplify Shader Editor
Known Limitations
Child LOD Renderer Transforms
Child LOD renderers with non-identity transforms do not render using their individual local transforms; instead, they adopt the parent LODGroup’s transform. To properly render these cases, you must bake transforms directly into the mesh. This behavior results from Flora considering the LODGroup as a single instance, contrasting with Unity’s per-renderer instance approach. Additionally, due to constraints in Unity's DOTS matrix handling, this behavior cannot currently be overridden.
Debug Visualization
Flora's shader visualization modes within the rendering debugger do not function when BRG is active. If debug visualization is required, temporarily revert to the RenderMesh pipeline in the scene settings.
Last updated