OK, so after learning about color space, I think I’ve figured out the issue.
So here’s the bottom line: I think the issue is that under Lit Shading, the Material’s Color value seems to be directly used as a Linear Color value without conversion.
That means, even if you create a color constant node, pick a color (which is in sRGB), and plug it into the Material’s Color, the shader just treats it as a linear color and uses it directly in calculations. Then, when calculations are done, it converts the final result from linear back to sRGB for display — this causes the color to be incorrectly double-mapped into the sRGB space, which makes the output color appear washed out and lighter than it should be.
I tested this in Unreal Engine. I first connected the sRGB texture to the Base Color input (which expects sRGB) in the standard way, and it worked fine:
Then, to reproduce the issue, I deliberately treated the sRGB color value as a linear value, and ran it through the sRGB conversion formula (so it’s “sRGB To sRGB” actually):
As you can see, the output turned into this funny yellow color,
which is pretty much identical to the result I got in the Flax Engine:
So, back in the Flax Engine, I applied the formula to convert the sRGB color to linear. Now, the output basically matches what I expected to see:
There is one thing need to note: in the Unlit View, the rendering result looks correct and colors appear as expected:
comparing: