I have found myself wondering about the function of the Switch utilities in shading networks.
As I understand it, they can be used to simplify things by changing just one value in a shading network on a per-object basis. So, you could create a plastic material, apply it to three spheres, and then have a Switch utility change the colour attribute so that one sphere was red, one blue, and one green, without needing three separate shaders. Right?
But it has always seemed to me to be more trouble than it needs to be to use this workflow, because you can't set the triple attributes of the Switch node directly. The attributes are in there, but they're hidden, and you have to map some other texture (such as a ramp or a file) to them to get them to work. These seems in many cases to needlessly complicate the shading network... why create three separate Ramp nodes when all I want are three solid colours?
It is possible to use setAttr to set the values, of course... but that's hardly intuitive.
I am in the process of writing a procedure which will create custom attributes for a Switch node and connect them to its hidden attributes--but in the meantime, does anyone know of a more efficient workflow that can be used with these pesky things?