Congrats Ali - looks impressive! You made it ^)
Directional lightmaps are static solution but you can animate your normal map, add detail maps and directional lightmaps dont need to have a high resolution.
Post will be long and i hope not too boring
Discussed long ago one idea with my friend. At that time i was busy with Precomputed Radiance Transfer (using Spherical Harmonics) and we was thinking how to make it in such a way that you dont need to store a lot of parameters in vertices or generate bunch of special textures. After reading article on how lighting is made in HL2 one idea came to my mind.
PRT and Directional lightmaps (DL) in general build upon the same idea - divide you lighting calculation in two steps - precomputation and realtime. Both techniques use special basis for calculations. Main difference between them is that PRT is used to calculate diffuse and ambient term under low frequency dynamic environment lighting and DL is used to enchant look of bump mapping techniques with static lightmaps.
What if we take a basis of DL and use it for PRT?
Idea is simple:
1) Calculate 3 lightmaps in basis of DL using only global illumination (no direct or point or other kind of lights)
2) Store each lightmap in defferent color channel of the same texture
3) Bake environment ligthing (dynamic sky or just rotate panoramic texture) in to cubamep
4) Blur cubemap (or even use cubemap of small resolution whan you bake it, edges might be not a problem here as you will sample 3 points on the cubemap)
5) sample 3 points of cubemap that correspond to each axis of DL basis, actually you can calculate color of the sky only for this 3 points
6) multiply each sampe of cubamep with corresponding directional lightmap
7) blend results according to normal map at current point of surface
This was not implemented yet, so no guarranty of good looking end result. But if it works than you will be able to obtaine soft diffuse and ambient terms + better depth of normal map and all this under dynamic low frequency lighting.
Ali, i can make this shader + connect it to dynamic sky if you can provide me a simple scene with calculated directional lightmaps.