Rewrote gradient shader glsl code to take an arbitrary (up to 10) number of gradient stops