-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Roadmap
darktable's DNA is anarchy and personal projects. However, given the recent increase in contributions, it might be good to write down the high-level priorities of each contributor to get a general idea of the direction the project is taking and of the future challenges. Any contributor should feel free to add their personal views, goals and projects on this page.
The benefits of the scene-linear workflow is to provide consistent blurs, alpha blending (for masks), and intensity-scalable filters that can work for HDR and SDR as well. It is also the starting point for inter-operability with compositing and painting software operating in scene-referred (Blender, Natron, Krita, etc.) and HDR screen support.
Each module can now declare its internal color space (Lab or RGB) and the pixel pipeline has an internal way of converting Lab <-> RGB between modules when needed.
The custom has been taken to rename "xxxx RGB" the modules that work internally in RGB color space. Modules from darktable 2.6 and prior that do the Lab <-> RGB conversion internally should be re-written to use the pipeline-level conversion.
- Problems:
- future modules may need to work internally in XYZ color space (and derivated Yxy or Yuv spaces).
- Solutions:
- add XYZ as internal color space for modules.
- Problems:
- uses internal conversion Lab -> RGB -> Lab.
- contrast setting affects color saturation (because the standard algo has been chosen for interoperability with ASC-CDL).
- saturation algo is not perfectly hue-linear (because the standard algo has been chosen for same reasons).
- Solutions:
- use pipeline conversion Lab -> RGB, but it might need a color space different from the pipeline working RGB (like log-encoded ACEScc).
- add chroma-preserving contrast modes as alternatives to standard.
- add vibrance setting (based on the one developed for the basic module in PR #3599) and chroma setting (based on the filmic v4 color science in PR #4800)
- Improvements:
- add fulcrums to slope/offset/power to define the range of application of each settings (see Filmlight software).
- do some sort of gamut sanitization after color correction.
- Notes:
- discussions with @sobotka and @aurelienpierre need to converge to some rational solution to achieve a sensible color correction in this module.
- Problems:
- the guided filter does not blur the highlights and the lowlights uniformly, lowlights are blurred much more.
- Solutions:
- an exposure-invariant guided filter is being developed by @rawfiner and @aurelienpierre and needs extensive tests.
- Problems:
- mistakes have been founds in the computations, leading to wrong computations (erroneous parentheses)
- RGB values are clipped between 0 and 1.
- Solutions:
- fix mistakes: PR #5106 by @mtvoid.
- rewrite a scene-referred able channelmixer RGB: PR #4940 by @aurelienpierre.
- Problems:
- OpenCL kernels for the v4 are not provided.
- Solutions:
- PR #5762 by @aurelienpierre adds OpenCL support.
- Problems:
- use Lab color space internally, which is not suited with their physically-defined operations.
- Solutions:
- convert to linear Yxy space before applying the algorithms. The rest of the algorithms should not be affected since Yxy follows the same logic as Lab for the chroma/luma separation.
- Problems:
- blending operations clip RGB values between 0 and 1.
- masking operations in Lab/Lch are poorly suited to HDR scenes.
- Solutions:
- clip RGB blending operations only for negative values.
- use JzAzBz space for chroma/luma/hue masking (to generate the alpha mask) but apply the alpha blending in "linear" RGB whenever possible.
- Notes:
- PR #4688 by @hlecleme implements the solutions neatly. Testing and merging this work is high-priority.
The documenting work was put on hold, waiting for the PR from @mica that promised to move it from awfull Saxon custom XML format to something more contrib-friendly. That PR never made it to core because of translation issues. Meanwhile, new features were not documented. Documentation is high-priority for darktable 3.4.
darktable wiki is licensed under the Creative Commons BY-SA 4.0 terms.