
uniform highp vec3 color_bound;

vec4 colormap(float x) {
    if (x <= color_bound.x) {
        float g = x / color_bound.x;
        return vec4(0.0, g, 1.0, 1.0);
    } else if (x <= color_bound.y) {
        float b = (color_bound.y - x) / (color_bound.y - color_bound.x);
        return vec4(0.0, 1.0, b, 1.0);
    } else if (x <= color_bound.z) {
        float r = (x - color_bound.y) / (color_bound.z - color_bound.y);
        return vec4(r, 1.0, 0.0, 1.0);
    } else {
        float g = (1.0 - x) / (1.0 - color_bound.z);
        return vec4(1.0, g, 0.0, 1.0);
    }

}