fragmentShader = {
const shader = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(shader, `
precision highp float;
uniform float iTime;
${await include("glsl-noise/simplex/3d.glsl")}
${await include("glsl-hsl2rgb/index.glsl")}
void main() {
float n = snoise(vec3(gl_FragCoord.xy * 0.005, iTime / 2.0));
float h = 0.25 + n * 0.3 + mod(iTime / 10.0, 1.0);
float s = 0.65 - n * 0.1;
float l = 0.68 - n * 0.25;
gl_FragColor = vec4(hsl2rgb(h, s, l), 1.0);
}
`);
gl.compileShader(shader);
if (gl.getShaderParameter(shader, gl.COMPILE_STATUS)) return shader;
throw new Error(gl.getShaderInfoLog(shader));
}