Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Linear and Spectral Pigment Features #957
It's about time we put the "paint" into MyPaint. This PR makes a new layer mode the default. "Paint Mode" is a spectral upsampled 30 channel weighted geometric mean compositing mode that does a pretty good job emulating the appearance of paint and pigments.
The reference space is also linearized and rendered with a generic 2.4 OETF.
This represents a pretty serious paradigm shift. All the old layer modes will now render in a linear way, considered more "correct" by color experts. The Normal brush mode is also linear now, which may not be desirable since we're so used to the old non-linear blending. Fortunately, the "Paint/Pigment" brush mode is non-linear and a superior replacement to the old non-linear Normal mode.
Some brushes such as the Air Brush and very large brushes will use quite a bit more CPU. If this happen you may want to slide the Pigment slider off to go back to the Normal brush mode (albeit linear). You can also change the layer mode back to Normal and that will improve performance as well.
Old files will composite layers differently, using the linear reference space. Some files may look better, some worse, and some will look the same. At the moment if you desire the old rendering mode you should open the file in an old version of MyPaint or another program like GIMP or Krita. We could also add a preference to control the OETF power function. In a pinch one could switch the 2.4 power function with 1.0 in the src code.
MyPaint is still an sRGB unmanaged application, although it won't take much more to replace the OETF with a call to LCMS to correct the color for a display. The reference colorspace should remain Rec 709, however, until a point where we can manage the spectral upsampling to include arbitrary colorspaces.