http://www.opengl.org/wiki/GLSL_:_common_mistakes