Until recently, I’ve frequently encountered difficulties when attempting to match colors in my renders to specific predefined shades. To solve this problem, I’ve decided to develop a practical addon called Color Match.
Here’s how it works: To achieve a color match, start by defining your target color. Next, select the desired color property within a material or compositor node. The Color Match addon takes it from there, performing iterative rendering on a small portion of the image, fine-tuning the selected color trying to reach the desired shade. It’s a streamlined and efficient way to ensure your colors align with your vision.
I hope this will help some of you. Any ideas for improvements and additional features are also welcome.
I do know the standard colorspace is much easier to use for matching.
With this I am able to keep using superior color spaces for rendering and more importantly it also helps with matching colors of the objects even when scene containes colored lights.
I have had multiple clients wanting an object to be specific color to match with their brand and didn’t find any other reasonable way to do this.
I am not completely sure, if this has to do with your problem. Blender has two subtypes of color properties - “COLOR” and “COLOR_GAMMA”. The usual version in other software is the gamma corrected one, which is also used in most parts of Blender, but apparently not everywhere.
eevee viewport looks different from renderview of a (viewport render) and both look different compared to loading the render in another graphics prog , all other graphic progs looks the same though …
also try importing an image plane and set it to texture only … now compare : the image planes image has differnet colors .
ok i was wrong , i probably touched the gamma slider and saved default scene without realizing. it was slightly set off on my scenes lol… colors match , i confirm
edit: i did change the gamma (deliberatly), but it isnt exported/baked into the exported images.
importnat to note : gamma settings are only applied within blenders ui , its not baked into the image. the renderview will update on rendersettings gamma change too (without re-rendering).
so to keep colors the same you must work with a gamma of 1 in the rendersettings
@joseph Standard, filmic and AgX are view transforms. sRGB, DCI-P3 and BT.2020 are colorspaces.
It’s a very interesting thing you built @miham. I don’t think it makes much sense, as the perceived colour of an object does not match the colours displayed on screen. But it’s definitely a useful tool. I’ll try it out in the near future.
Indeed. This comes up every time there’s a discussion about view transforms, colorspaces, etc. @claus summed up the general scientific consensus perfectly:
To which my response is: this isn’t about the perceived color of an object. It’s about a perfect HEX color code match to make a client happy. It doesn’t matter if that’s correct from a color science point of view, it matters if I get paid or not (really, whether the client is happy or not.) People worried about perceived color shouldn’t use Standard, this add-on, etc. It’s not for them. It’s for people who have to color match by RGB or HEX, regardless of if that is physically possible or not
Let’s say you have a more complex shape like a car that has no flat surfaces. Which part of the car do you choose to match? The final result can be very very different depending on which part you choose.
I think there’s many sRGB colours you simply can’t reach with this method because the working space is already sRGB. so if your target is e.g. - and I’m guessing here - RGB(0.9,0,0) it will simply not work using a view transform other than standard. Just like the full black situation.
@miham does this work with different working color spaces or special compositing setups? Does the add-on only look at the final post-comp render and then sample?
I don’t think there is any way to match perceived colors automatically because they vary slightly for everyone and depend on how one looks at an image.
The two problems you mentioned are definitely present. For complex objects and colors that cannot be replicated, the only other solution I see is to match just the hue instead of RGB.
Also, yes, the current version renders whatever is connected to the composite node and then samples the color. This approach avoids the problems related to color spaces. Do you have any ideas for a system that could handle this in a better way?
I think here are two methods mixed.If you want to render brand logos as example, you would choose standard CM to render a flat color precisely.
On the other hand if you have a real object as a car in a 3D real highdynamic range lighting,then you would give your car a Physical correct material as scanned stuff from quixel etc and the correct colors from your brand.The rest is lighting ,camera settings,exposure,grading all the same work as with a real camera.
If your goal is to match a color in a 3D render,then one of the first things to match is the colortemp of the lighting, in example the neutral white balance.Otherwise the whole scene has a colorshift as you know.
(If your goal is a neutral render look ofc)
For this reason you could render with a colorchart for color and contrast comparisons and matching.