Material color is not accurate

Hello !
I have am working on a research project and we want the scene to be as realistic as possible, we have been looking at how physically based light and color simulation works but i am struggling to understand the difference in color between the base color i set which is beige and the actual rendered color which is red, and persists even with playing with rayleigh scattering and mie parameters :


Can anyone help me figure out what is at the core of this difference ?
Thanks in advance !

When you are working in the material editor and you update properties on your material, often you will need to click Apply or Save before the material swatch will update.

If your goal is to confirm only if a color value is working properly, you could set your material’s Shading Model to Unlit, and plug your color into the Emissive Color attribute. This will create a material that does not accept light, and instead will render a solid color.

How are you getting your color values that you are trying to render? Are you entering an RGB value? A hex code? If it is a hex code, the Unreal material editor accepts both SRGB and Linear hex codes, and you’ll need to make sure you are using the right one. Typically the SRGB one.

If you can share more details on how have gotten to this point, I can try to help more.

1 Like

Another factor may be tonemapping. The difference between the color in the material does seem surprisingly different from the input though. If you create a new material with a different color does the same thing happen?

1 Like

Thank you for your reply, i ll be trying to look at that and keep you updated !

I will also be looking into this, thank you !

So I am looking into it for the first point, I am indeed saving and applying the changes to my material.
I did test with emissive as base and unlit mode and it is closer to how it should look like, the other parameters are all default (opaque surface with a value of 0.8 roughness and 0.2 specular and no metalness and the rest is all default).
This is how it looks like :


Still a bit darker than it should be but at least it is not red. For the way i plug in the color i just used the color wheel and it gave me both the srgb and linear hex codes, when i copy the color, i pick the srbg hex code and it sets the linear alike by default (which is expected i think) and finally i have gamma correction preview on :

With gamma correction preview off :

But this is just for preview, from what i understood, UE doesnt work in the gamma corrected space, it does all processes in the linear space and the gamma correction is only applied by the monitor at the very end as necessary (like any other monitor) unlike Unity which gives you the option (unless in hdrp) to work on gamma corrected color values.

For the working color space we opted for the the one with widest gamut (aces p0) :


This is because that is the goal of the research project (to study how realistic naturally lit interior environments in virtual reality are with cognitif and perceptif tests that will be provided from another lab) and so we want the most photo realistic/ physically correct values and so that implies working with a wide color gamut, but i think aces describes a set of specifications to be used, not just the colorspace but also implies using a filmic tonemapper so i have no choice over what tonemapper to use right ?
With another color :


I will have to admit the difference in the new colors is less subtle but it is there ?

I am finding out the lighter the color tone is, the biggest the difference :


Hmm that is interesting. I would be curious if you set the colorspace settings to their default, if the colors would show up as what you expect to see. If that is the case, it would narrow it down to the ACES AP0 you have set it to. I’m sorry to say I am not familiar with working in that colorspace.

It is possible to disable the tone mapper in a post process volume, as well as in the Preview Scene Settings of the Material Editor. You could try setting Tone Curve Amount to 0 and apply your colorspace alterations in a Post tool such as Nuke, or Davinci.

1 Like

This appears to be a bug with the color picker built into the base color.
Using built in picker:


Plugging in a color picker:

The same values were used for both. The built in picker appears to not be applying the correct sRGB remapping. Here is a picker where I have manually transposed the linear hex value into the sRGB hex slot. Notice it is the same shade as the first image.

You should submit a bug report.
In the meantime, the work around is to use the vector 3 node and manually plug it into the base color.

2 Likes

I will try that out and see if it changes stuff but the beige material appearing reddish has been from the start of the project before even tweaking the working colorspace. I will try in all cases to tweak the tonemapper to see how it affects stuff. Thank you !

This makes sense, tryiingg this right now. I will have to also run other tests to see if this is the only cause of that difference or is there other stuff that might affect it (because for me the reddish color doesnt match neither the linear or srgb, if there is a problem with just remapping it would appear a darker shade of brown but no red undertones, but maybe the natural liight and all does that for certain colors can be more noticeable) but it seems like the bug you indicated is indeed the main reason, gonna report the bug and mark this as solved, thank youu !
Here is what i got :
Plugging in a vec3 + lit :


Plugging in a vec3 + unlit :

Color picker for the same shade + lit :

Color picker + unlit :

This also was indeed part of the problem, the working color space ACES P0 did also drastically change the tone, going back to a sRGB(Rec709) color space displayed the materials exactly as the color set in the material editor. Going to be looking more into this as a next part of my project to know which colorspace to work with and how to create intended materials in it. Thank you !

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.