shader
shader: string = `uniform vec2 froms[DROPLET_COUNT];uniform vec2 toFromDeltas[DROPLET_COUNT];uniform float fromRadii[DROPLET_COUNT];uniform float toRadii[DROPLET_COUNT];float dropletMinDistance(vec2 target, out float colorIndex) {colorIndex = 1.0;float minDistance = 1000.0;for (int i = 0; i < DROPLET_COUNT; i++) {vec2 targetFromDelta = target - froms[i];float h = clamp(dot(targetFromDelta, toFromDeltas[i])/ dot(toFromDeltas[i], toFromDeltas[i]),0.0, 1.0);float currentDistance = -mix(fromRadii[i], toRadii[i], h) + distance(targetFromDelta, toFromDeltas[i] * h);minDistance = min(minDistance, currentDistance);}return minDistance;}`