@ I’m still attaching the static mesh component in the building pieces, and using that for my collision, but now I set that mesh to hidden and render an instanced version of the mesh.
I’m now using instanced meshes for the majority of my building pieces and the performance boost is pretty crazy. My CPU draw calls are a tiny fraction of what they were.
The only annoying thing is having to manually add each of the meshes to the foliage tool and place them in a hidden spot on the map (rather than being able to do it all from script), but it’s a small price for the extra performance I’m getting.
https://content.screencast.com/users/coldscooter/folders/Jing/media/d88ee0f7-6c7b-49ee-b376-5e4da75da65b/2020-02-20_1516.png
I agree i may have stumbled into a bit of a gem here. Now I’m starting to wonder how else i could utilise this. I’m thinking of using it for rendering distant speedtree billboards, as they are also pretty heavy on draw calls.
Edit: Instead of using ForceUpdateComponents() on the foliage actor. I’m just calling
instSM.SetHidden(true);instSM.SetHidden(false);
on the InstancedStaticMeshComponent’s individually. I have a lot of components in my foliage actor, so this seems a little less heavy.