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
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)