A GPU-driven, compute-shader-based instanced renderer for scattering large amounts of foliage, grass, rocks, or any repeated mesh — with real terrain-aware placement, natural distribution, and slope-based culling built in.
This is a renderer, not a content pack — bring your own mesh and this asset handles GPU-driven placement, culling, and instanced drawing at scale.
Placement, culling, and drawing all happen on the GPU via compute shaders and
Graphics.RenderMeshIndirect. No per-instance CPU overhead.
Samples your active Unity Terrain's actual heightmap directly. Detected automatically — no manual alignment required.
Instances lean to match the terrain's slope instead of always standing world-vertical, with a tunable blend between the two.
Thin or fully cull instances on terrain that's too steep, with a soft per-instance gradient rather than a hard, poppy cutoff.
Noise-driven density creates clumpy, irregular coverage instead of a uniform lawn. A single Scatter Amount slider blends between that and a perfectly even grid.
Runs every frame, keeping only what's actually visible in the draw call.
Six built-in presets (Calm through Tornado) or fully custom direction/turbulence/gust tuning, switchable live at runtime via a public API.
A tunable near/far blur ramp keeps close-up detail sharp and distant, densely-packed instances free of aliasing/noise.
Built in for cards, billboards, or any cutout-style foliage texture.
A public Reinitialize(int) method supports streaming or density changes at
runtime.
Grass, flowers, rocks, debris, anything — this is a renderer, not a content pack.
Numbers from a standalone Release build — not Editor Play mode — on a 4GB legacy/budget GPU (NVIDIA Quadro M1200).
| Instance Count | Avg Frame Time | Avg FPS | Min | Max | P95 |
|---|---|---|---|---|---|
| 500 | 14.89 ms | 67 | 2.81 ms | 39.65 ms | 24.32 ms |
| 2,000 | 20.78 ms | 48 | 3.74 ms | 62.73 ms | 24.18 ms |
| 5,000 | 38.61 ms | 26 | 22.95 ms | 54.23 ms | 53.64 ms |
| 10,000 | 63.66 ms | 16 | 47.64 ms | 78.80 ms | 64.42 ms |
Ready to scatter at scale?