http://www.swiftless.com/tutorials/opengl/lighting.html