Hello there. This is my second post. I want to experiment with a workflow that I feel most intuitive that combines strengths of various colour spaces, where I can:
- pick colour and paint textures (plus perhaps light) in perceptual spaces like Oklab;
- blend, add and multiply light and textures, and apply photographic filters in linear spaces like XYZ or linear sRGB, as described in Scene Linear Painting.
- tonemap the blended result with adjustable exposure;
- go back to the stage 1 and make tweaks in Oklab, while having live preview the blended result;
Currently in Krita, two features are wanting for it to be possible:
- Oklab support, which is discussed in another thread here.
- A non-destructive method to convert colour spaces of certain layers, which is what this request is about.
- (Optional) have a nits slider somewhere when blending lights.
My idea is to have a special group, or a property of group that toggles conversion of layers underneath it. It can reuse the interface of the Convert Layer Colour Space dialogue as well as the OpenColorIO docker.
The tonemap group could be redundant in this specific workflow in favour of existing color management features, but currently it has all sorts of weird glitches on an SDR display and I might write a separate bug report later.
In addition, here is what the layer structure of my intended workflow might look like. Oklab denotes colour space, [Addition] denotes blend modes other than Normal:
- Tonemap Group
XYZ -> Oklab- Group A [Addition]
- Conversion Group Texture A
XYZ[Multiply]- Texture A
Oklab
- Texture A
- Conversion Group Light A Color
XYZ[Multiply]- Light A Middle Grey Hue & Chroma
Oklab
- Light A Middle Grey Hue & Chroma
- Conversion Group Light A Intensity
XYZ- Light A Intensity
Oklab
- Light A Intensity
- Conversion Group Texture A
- Group B [Addition]
- Conversion Group Texture B
XYZ[Multiply]- …
- Conversion Group Light B
XYZ- …
- Conversion Group Texture B
- Group C [Addition]
- …
- Group A [Addition]
I have experience and interest in coding, just unfamiliar with the Krita codebase. So I am posting to ask for advice, as well as opinions about the idea. Cheers.