Performance difference between material vs material instances?

I’m curious if there are any performance differences in shipping builds of levels built with materials, vs material instances?

I get that there are editor performance differences (shader compile times) and quality of life improvements (instant visual feedback), but what about shipping builds?

Perhaps a memory overhead, but does anyone know if there’s also a potential framerate impact on a final built executable?

1 Like

Materials are “converted” to Material Instance if you put them into a Slot of a Mesh.
They are just Material Instances with the Default Parameters.

Got it, so material instances in the editor are purely a developer convenience then. Thank you!

Each material generates its own separate shader, so using instances helps reduce build size and memory consumption since they all share the same underlying shader.

Here is the real answer: Mastering Material Instances | Live Training | Unreal Engine - YouTube

5 Likes

Using material instances will reduce the number of shaders generated in shipping builds and thus improves performance and reduces Memory usage.

Each Material will generate it’s shader code during build time.
Material Instances inherits the same shader from parent material.

Do you mean that MIs will only load textures once aswell? (the one from the parent material)
So for example, if i have 100 MI from one parent material, it will cost the same VRAM as if it was just 1?
Cheers!