GPU Normal Based Relighting Pyplug using ShaderToy.
Input should be a normal pass (ZXY), based on Blender defaults. You can set Diffuse , Specular (Phong) and Ambiant color separately. Note that you need to have a proper Alpha Channel for ambiant color to work properly.
Thanks to Alessandro Dalla Fontana for the initial SeExpr code.