4
$\begingroup$

Please consider this image:

Color question

The color in the top swatch, labeled "original color" is made from an image I downloaded from the web. I cut out a bit of a colored area that I found appropriate, scaled the image to a size of 1 x 2 pixels, to average out the graininess of the image, then scaled it back up to get an average hue. According to the color picker tool in GIMP, the hex value for this color is 485938, but in the image it is actually 445735. The color in the second swatch is what I obtained when I set this as the foreground color in GIMP, and according to the GIMP color picker tool, the second swatch is, in fact, 485938. The color in the third swatch, labeled "Blender representation", is what showed in the diffuse panel of the Material Properties editor when I entered the same hex value as a hex value in the Blender Color chooser; however it displayed in the diffuse panel as 51a83f. The green color in the fourth swatch is the result when this diffuse color was applied to a series of objects, and rendered using Blender Internal; the color from the render is 2a5c20.

How do I get the bottom swatch to match one of the top two?

$\endgroup$
  • $\begingroup$ releted: blender.stackexchange.com/questions/28284/… $\endgroup$ – cegaton Dec 22 '15 at 6:17
  • $\begingroup$ @cegaton, I reviewed that question and answer before I posted mine, and I don't think thery're related. Neither of the bottom two colors involve anything that was saved from Blender; but rather are captured from screen shots. GIMP was involved only because I needed to do some processing on the image I obtained from the web. $\endgroup$ – brasshat Dec 22 '15 at 6:22
  • $\begingroup$ related: blender.stackexchange.com/questions/31068/… $\endgroup$ – cegaton Dec 22 '15 at 6:26
3
$\begingroup$

Timaroberts solution will not work because RGB encoded data is relative. That is, for every RGB colour space, the hex values will be different and therefore, without knowing what colour space a hex value is relative to, all degrees of accuracy including floating point representations will be wrong. Never, ever let someone tell you that using a different numerical representation such as hexadecimal or floating point values with many digits of accuracy will solve your colour confusion. No such approach can, and is rooted in misinformation.

This is a simple question to a long and winding path down colour, pixels, and management thereof.

There is also typically no "Blender Representation" but rather different views on the reference data. In this particular instance, the colours in the reference space are scene linear, and the viewport and UI elements may or may not be linearized values depending. There can also be a discrepancy with how OpenGL approximately renders a face versus the actual render.

You are also confusing a display referred imaging application (GIMP) to an application that uses an internally scene referred model (Blender Cycles) which will cause no end of fits for your poor brain.

TL;DR How a colour is stored / encoded as an RGB triplet has different forms and reasons. Within Blender, there are many, many different and diverging views of this reference data which may not align with each other or one's (seemingly reasonable) expectations.

Some answers that might help to illuminate the complex issues at hand:

Colour shift when viewing render outside of blender
When to use sRGB and when not to?

$\endgroup$
1
$\begingroup$

There is a method I've used before for finding colors that needed to be exact. Apply the image that has the desired color as a texture to an object in Blender, say a plane. Then use the color picking tool to find the hex number for the color you need. Suzanne below has a diffuse hex value of #4D5F3A.

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.