📚 In-depth Documentation
Read the Documentation for detailed guides and technical breakdowns. See the Forum or the Discord to ask questions, share feedback, or see how others are using Flora.
Add the Scene Settings component — Flora automatically registers all active terrains and sets up rendering. Scene view and all cameras are supported without additional components. Changes to prefabs, materials, or terrain data are tracked and synced automatically.
Flora is the only foliage solution on the Asset Store that works with Unity’s BatchRendererGroup API. No custom shaders or materials. Take advantage of GPU-resident rendering, native culling, and efficient state switching — the same backend used by Entities Graphics and Unity’s GPU Resident Drawer.
🌲 Terrain Instancing
Flora reads tree and detail prototype data directly from terrain components using non-GC APIs. Trees and details stream in and out based on distance, with all rendering handled globally to avoid redundant draws.
Select and manipulate Flora instances — including terrain trees — directly in the Scene view using Unity’s transform handles.
Convert any prefab with a MeshRenderer or LODGroup into a Flora instance or tree — and convert back when needed.
🗂 Mesh LOD Support
Full compatibility with Unity’s Mesh LOD system (Unity 6.2+), enabling fast autogenerated LODs for any instance.
📉 Density & Screen Size Fading
Instances fade out smoothly based on minimum screen size or range-based density, with automatic fade outs.
🔀 LODGroup Cross-Fades
Supports all Unity LODGroup cross-fade modes: animated, transition, and SpeedTree. Additionally fade states are dynamic, meaning non-fading instances are opaque if not already using alpha clipping.
🌑 Shadow Culling
Per-light and cascade split shadow culling work on a per instance basis, minimizing overdraw in shadow cascades. Additional lights are culled correctly with Forward+ or Deferred rendering paths.
Supports both GPU-based runtime occlusion and Unity’s baked CPU occlusion. Choose the appropriate method based on your platform and performance needs.
Full support for per-instance motion vectors enables correct TAA, motion blur, and other temporal effects on animated or moving instances. Only actively moving instances are submitted to the motion vector pass.
💡 Indirect Lighting
Supports Unity’s Light Probes and Adaptive Probe Volumes for proper indirect lighting of instances.
Store thousands of instances in lightweight, serialized containers. Ideal for static clutter like rocks, moss, or debris — without GameObject overhead.
All instances are managed through a centralized system with stable handles, enabling consistent runtime queries, animation, and control — regardless of origin.
🔎 Dynamic Spatial Hashing
Flora uses a scene-wide spatial hash that updates every frame. This enables fast culling, runtime modifications, and efficient spatial queries — filter by prefab, layer, or type.
⚙️ Runtime Control
Create or update instances at runtime using Flora’s Burst-optimized queries and data structures. Works seamlessly with procedural generation and custom terrain systems.
↔️ Transform Flexibility
Handles negative scaling transforms correctly, ensuring consistent rendering and culling behavior regardless of instance scaling.
Includes a custom tab for Unity’s Rendering Debugger that visualizes draw calls, LODs, occlusion, and more.
🧪 Samples
✅ Compatibility