MaterialPropertyBlock + shader keywords

Shader keywords are used by the shader compiler to internally generate multiple different shaders. You can think of doing Material.EnableKeyword() as being the same thing as Material.SetShader() at least as far as the GPU is concerned. Material property blocks can only set values that are passed to a shader, not change the shader itself.

1 Like