fragmentShader = () => `
precision mediump float;
varying vec3 vPos;
vec3 scale(float t) {
vec3 a = vec3(0.5, 0.5, 0.5);
vec3 b = vec3(0.5, 0.5, 0.5);
vec3 c = vec3(1.0, 1.0, 1.0);
vec3 d = vec3(0.0, 0.10, 0.20);
return a + b * cos(${(Math.PI * 2 * 1000 | 0) / 1000} * (c * t + d));
}
void main() {
float l = length(vPos);
vec3 c = scale(sin(vPos.z * 50.) * sin(vPos.y * 50.) * sin(vPos.z * 50.) * .6 + .5) * pow(l, 10.) * .5;
gl_FragColor = vec4(c, 1.0);
}`