Added textures and lighting.

Code needs some re-factoring and tidying.