Seeking feedback: pigment setting options

The EOTF of 1.0 will make the pigment mode really terrible, unfortunately (much too dark!).

I’m trying to think of another way to have these models co-exist. Maybe something like this could make sense:

I’m thinking if we changed the layers window UI so that it is divided into three “Domains”, we could have a pipeline that doesn’t flip flop around. Domains would be a bit like Layer Groups, except they would not be rendered isolated, they would simply enforce that they are adjacent in the stack and not co-mingled with other domains.

After the Log Domain layers are composited down, it would be transformed to linear via exp() and converted from N spectral channels to RGB. Then it would continue to composite the Linear Domain layers. After the last Linear domain layer is composited down, it is transformed to the Display Domain via the OETF (^1/2.2 or ideally piecewise). Finally any legacy layers in the Display Domain are composited and the result goes to screen (after Color Management? hah).

Any particular Domain could be totally empty, except the background layer in the LOG Domain. For traditional painting you’d probably only use the LOG domain layers. Each domain would have its own possibly overlapping list of modes that make sense for it. For instance, “Colorize” wouldn’t make sense for the Spectral LOG domain, since it would need to flip flop to RGB and back again.

LOG Domain layers would be a special subclass with extended data model for the extra channels. Likewise, libmypaint would have to handle # of channels dynamically (which would likely change when you move between domains), and we’d have to prevent trying to use Colorize or Color settings when using LOG domain (to avoid flip flops). Then we could just eliminate the Pigment Setting slider entirely, and libmypaint wouldn’t have to blend the two models internally, which IMO is pretty useless and very inefficient.

Too complicated? Yeah, probably :slight_smile: I’m probably overlooking something important, as well. I would much rather abandon all of the legacy stuff and just do one model. We could try to decide if we want MyPaint (3.x?) to be a whole new thing, a totally specialized traditional physically modeled painting app without any baggage. . . not sure if most would agree about that move though.