Open
Description
Hi, I'm looking for help with a glsl shader. 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 mask = smoothstep(0.75, 1.0, clamp(length(b), 0.0, 1.0));
?? float I2 = mix(a, b, mask);
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)
Metadata
Metadata
Assignees
Labels
No labels