Is there any performance advantage in using Material Instances over copied Materials?

Is there any significant runtime advantage of using same material as MIC as much as possible over creating dozens of similar materials?

I’m not talking about ease of management due to MIC being hierarchal but actual gains in performance or savings in memory usage by

Maybe a little but basically, no

That’s about performance but what about memory usage

If you ever worked with basic API like D3D or OpenGL you should now that each device (or context) function call costs time, for example for D3D9 you can find a table about how much each call costs at the end of this page: Accurately Profiling Direct3D API Calls (Direct3D 9) - Win32 apps | Microsoft Docs

You can see top 5: [TABLE]

		SetVertexShader
		3000 - 12100
	
	
		SetPixelShader
		6300 - 7000

So if you changing shader - it’s costs time.

I am not sure if Unreal is smart enough to compare 2 materials and decide they are equal, if it’s true - then copies of materials not changes performance at run time (because theay are same shader), but compile time for each material keeps same, I can say this for sure since I worked on projects with lot’s of imported assets from the store and each asset had same or almost same material, but unique one.

So, use Material Instance where ever you can use them - it’s saving compiler time and probably run time performance.

I am not a graphics engineer but my assumption is that the answer is the same… we’re most likely talking kilobytes here. If you need to reduce your memory consumption you will have to look at the texture assets used by the materials.