Instanced Static Mesh Component Rendering Impact?

I have been working on a small project in which I have many objects that get spawned on another object procedurally with a seed, I have gotten everything working fine, but my question is why is my frame rate so bad when I have a lot of instances in an instanced static mesh compoent?

The meshes I am using are very low poly; around 25-35 polys, but when I use an instanced static mesh component and instanced many of them (like 5000) my frame rate plummets from 144 to around 50?

I thought the whole point of instanced static mesh components was that they only used a very small amount of draw calls yet a few thousand has a very large impact?

PS. The meshes do not have textures in their materials, they are just solid colours.

Draw calls are not the holy grail of optimization. There is still a lot of other things you need to consider. In this case you are adding 150.000 polygons to the scene. So the vertex program still needs to go through all that data. There might be a lot of overdraw in your scene with these meshes, so the fragment program might have a ton of work on its hands as well.

Don’t assume: less draw calls = better performance. Because it can even decrease your performance in some cases.

Yeah, but most triple a games have way more vertices and polygons than my little project and you can still get very hi frame rates in those compared to mine?

Thanks for replying.

Maybe occlusion culling is not performed properly anymore? Did you build the entire scene with static lighting or are you using a lot of dynamic lights?

I’m not able to use static lighting as my scene is set in space with planets orbiting a star. However there is only one dynamic light. :confused: