Best strategy for materials for highlighting parts of my scene?

I have a scene that looks like this…

The renderer is Cycles (probably obvious from the screenshot :)). Blender 2.78.

I’d like to be able to highlight components, such as the gearbox, in a highlight color such as a slightly emissive orange. This would be for stills and for animation; and for animation it would be cool to be able to fade from current materials to highlighted material over a few frames.

The main question I have relates to materials strategy. Currently, I’ve got materials such as aluminum, shiny_steel, powder_coat, etc. So this means that if I want to highlight, say, the gearbox, I need all the objects in the gearbox to change color, without affecting everything else in the scene that also has the same materials.

At this point, I don’t have a handy hierarchy as these meshes were imported more-or-less flat; but I’d be happy to parent all the gearbox parts to an empty called “EMPTY_gearbox”, for example. Then the ideal thing would be to add a custom property to the parent that allows me to fade from assigned materials to highlight material, perhaps through a driver.

What’s the best strategy for achieving this? How do I get my head around material slots, mix shaders, etc. for achieving this? I’d rather not have to have several different aluminums, such as aluminum_for_gearbox, aluminum_for_manifold, etc. But if this is what it takes, I can do it, but it seems like a clunky approach.


Here’s a handy way to do it in post:

Use the object ID pass, and create node groups that use that to create masks for each component. Node groups will be helpful for this.

When you want to colorize each object, all you need to do is change the material color passes to the desired color when you need it.

On a side note, I would recommend using somewhat (a lot) more contrasty light, because right now the whole thing looks kind of washed out. I know you want to show off your model, but it will look a lot better if you give it some definition.