Drop-in real-time physically based rendering techniques for 2D canvas pixel data?

I’m hoping this thread can compile some inexpensive and simple techniques for physical rendering, such as simulating paints, inks, glazing, etc, using nothing more than 2D RGBA data.

I’ve had some success using techniques based on reflectance recovery such as outlined here:
http://scottburns.us/subtractive-color-mixture to mix “paints”, but would like to expand on this.

Much of the information out there is for 3D rendering, which I am hoping can be simplified if we assume a perfectly flat 2D canvas and a perfectly diffuse material and simplified lighting assumptions.

This is a continuation of the thread here. Hopefully @Elle, @anon11264400, and @KelSolaar can suggest some resources.

Well, speaking just for myself (the other people you mention are a whole lot more knowledgeable on these topics), everything you just mentioned is far, far beyond/outside my level of knowledge/expertise, so I can’t help with any of that.

I plan to contribute photographs of results of mixing real media to compare to your MyPaint spectral mixing code results. Which I will do as soon as I get the Neopastels I ordered from dickblick.com (hopefully later today).

Unlike my current stash of student grade oil pastels, the Neopastels actually supply pigment information, so the colors can be coordinated with paint mixing information from the handprint.com website.

It would be really cool and helpful to have feedback from actual digital painters or even photographers who might be curious about “colors mixing like real paints”.

I’m guessing for a lot of people the first step - compiling your modified mypaint code - might require a step-by-step “how to”, or better yet if an AppImage could be put together.