This is a breakdown of a multipurpose stylistic shader that I've been working on.
A lot of the PBR code was adapted from Nadrin's Unity PBR code which is available on https://github.com/Nadrin/PBR/blob/master/data/shaders/hlsl/pbr.hlsl
What I have done is adapt this into a UE4 custom material and implement controls that expose the inner workings so that elements such as the shadow and highlight size and hardness can be adjusted. I wanted to use a PBR reference as the Roughness term has become a much easier method of controlling specular highlight size, shape and travel and then allow the user to tweak things according to the type of rendering that they want. This breakdown shows the various capabilities of the shader and expands to some inner workings