If I’m understanding correctly, darktable has rgb curve and tone curve modules. The former lets me have linked or independent RGB channel curves, the latter lets me have linked RGB channels as well as linked and independent LAB channels.
Why not add independent RGB channels mode to the tone curve module and have one module fewer? Is that planned?
I am not a developer so I defer to their answer when they respond. But the placement of these modules within the pipeline reveals that rgb curve is a scene referred module placed before the tone mapping modules. And tone curve is a display referred module placed after the tone mappers.
I use both modules. I mainly use rgb curve to do small color corrections. I mainly use tone curve for specific adjustments that will not upset what has been done in the tone mapper.
Also as you have pointed out they work in different color spaces of rgb or LAB. I can’t see it being merged into one module.
RGB Curve works in scene-referred space (“unbounded” pixel values) whereas Tone Curve works after tone mapping and is in “display referred” space. I think RGB Curve got left behind when scene referred was introduced. It is a seriously flawed module because it’s still bounded and it generally doesn’t allow you to manipulate the bright parts of your image. You adjust the curve and it’s then extrapolated into the brightest parts with no actual control. I’ve suggested fixing it because I like tone curves but there is no enthusiasm for this and there are other modules you can use such as Tone Equalizer to do a comparable function. I doubt there’d be enthusiasm to amend Tone Curve, it’s display referred and seen as obsolete by many I think. though I think it’s quite nice for making final (minor) tweaks to an edit. However if you use AgX, then you have this functionality built into the Look controls (but not per channel).
According to the manual, Tone Curve operates in Lab colour space. darktable user manual - tone curveNote that the module works in Lab color space in all cases.
This is a big difference to RGB curve, which says This module works in ProPhoto RGB.
And that’s actually a surprise to me, I would assume it would be RGB working profile.
I think RGB curve is closer to Base Curve. Tone curve manual page says Base Curve works in camera RGB space. Not sure if that’s specifying the working colour profile.
No, not a typo, but maybe not as clear as it could have been.
My understanding is RGB Curve only allows the lower part of the value range to be edited by placing control points. The top range of values isn’t shown by the graph but is influenced by what the curve is doing . I think/hope that’s correct.
I think for the legacy workflow this might be true as there the basecurve I believe is placed before the input profile however if you use the basecurve now and are not using that legacy workflow then it sits in the same place as the other tonemappers so its a sort of hybrid approach with the base curve now…
Now that there are options in other modules to target what part of the luminance range a module targets, perhaps RGB curves could be updated with that option. It would give a lot of control in a form that many photographers are used to using.
I just gave this a quick try and it’s not misbehaving after AgX, and the whole histogram seems to be displayed. This seems consistent with the module being focused on the display-referred range.
Maybe yes and maybe no. I guess I occasionally use tone curve similar to how I was trained to use curves in Photoshop or GIMP. Being after the tone mapper means the tone mapper adjustments are not affected. But like with so many adjustments in DT there is more than one way to achieve similar and we all have our preferred ways. Occasionally I also use it for its lab adjustment capabilities.
When I teach DT to students I don’t teach them about tone curve because it is a rare use case for me.