@tibotiber, when I originally read the title of the thread, I thought I would be talking about matcaps (a ZBrush term for material capture) where you use a simple texture to drive value of a pixel based on the world normal of the mesh transformed into view space, using the X and Y components of the vector as a UV to look up a value in that texture. Basically this:
You can see that the texture is just a simple image of a sphere with light cast on it using up 0-1 space, and we translate that lookup into colors based on the mesh normal. This “locks” the lighting to the camera, so as the object turns by the camera rotating, the light stays still. However, if you remove the transformation to view space, you can lock the lighting to the object if you want.
This technique will not give you cast shadows as there is no light calculation in the shader. But you can author the texture to look however you like and the mesh will be “lit” accordingly:
You can grab the node material and replace any image you want in the texture block. You could go further with the node material and add lighting/shadow into the shader as well, but this is a very simple and cheap effect that does not rely on any advanced techniques, yet gives you control over the look of your models.