A technique for Blender's EEVEE rendering engine, allowing surfaces to use different light sources from shading and shadows. You can find the technique at https://blendernpr.org/downloads/
The technique can handle multiple lights and moving objects.
The technique with a static scene and rotating shadow direction.