Performance & LOD
Foliage and Instance Budget
Direct answer
Instanced foliage costs draw calls per unique mesh and material, not per instance. Fifty thousand visible instances of six tree meshes with one material each cost about twelve draw calls with shadows on, against one hundred thousand without instancing. Triangles still scale with visible instances, which is what LODs exist to cut.
After frustum and distance culling. Thirty per cent is typical for an open area.
The average fraction of LOD0 triangles a visible instance actually draws.
A shadow pass roughly doubles both draw calls and geometry work.
Result
- Draw calls, instanced
- —
- Draw calls without instancing
- —
- Visible instances
- —
- Triangles drawn
- —M
- Against a 60 fps console budget
- —
Method & assumptions
How this is worked out
Instanced rendering submits one draw call per unique mesh and material combination, however many copies it draws. So draw calls = meshes x materials, doubled when a shadow pass runs. The comparison against non-instanced rendering is there to make the size of that win visible, because it is the single biggest lever in a scattered scene.
Triangles do not get that discount. triangles = instances x visible share x LOD0 triangles x LOD factor. The LOD factor is the honest fudge in this estimate: it stands for the average fraction of full detail a visible instance draws once the LOD chain has done its work.
This is an estimate, not a profiler. It ignores overdraw, which for alpha-tested foliage can dominate everything else, and it assumes culling works. Use it to size a scatter before you build it, then measure the real thing.
Rough triangle budgets per frame
| Target | Triangles per frame | Draw calls |
|---|---|---|
| Mobile, 60 fps | 0.3 – 1 M | under 150 |
| Steam Deck and low-end PC, 60 fps | 2 – 4 M | under 1500 |
| Current console, 60 fps | 4 – 8 M | 1500 – 3000 |
| Current console, 30 fps quality mode | 8 – 15 M | 2000 – 5000 |
| High-end PC | 15 – 30 M | 3000 – 8000 |
Virtualised geometry changes the triangle side of this considerably, but not the draw call side, and not overdraw. Alpha-tested foliage remains expensive no matter how the triangles get to the GPU.
Questions
How many draw calls does instanced foliage cost?
One per unique mesh and material combination, regardless of instance count, doubled if the instances cast shadows. Six meshes with one material each cost six draw calls, or twelve with shadows, whether you place a hundred instances or a hundred thousand.
Why is my foliage slow despite instancing?
Almost always overdraw. Alpha-tested leaf cards stack up dozens deep from a ground-level camera, and every layer costs a full pixel shader execution. Instancing fixes draw calls; it does nothing for overdraw. Fewer, larger cards and earlier impostor switches are the fix.
Does the triangle count include shadows?
Yes, when the shadow toggle is on the estimate doubles the geometry work, because the shadow pass re-renders the same instances from the light's point of view. In practice cascaded shadows can cost more than that, since near cascades re-draw the same geometry several times.