    float val =  clamp(temperature + max(gl_FragData[0].r, gl_FragData[0].g) * (1.0 - temperature), 0.0, 1.0);
    float h = val * 3.0;
    if (h <= 1.0) gl_FragData[0].rgb = vec3(h, 0.0, 1.0);
    else if (h <= 2.0) gl_FragData[0].rgb = vec3(1.0, 0.0, 2.0 - h);
    else gl_FragData[0].rgb = vec3(1.0, h - 2.0, 0.0);
    float s = val * .5;
    gl_FragData[0].rgb = (vec3(s) + (1.0 - s) * gl_FragData[0].rgb) * val;