I used ShaderFX (a plugin for 3ds max) to create the shaders in this demonstration.
compares typical techniques with a new technique I made with self-shadowing in mind, though I applied some offsetting to create the illusion of depth.
Credit to Philip Klevestav for the starting point for one of the textures used here.