The 3D Handbook
Key term

Instancing

Drawing many copies of the same mesh and material in one batch, with only position, rotation, scale and a little custom data stored per copy. This is why kits, rocks and forests are cheap to draw.

optimisationrenderingdraw-callsengine

Instancing means drawing many copies of the same mesh with the same material in a single batch. The mesh data is stored once; each copy (an instance) only stores its own transform and, optionally, a few extra values. Unity's definition is short: GPU instancing "uses a single draw call to render multiple GameObjects that use the same mesh and material" (Unity Manual: GPU instancing).

Instancing is why reuse is cheap. A kit wall used 300 times, a rock scattered 2,000 times or a forest of one tree species can cost little more to submit than a single copy.

#What instancing saves

Draw calls. Without instancing, each object is usually its own draw call. Epic describes draw calls as "a lookup cost for assets that happens every frame" (Unreal Engine documentation: Instanced Static Mesh Component in Unreal…); grouping identical meshes into one Instanced Static Mesh (ISM) component cuts that cost (Unreal Engine documentation: Instanced Static Mesh Component in Unreal…).

Memory and overhead. Epic notes that a full primitive uses about ten times more GPU memory than a basic instance: 672 bytes against 64 (Unreal Engine documentation: Instanced Static Mesh Component in Unreal…). Each placed actor also carries its own overhead, so one actor holding many instances is cheaper than many separate actors (Unreal Engine documentation: Instanced Static Mesh Component in Unreal…).

Left, fifteen grey trees each labelled with a 1, captioned fifteen trees equals fifteen draw calls. Right, fifteen orange trees inside one dashed box, captioned fifteen trees equals one draw call.
Fifteen separate objects cost fifteen draw calls; as one instanced batch of the same mesh and material, they cost one.Diagram by the handbook author

#What instances can and cannot vary

Instances share one mesh and one material. What can still differ:

What cannot: in Unreal, collision, materials and shadow settings are "component-level only and cannot be edited per instance" (Unreal Engine documentation: Instanced Static Mesh Component in Unreal…). If one rock needs a different material, it leaves the batch.

#Engines compared

What it is called Notes
Unity GPU instancing (material option) Benefits depend on platform and GPU, and are "better on mobile platforms than on desktop platforms"; Skinned Mesh Renderers are not supported; with URP or HDRP, custom shaders only instance if the SRP Batcher is disabled or the shader is incompatible with it (Unity Manual)
Unreal Instanced Static Mesh (ISM) and Hierarchical ISM (HISM) HISMs add a hierarchy for faster culling and LOD on large numbers of static instances; Nanite-only projects should use ISMs, since Nanite does its own culling and LOD (Unreal Engine documentation)
Godot MultiMesh "A single draw primitive that can draw up to millions of objects in one go", but culling is all-or-nothing for the whole MultiMesh, so large worlds split instances into several MultiMeshes by area (Godot Engine documentation)

Epic's sample project Valley of the Ancient "uses ISMs extensively" to build its world from kitbashed pieces (Unreal Engine documentation: Instanced Static Mesh Component in Unreal…).

draw calls · hierarchical LOD · modular kits · procedural placement and scattering · foliage and vegetation · level of detail

#Further reading and watching

References

  1. Unity Technologies · GPU instancing · Unity Manual, 2026 · docs · accessed 2026-10-21
  2. Epic Games · Instanced Static Mesh Component in Unreal Engine · Unreal Engine documentation, 2026 · docs · accessed 2026-10-21
  3. Godot Engine contributors · Optimization using MultiMeshes · Godot Engine documentation (source on GitHub), 2026 · docs · accessed 2026-10-21

Last updated 2026-10-22