What't the right way to override and clear a texture in a material instance?

I have a material which uses texture parameters. If I create a material instance, I want to override some of these textures, specifically clear them (make the material behave as if they’re all black). I tried overriding the parameter and selecting “clear” on the texture, which makes the texture show “None”, but this doesn’t work - the material still uses the default texture used by the parent material. Everything works properly if I replace the texture with some other texture, instead of just leaving it “None”.

Am I doing something wrong? What’s the right way to disable a texture in the instanced material?

Thanks,
Dan

texture parameter shouldn’t be None. if you need it to be black, create simple 2*2 black texture and set it in material instance.

or use static switch node to replace all textures with vector (0,0,0) or even scalar 0.

Thanks, I ended up going the static switch route. Can you explain what “none” means and why it doesn’t work?

None means no value. In materials texture samples must have value to pass some color into shader. Its because they always have default texture value. if you set None, you will get an error, and shader doesn’t compile.

Is there a reference to any official documentation you could provide for this? Thanks.

Never saw any documentation about. This information from my experience.

No, you have to output an actual parameter from the Texture Sample, just having a texture in it is not enough. You have to drag a parameter out of Texture Samples’s Tex.