Picture of many spheres making the shape of a layered sine wave

Indirect Instancing

Indirect Instancing in UE5

Indirect instancing is like normal instancing, but it allows for the GPU to drive instance count. One of the most notable uses of this is in GPU-driven particle systems; where particles can spawn, simulate, and die all without expensive CPU calls.

You’ll need both a compute shader and a proxy/vertex factory when setting up indirect instancing (the templates below provide this). In most examples the compute and vertex shaders share some buffers:

  1. The compute shader will store instance data in arbitrary buffers(s) and increment the indirect args instance count.
  2. While the vertex factory will read from these instance buffer(s) and handle any material data passthrough/vertex interpolation.