idk shading stuff, please tell your ideas
maybe you can just bake light directions on surface textures
lets say every pixel will hold 8 bit image color and remaining will be used for directions
16777216 / 256 = 65536, so every pixel can hold color data for 65 thousand directions...