Optimization

GPU Instancing

One mesh, many instances, one draw call

Also known as: Instancing · Mesh instancing

Definition

GPU instancing renders many copies of the same mesh in a single draw call, with each instance having its own transform (and optionally per-instance colours, scales etc). Without instancing, 1000 trees = 1000 draw calls; with it, 1000 trees = 1 draw call. Foliage, debris, modular kit pieces, and crowd characters all rely on instancing to be performant at scale.

In production

UE5 enables instancing automatically for static meshes placed via Foliage Mode or Instanced Static Mesh (ISM) and Hierarchical Instanced Static Mesh (HISM) components — HISM additionally sorts instances into a cluster tree so distant instances can be culled or LOD-swapped in batches. Hand-placed individual static meshes are NOT instanced, even if they reference the identical mesh asset, because each placement gets its own actor and draw call; always batch repeated assets through the foliage system or a manually added ISM component instead of dragging copies into the level. Unity's equivalent is GPU Instancing on the material plus DrawMeshInstanced for large-scale batching. A common pitfall: instances sharing a material can still break batching if per-instance material overrides are applied, since that forces the renderer to split the batch.

Learn GPU Instancing in

Tools that use GPU Instancing

See also