Diffuse map support
Implemented shader cache.
Merge branch 'Cheng'