I have been playing around with a simulation involving 1,000 actors interacting and noticed the following weird behavior:
I have a c++ subclass of Actor that handles interaction with other actors of the same class. I then derived a blueprint from that class where I attached one sphere component as the root for collision detection and then a static mesh underneath that.
Without going into details of the simulation, it worked fine, with a framerate of about 70.
While experimenting, I at one point set the Static Mesh variable of the StaticMesh component back to default (no mesh) and then back again to the mesh I was using. This basically should be a no-op. But after this change the framerate dropped to about 20. I double checked that the mesh had the exact same settings as before. The only way I could get the frames back was to restore a previous version of the blueprint asset.
Does anyone have an idea what could cause this? Is there some kind of optimization cache that get cleared and why shouldn’t I get back my original framerate when I reassign the exact same mesh to the variable?
Thanks for any info.