Blender AgX in darktable (proof of concept)

The start was just an experiment:

  • how does a darktable module work?
  • can I use darktable to play with colours, tone mapping, gamut mapping?

Then, there was this overwhelming response, people seem to like it. So now I’d like to see if, in some shape or form, it’d actually be useful to get into darktable.

The ‘colour management properties’, I guess, are the rotations and in/outsetting of the primaries. That is something I’d like to learn about. Currently, it uses a matrix I took over from EaryChow, who somehow processed the original matrices, created for Rec709, and ‘ported’ them to Rec 2020. I’d like to understand what the original matrices did, and how the port was performed. The sigmoid and primaries modules already have that, it’s nothing new in darktable.
Then come those ‘guard rails’ I’ve read about, contributed by @flannelhead , who also added the primaries to darktable, and has been patiently answering my questions and providing encouragement behind the scenes. I’ve also done some naive stuff of my own, but they are probably not practical to ever end up in darktable.

So now, the short-term plans:

  • Fix the code so it actually takes the target black and white into account, instead of using 0 and 1. Not a big deal.
  • Improve controls. One I really don’t like is the ‘toe/shoulder length’, for a number of reasons:
    • it’s not about the length of the toe or shoulder, to the contrary: it’s about the length of the linear region, outside the toe/shoulder
    • the control is not… wait for it… intuitive (and also not really relevant): each defines the length of a hypotenuse, and then what that means photographically (in terms of input exposure range) depends on the slope:

      What would be a better option? Directly specify the range on the x axis (input exposure) as:
      • an absolute number (but what it means depends on the black and white relative exposures, and 18% mid-grey is not at the 0.18 mark on the x-axis, so, again, not intuitive
      • as an exposure range, say ‘1 EV above and 3 EV below mid-grey should be linear’; that would probably have the most photographic relevance, but I’d still need to make sure input values are sanitised (e.g. if white relative exposure is 5 EV, and someone says they want to keep 6 EV above mid-grey linear, that has to be limited to 5 EV - easy to do, though). Once one changes the relative exposures, it may be best to re-adjust the exposure range of the linear part, too
      • as a percentage of the distance between the black/white point and mid-grey; ‘keep 80% linear, then roll off’. There the answer to the ‘how many EV does that mean?’ question depends on the black/white relative exposure, but it may still be the most convenient one to use. I think that is worth an experiment.
    • Oh, and when I say mid-grey, maybe it should really be an adjustable pivot, as raised by @Tamas_Papp. I’m not sure about this, there’s such a control in color balance rgb, and it’d mean yet another slider. But I’m just one guy here, if it’s a slider I never touch, but others find useful, why not?

Mid-term: the matrix stuff. Darktable already has it, but I want to understand it, and the best way for that is to get my hands dirty.

So that’s what I currently have in mind. :slight_smile: Thanks everyone, for contributing your time and thoughts.

10 Likes