I'm new to Blender, in other 3D programs I know, there's a way to pick objects by shader. Does blender have a way to do this? or at the very least identify all the objects in the viewport and the outliner with a selected shader assigned to it? Is there a way to do this with individual polygons on an object?
1 Answer
Select an object that has the shader you are looking for, then press Shift+L > Select Linked > Material.
Then all objects having this material get selected, even if it is just in the material slots but not assigned to any face.
In the following example I select the cube with the red material, then all linked materials. The red sphere has it, the green torus has some faces with this red material, and the monkey has it in its material list but it's actually not assigned to any faces. Select Linked > Material selects all these objects, the sphere, the torus, the monkey:
The good thing is, if you are sometimes wondering if some object still holds a material although it's not needed and you cannot see it used on any object, this selection finds all objects with this material (you just need one that actually has it to make the selection).
If an object has more than one material (like the torus for example), Select Linked will not select all objects with the red and the green material, it will only select those objects that have the material which is currently selected in the material slots:

