Hi vicbrother and Omarito,
Here’s a quick overview:
SM - 1 drawcall per material in the mesh, per mesh.
ISM - 1 drawcall per material, that drawcall renders all ISMs. ISMs have LOD issues for non-nanite. When you remove a ISM from the ISMC, you have to reorder all indexes if you’re referencing them.
HISM - same drawcalls as ISM. LODs are better, when you remove an HISM, the last index in the list is put where the removed index was so all other indexes remain true.
Lightweight Instances are an experimental thing - they work in the same way as foliage. I’m not sure how they act with World Partition. I haven’t actually been able to get them to work properly.
Auto-Instancing - this is a Mobile thing and again, I’m still to see it actually working.
There’s also Foliage Instancing - that is a layer on top of HISMs and they have cluster culling which has potential.
All but the Foliage Instancing ignores WorldParition. To get around it, the common practice seems to be create a ISMC or HISMC in every blueprint used for instances - this is not efficient by any means.
To get the best speeds, you need to create your own (or use an existing) ISM or HISM manager that takes care of all instances in your level.
To see the differences, check out this benchmarkL