using struct to define light sources and material in shaders. Refactoring GLSL (probably break compatibility with NVidia cards).
ambient light component is not dependant on light sources anymore
using halfway vector instead of real reflection vector