What color codes are we actually using?

I was building a car and had to choose the color. This time I wanted to copy a color I had seen elsewhere. I had the HSV code of the color (222, 90, 76, in case you’re interested in re-enacting the moment), so I went into HSV mode and typed in the values… which made no sense. I went online and searched the color, found it and confirmed that the code I had was indeed correct.
I checked every single color code method I could find and none matched Automation’s HSV or RGB values you can input. The only way to get an exact color you already know is the Hex code, which is the only one working as it should.

This led me to the question: what color code method is Automation actually using when you select either RGB or HSV? They do not match with actual RGB/HSV values, nor do they match with other codes.
Following this, wouldn’t it be understandable (to say the least) to make a change and implement actual RGB/HSV codes directly in the game?

6 Likes

Images of such colors with associated codes.

HSV     222, 90, 76
RGB     19, 72, 194
RGB %   7, 28, 76
HSL     222, 82, 42
Hex     1348C2

222-90-76

fake-222-90-76
which is actually

HSV     213, 65, 89
RGB     78, 145, 226
RGB %   31, 57, 89
HSL     213, 72, 60
Hex     4E91E2

213-65-89

4 Likes

Oh damn… that would explain a lot in my struggles to get the paints I want. I thought it was weird lighting, but it’s actually a very skewed colour palette.
(although something else is also weird, since you can’t really get a black metallic for example - at best it will look dark graphite)

1 Like

I’ve kept this in mind when making custom paints, and exploited it to get the colors I want.

1 Like

what you’re observing here is the difference in colourspace between what you’re used to (RGB), and what UE4 (the engine Automation is made in) uses (sRGB).

the tl;dr of it is: The colour picker uses sRGB colourspace. use an RGB>sRGB converter (there are many online) to convert the values you want to use into the values you need to use, or adjust the Value by V^2.2

the long answer is:

the colour picker uses the following float values(numbers):

  • Hue: linear 0-360
  • Saturation: linear 0-1
  • Value: sRGB (colourspace) 0-1 (rgb (colourspace) to srgb (colourspace) conversion is roughly Value(brightness)^2.2)
  • Red/Green/Blue: sRGB 0-1

+ For all values(brightness) (so R,G,B, and V) in the lowest 10% of the sRGB colourspace (on non-metallic surfaces with high rougness) and lerping linearly toward 0%, the specular output of the material is reduced toward zero to fake surfaces (like vantablack) that arent correctly represented by ue4’s microfacet shader. this is required for all those really dark and thick surfaces, like velvet and vantablack, that aren’t normal flat surfaces. the additional physical depth created by these materials reduces their visible brightness significantly, and cannot be represented correctly in UE4 without this additional specular reduction.
the full math for how this happens is as follows:


- - -

eventually, perhaps, we could add additional modes to the colour picker, specifically for clarifying this problem and providing a solution.
the drop-down menu is a drop-down for two reasons, and one of them is the flexibility to add more options.
specifying these current ones as sRGB, and adding two new RGB(colourspace, so one linear RGB and one linear HSV) options should be very easy to do :slight_smile:

10 Likes