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.