Glsl shader threshold (mpv hdr tonemapping)

Hi, I’m looking for help with a glsl shader. This is a HDR tonemapping shader for MPV (open source video player) that is capable of using glsl shaders. I want to combine float a and float b to get I2 but I have no idea how to implement it.
I want the low information (like srgb 0-180) from float a and the high information (like srgb 180-255) from float b to get I2. So like legs from a and torso from b I’m a noob in glsl but I will try out any suggestions.

Any help would be appreciated :slight_smile:

This is the shader

vec3 tone_mapping_ictcp(vec3 ICtCp) {
    float a = Y_to_ST2084(curve(ST2084_to_Y(ICtCp.x) / L_sdrr, 250 / L_sdrr) * L_sdrr);
    float b = Y_to_ST2084(curve(ST2084_to_Y(ICtCp.x) / L_sdrr, 500 / L_sdrr) * L_sdrr);
?? float I2 = ?;
    ICtCp.yz *= mix(1.0, min(ICtCp.x / I2, I2 / ICtCp.x), sigma);
    ICtCp.x   = I2;
    return ICtCp;

For demonstration purposes I color coded the picture. The green should come from float a (dark/low luminance) and the yellow should come from float b (bright/high luminance)