Download the blend:
lighting and colormanagement, scene scale
- before you start creating your shader, make sure to use filmic log encoding in the scenes colormanagement tab. This will switch your colormanagement from sRGB to filmic and will enable additional dynamic range, a natural desaturation of the highlights and a more human like gamma response. It also gives you more opportunities during post-production
- roughly recreate the lighting conditions of your reference image. I used two area lamps, two diffuse white planes as room placeholders and a pitch-black scene background/ scene environment. Metal looks best with a very minimalistic lighting setup, an outdoor HDRI creates very unsteady, noisy reflections in comparison
- recreate the objects of the reference image, that feature unique topological similarities of the objects you want to apply the shader to. Do not use the monkey head for example, it is an organic shape and doesn't feature the sharp beveled edges and geometrical shapes of the metal parts.
- to find the right brightness of my lights, I usually use a diffuse white shader (RGB 0.8) for the ground and increase the strength of the lights right to the point where it almost clips to white. I also added a slight variation between the two area lamps blackbody temperatures.
- make sure to get the scale right, for this objects I switched to metric measurements in the scenes settings and assumend them to be about 6-8cm long. Apply the scale of the objects before shading
start setting up the base shader
- I used a single principled shader. Since it was implementent in blender, I rarely use a mix of multiple shaders (like you did) anymore, I find it the safest way to create a material, that is physically plausible and has the right energy conservation
- set up a orangy/ yellowish basecolor and a basic roughness. Set the metallic value to 1 and specular to zero. All these inputs will be fed with noise (controlled by color ramps) to bring the necessary variation to the color, roughness, metallic and normal inputs of the shader
This is roughly the order, in witch I created the different parts of the shader:
- Principled BRDF as base shader, connected to Surface Material Output
- set up a color ramp with the basecolors of your metal (the nodes where I add the green tint based on the camera angle (layer weight fed into hue value of HSV node) were all added later on when I refined the material. So are the base color variations, that darken the material on sharp edges and darken the diffuse component of the shader)
- create a noise texture and plug in a mapping mapping node and texture coordinates. This mapping node will be your centralized scaling knob and will feed all vector inputs of the noise textures. I split the main noise texture up into R G and B to use these channels independently
- create noise textures to control the blend between metallic and diffuse components. The reference image shows some diffuse spots, where the metal is very rough and might partially be covered in dust. For this purpose I used two different noise patterns, one large scale and one small scale noise, that are tonemapped with the help of two color ramps and multiplied ontop of each other. Then I use the resulting noise pattern as a factor to blend between almost pure white (0.99) and light grey (0.9) in a mix node. This is fed into the metallic input, so our surface is 1% - 10% diffuse and 99% - 90% metallic depending on where you look at the surface. It also gets added to the color ramp that controls the surface roughness, to make sure the diffuse parts are more rough than the metallic parts.
- the surface details are again a combination of different noise types. Here I used three differently scaled noise textures with very high contrast tonemapping (color ramps again) to create the dents, scratches and microscratches. The mixed noise patterns are connected to the height input of a bump node, you can control its effect on the surface with the strength value. This value is dependent on the scale of your object. When you apply this shader to an object that is too big or small, you'll need to adjust the scale in the main mapping node, as well as the strength of this bump node.
set up a turntable animation
When making complex shaders, it helps to change the directions of the light or the orientation of the object without leaving the node editor. I usually parent the lights to one empty, that rotates 360° around the z-axis. I do the same thing with the objects. Now you can spin your lights and objects toggeling alta and altshifta to rotate objects and lights.
My turntable as an example:
Have a look at the blend to see what is going on in detail and feel free to ask when something isn't clear. This answer has gotten longer than I anticipated, I hope it is understandable.