I’ve been toying with the idea of contributing to darktable lately, and wanted to toss some ideas out there for comments. One thing that is particularly annoying for me is the poor usability when I need to tweak highlight reconstruction parameters.
The problem is I think well discussed in Should/could darktable warn when invalid pixels pass the pipeline?. There’s a lot of discussions about reconstruction methods, but I think that selecting a proper threshold is the thing that takes the most time for me.
Let’s look at the relevant parts of the pipeline.
“raw black/white point” module
This module knows about the actual pixel value at which each sensor channel saturate. This comes from the raw metadata (from libraw
) and I never touch that, but I guess there are some people who could need to if the metadata were inaccurate.
Proposal 1: If inaccurate metadata is a common case, we could add a small button that lets you select an overexposed region of the image and pick the max(R, G, B) as the white point.
“highlight reconstruction” module
A lot of other modules have sliders in EV (exposure, filmic highlight reconstruction), and the fact that this single module requires to make calculations is somewhat annoying. Yes, I can do base 2 logs in my head, but the inconsistency of the units is not great. It’s also lacking a way to automatically determine the threshold from a region of the image that you know has at least one overexposed channel.
Proposal 2: Make it possible to toggle between linear threshold (current) and a log unit (EV, like other modules). Maybe make EV the default.
Proposal 3: Add a small button that lets you select a region of the image where one channel is overexposed and not the others, and pick the maximum non-saturated channel as the clipping threshold.
“filmic” module
Proposal 3bis: Add a small button that lets you select a region of the image where one channel is overexposed and not the others, and pick the maximum non-saturated channel as the clipping threshold.
some closing thoughts
The proposals above should be fairly simple to implement, so I’m mainly looking for comments on whether they’d be useful to add to Darktable from other users/developers. What do you think? Are there other proposals being discussed elsewhere that I may not be aware of?
One last thing : RGB highlight reconstruction is useful outside of filmic, and it’s not even enabled by default. I’m wondering how feasible is it to move that to a separate module (“rgb highlight reconstruction”?) that can be used alone in linear space. Probably this depends on how much does it is integrated inside the filmic tonemapping, which I haven’t investigated yet.