Color space conversion in the UI composition is incorrect on DX12 HDR.
In the main() function In CompositeUIPixelShader.usf, you can see the following color space transform.
// sRGB -> RRT -> ODT
UIColor.xyz = ColorLookupTable(UIColor.xyz);
But it seems that the input of ColorLookupTable() must be linear color space. So it makes UI color incorrect on HDR.
[Link Removed]
[Link Removed]
Adding sRGB->Linear transform before the function fix this problem.
// sRGB -> Linear -> RRT -> ODT
UIColor.xyz = sRGBToLinear(UIColor.xyz);
UIColor.xyz = ColorLookupTable(UIColor.xyz);
[Link Removed]
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-117936 in the post.
| 5 |
| Component | UE - Graphics Features |
|---|---|
| Affects Versions | 4.26, 4.27, 5.0-early access, 5.0 |
| Target Fix | 5.1 |
| Fix Commit | 19918995 |
|---|
| Created | Jun 11, 2021 |
|---|---|
| Resolved | Apr 26, 2022 |
| Updated | May 6, 2022 |