Flora 2.0

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