Rebelle 5 Pigments - Physical Color Mixing

I read their paper again, png is a 3d lookup table to improve speed. But it also occupies a certain amount of hard disk space. And this has resulted in only 4 benchmark pigments being used now.

The two precomputed tables occupy 96 MB in total. To reduce

their on-disk storage, we compress each table in a lossless way by

tiling its slices into a 4096 × 4096 PNG image. The two PNG images

have 7 MB in total, which is lightweight enough to bundle them

together with the software. With the precomputed tables at hand,

the evaluation of G reduces to performing a trilinear table lookup

followed by vector addition.
The main restriction of our approach is that the number of primary
pigments is limited to four. A practical reason is that we need to use
look-up tables for quick conversion between latent vectors and RGB
values. If there were more than four pigments, the use of the 3D
table would no longer be possible, and the real-time performance
would suffer. Another reason is that a fifth pigment would cause
ambiguities.

It seems that krita used baxter’s method ten years ago. It must be on an 8-channel canvas.
At 7:10 in the video about the mixbox talk

Kubelka-Munk has been around for a century. It has been 30 years since people studied how to apply it to computers. But there is still no perfect way.

I’d be interested to see how he added it. Would you happen to have any insight?

No, I don’t know programming at all.

For anyone who doubts if artists would actually want and use this, there are multiple tweets with thousands of likes and retweets begging for this to be implemented in other software.

But yeah, there’s totally no interest in this at all.

5 Likes

Coincidentally at almost the same time mixbox was being streamed on Chinese sites and getting a lot of airplay.

im sorry for asking a month later, but, I really like how it looks! And I really wanted to use it, but I’m absolutely new to krita and digital art overall, and I wanted to ask how to actually apply it to krita. I have no literal idea, it doesn’t work, I just want to try it :sob:

1 Like

It’s no problem! :blush: Here’s a example krita brush present (.kpp) you can download

After downloading it, open krita

Then click “settings” on the toolbar, click “manage resources”, click “Import Resources”, and open the colorextendbrush.kpp file you downloaded. You will be able to find the brush present in the brush presents docker.

I think I will create a feature request topic one day to ask for the real “color extending” option for the Krita smudge engine someday. I think it will make painting feel more “realistic”

3 Likes

Hello @fizzyflower,

unfortunately, the file seems to be deleted just 3 minutes after you have posted this link to your PRESET, which, without question, is a nice PRESENT.
Seems that more people than @suzuuu alone are interested in this PRESET.
:wink:

Michelist

1 Like

By the way, thank you very much for the tip, I managed to create several interesting brushes.

6 Likes

Wow, these look fascinating. Congratulations, good job!

Michelist

That was fast! :open_mouth:Thanks for telling me!

Here’s a dropbox link instead

You’re welcome! :smiling_face_with_three_hearts:

2 Likes

I’d love to say that it works perfectly, but… no matter what I do, it doesn’t show up. I tried ‘import presets’, pasting it into ‘paintoppresets’, and I don’t know what else can I do. Sorry if it is annoying, but, what should I do?

1 Like

Did you restart krita afterwards?

This blend mode blends light blue and yellow to make green, but once you use dark blue, the effect is very bad


Pure yellow and pure blue can even mix into black

Is pressure related to opacity? For blending modes, semi-transparent images it will assume it is opaque, and then blend. Finally, do rgb blending (via opacity) with the result and the original image

From the introduction and code, it should be simplified to C=2ab/(a+b)
From this formula, I feel like it may not be as controllable and ideal as we think…

3 Likes

Yes, paralell is not perfect, but with some brushes is enough. Maybe if you share this with coders they will help you. :slight_smile:

Just now, mixbox released the website for testing:
https://scrtwpns.com/mixbox/painter/

5 Likes

It’s just like Rebelle 5 pro. You can tell it’s the same technology.

Interestingly, even if you use 100% opacity to paint, this is still useful because when two colors come into contact they create secondary colors . It’s subtle but it makes a big difference. Example:

but it’s not just with yellow and blue:

with:

without:
immagine

4 Likes

According their website , it seems that krita could use their code but first need to get in touch with their team and arrange the license.
Here’s their announcement:

Our goal was to make Mixbox practical, so that anyone could easily put it in their software. That’s why we packed all the physics into the RGB-in, RGB-out interface. Thanks to that, integrating Mixbox into is as easy as introducing a new blending mode. It’s just a drop-in for the lerp(rgb1, rgb2, t) function. All you need to do is download the code from our GitHub repo, and get in touch with us to arrange the license. You can reach us at: mixbox@scrtwpns.com

I don’t know if krita could get in touch with them?

1 Like

It is not possible unless they release the code in compatible license, it is said multiple times in this thread. They giving the license is like selling the license I presume and that is not compatible with Krita’s license which doesn’t add any monetary restrictions. Once their code ends up inside Krita, it can be used by anyone without their permission due to krita’s license. This is proprietary from the looks of it. Not Free software.

1 Like

Today, I tried to compile mixbox into a dll and then call it in python. I succeeded, but I don’t know how to output the complete calculation result to python. At present, I can only output the first value in the calculation result. If there is a solution, we can use mixbox correctly, such as adding to the plug-in.

1 Like