fix fragment shader compile, add gradient