Complete Instancing and Placement Solution
Flora is a robust and efficient instancing rendering system designed for Unity 2021.3 and later, enabling you to enhance environments with vast amounts of vegetation and instances without compromising performance.
Key Features
- Terrain Support: Fully supports instancing terrain details and trees, ensuring smooth integration and batching with other instances. Background loading of terrain foliage using Burst jobs eliminates performance hitches.
- Instance Painting: Easily paint instances on any mesh surface. Instances are grouped by a global grid and added as children of the surface, allowing for easy management. Populate your scenes with detailed vegetation and objects effortlessly.
- Prefab Support: Manage and customize foliage-covered prefabs with ease. Create complex prefabs, such as overgrown buildings or detailed vegetation patches, to introduce variation into any scene.
- Performance: Flora 2.0 is rebuilt with performance as the top priority. Features include zero frame GCAllocs, Burst optimized jobs for uploading and culling, a modern GPU resident scene, dual-phase culling, and on-demand GPU streaming to maintain high performance and low GPU memory usage in complex scenes.
Rendering and Performance
- Pipeline Compatibility: Works with any render pipeline, including Built-in or custom.
- Modern Indirect Rendering: Utilizes DX11, DX12, Vulkan, Metal, and modern console APIs.
- Advanced GPU Scene Management: Employs a single buffer system, burst-mapped uploads, SOA layout, dynamically resizing buffers, and packed GPU transforms.
- Full Terrain Support: Dynamically loads terrain detail and tree cells in the background using jobs.
- Dual-Phase Culling: Combines Burst Jobs with GPU culling to reduce GPU load.
- GPU Occlusion Culling: Implements an extremely performant Hi-Z occlusion system.
- CPU Occlusion Culling: Supports Unity's baked occlusion system for lower-end platforms.
- Dynamic Density: Adjust instance density dynamically based on distance with a customizable falloff.
- Global Density: Adjust instance density for the entire scene with a single slider.
- GPU Streaming: Dynamically streams instances to optimize GPU memory usage.
- LOD Cross-Fade: Supports both animated and transition-based LODGroups with cross-fade. Materials dynamically switch between cross-fade and opaque variations.
- Optimized Batching: Instances are batched by material, regardless of placement.
- Shadow Optimization: Share shadow materials via mesh or global material, with customizable LOD bias and clamping.
- Light Probe Support: Updates interpolated light probes per instance based on ambient lighting changes.
- Advanced Culling: Implements true shadow silhouette and frustum culling to avoid rendering off-screen objects.
Instance Context and Tools
- Easy Access: Toggle with Tab or scene view context.
- Built-in Tools: Use standard tools (move, rotate, scale) on any instance or selection.
- Painting Tools: Use brushes for placing, painting, erasing, filling, and scaling instances.
- Placement Settings: Customize density, radius, scale/rotation randomization, and slope/height masks.
- Intuitive UI: Modern overlay interface for seamless environment work.
- Custom Shortcut Context: Ensures no conflicting shortcut keys.
Integration and Tools
- Prefab Support: Paint and edit instances within your prefabs. Create an overgrown house prefab, and drop it in a scene.
- Selection Support: Allows instance selection directly from the scene hierarchy.
- Prefab Conversion: Convert prefabs to instances in the scene with two clicks.
- ShaderGraph Integration: Automatic ShaderGraph patching with no modifications needed.
- DOTS-Enabled Property System: Supports ShaderGraph hybrid properties, with property painting via the property painter tool or scripts.
- Rendering Debugger: Full integration with SRP's rendering debugger. Debug scenes both in the editor and at runtime to see exactly what's happening in the renderer.
Management
- Runtime Access: Add, remove, and query instances efficiently at runtime.
- Prefab Proxies: Maintain prefab instances with colliders and scripts while still rendering with Flora.
- Enableable Instances: Enable or disable any instance.
- Spatial Hashing: Utilizes a global hierarchical grid system for efficient instance management.
Compatibility
Requirements
- Unity 2022.3
- Unity 6.0
- Platform Compute Shader Support
Packages
- com.unity.burst: ≥1.6.6
- com.unity.collections: ≥1.4.0
- com.unity.mathematics: ≥1.2.5
- com.unity.profiling.core: ≥1.0.2
- com.unity.render-pipelines.core: ≥12.1.6
- com.unity.shadergraph: ≥12.1.6
- com.unity.settings-manager: ≥2.01