Instanced Static Mesh performance issues

Hi,

I think ISMs are very efficient for static objects - but yeah, transforming them isn’t exactly lightening fast - it looks like they’ve made some changes in 5.4 by pre-calcing some things - I haven’t tested if it speeds it up yet though.

The actual instance data itself is available - you can get pointers to the transform data (array of matrices) and custom data etc and make the changes yourself just marking it as dirty (pre to 5.4, you also need to increment ismc->InstanceUpdateCmdBuffer.NumEdits but that’s changed now).

There are also Batch methods for processing arrays of instance data.

Maybe another approach would be more optimal? What about having static instances in the distance which switch to dynamic actors when close by?

For something like laying out a voxel area - perhaps having tiles of ISMCs where you’re laying out other tiles in the background?

Also - you may actually find that just using a full cube voxel mesh is more efficient that breaking it into sides and calculating which ones to show.