Material instance
A lightweight variant of a parent material that overrides only parameters, without recompiling the shader code.
Compiling a shader is expensive, and a game world wants thousands of surfaces that look different but share the same logic. A material instance solves this by inheriting a parent material and swapping only its parameters — colours, textures, scalars — while the shader code itself is unchanged and already compiled. Unreal Engine's Material Instances are the canonical example: an artist can tweak hundreds of variants in the editor or at runtime without touching a line of HLSL. Don't confuse it with a shader variant, which is a distinct compile produced by #define flags at build time — an instance only changes values fed in at runtime.