I understand that you are referring to the fact that the Instanced Static Mesh feature did not exist in versions prior to Unreal Engine 4, specifically UDK 3 and earlier. In UE4 version 4.10, it was already possible to manually instantiate one or several meshes, although this method might not have been well-known in 2015.…
I want to show you an example of what I mean. In this demonstration scene from Epic in UE4.10 (I had this version installed because I have an old project in it), all the models that make up the environment are StaticMeshActors, and yet I have a high refresh rate, 60FPS, and around 2019.00 draw calls. On this computer, I…
That demonstration scene is only one room. There would be more than one room visible in a complete level. And there'd probably be bigger rooms than this (and smaller ones). Not every mesh would need to be part of an ISM but it's something you'd use if you needed to. Especially if you found areas which had a high mesh…
Instanced static mesh just did not exist in older versions of the engine. It wasn't properly supported by hardware before DirectX 11. Even after implementation in DirectX some hardware still didn't support it. Many tutorials aren't a realistic representation of a actual game workflow. They show some of the techniques but…
Probably? Instancing is usually something I do after a profiling pass on the scene. They're relatively easy to drop in with the merge actor tool. Since the renderer refactor in 2019 the engine does also do a degree of dynamic batching, which will consolidate draw calls for duplicate mesh instances in more or less the same…
I have observed that the difference between using StaticMesh and InstancedStaticMesh lies in the fact that, in the former, every time a 3D object is drawn on the screen, it generates 1 drawcall (not counting the textures associated with the model). For example, if a wall that is part of a modular kit appears 30 times in a…