We havily use Instanced Static Meshes in our Project for hundreds of Instances placed along a street. They have to be culled out at a specific distance per instance.
This culling Feature is already there but it doesn’t work correctly. You can set a “Instance Start Cull Distance” and “Instance End Cull Distance”. It seems to work when using the “Per Instance Fade” Node in the Material but when you enable the Shader Complexity View Mode you can see that all instances are rendered. This can be a very huge performance impact.
Exactly the same Feature works correctly with Foliage Instances.
I was doing something very similar and after asking ppl I realized that the culling is working, but you need to “Play” to see it…
Or you can change you viewport to show: “GameView”.
If it doesn´t show you the culling working then it can be a bug indee.
We found a workaround. When using Hierachical Instanced Static Meshes the per instance culling works fine.
I hope there aren’t any drawbacks with this solution.
At the moment, we have a ticket in for this with UE-13425, which is currently backlogged. There is a limitation with using instanced static meshes for culling since these get reduced to a single draw call when rendering an object X amount of times. Normally that that X values would be the number of draw calls you would get. Because of this these objects can not be independently culled.
Using the Hierarchical Instanced Static Mesh will be the best route.