Is it a performance issue if I use a separate material instance for each asset?

I want to create a realistic landscape, so for walls, for example, I use a displacement texture in ZBrush to make sure the stones really stand out geometrically. However, if I use all the details as a mesh, I end up with over 1 million polygons. That’s why I drastically reduce the polygon count—so the geometry still comes through but is only around 10k and bake the rest of the details via the normal map. In UE5, though, I now need a separate material instance for each asset, since I have an individually baked normal map for each one. Is this okay in terms of performance?

Hello there @David3DArtist!

As long as you are using material instances from one master material, you should be fine, as instances get the compiled shader of their parent, and the GPU won’t recompile the whole thing, event when switching parameters.

On the other hand, to reduce the polygon count impact, I would test by enabling Nanite on your meshes, which will handle LODs automatically, adapting it to what’s on screen at the moment. Also, please make sure your meshes avoid using a high ammount of material slots, as each slot will increase your scene’s draw calls.