Open lhecker opened 6 months ago
Not sure HDR/scRGB makes sense, but it's best to consider 10bit and P3 first, most modern monitors support them.
Not sure HDR/scRGB makes sense, but it's best to consider 10bit and P3 first, most modern monitors support them.
I'm currently using a monitor with HDR 10 and SDR + 95% P3 support.
With HDR off, setting opacity of background image at any value you want (I'm currently 20%), the image looks perfect.
But with HDR on, image looks nice only when setting opacity as 100%.
[!NOTE]
When taking screenshot with PixPin, HDR will temporarily off and goes back to SDR mode.
While decreasing opacity to 20%, background image becomes terrible (overexposure) ...
This may be caused by the lack of Alpha depth due to the R10G10B10A2 format.
My concern with HDR is mainly display life, which is not a problem for miniLED, but for OLED static HDR scenes are extremely dangerous.
Now I switch to another image as background and configure opacity back to 100%. The new image only takes 512x512 zone of my 3440x1440 screen at bottom right (keep black in other zone). It won't affect me when I'm using the terminal.
I would recommend just using acrylic or mica, they usually provide softer tones, which helps prevent visual fatigue. Mica looks pretty good in WCG/HDR.
I think it'd be kind of funny if we supported scRGB with half-precision floats, just like what DWM uses for composition on HDR displays. That would allow us, either just for fun when defining colors in a theme, or maybe for dithering, to use fine grained floating point brightness values and chromaticity (color) values. That way we could finally ship an official "Barbie+" theme were all colors are pink but some are even pinker than the others. Here's what scRGB looks like, the white triangle is sRGB:
(Source)
This requires two changes:
til::color
in most places inside WT as it's limited to sRGB. It's just fine for VT related code or code based aroundCOLORREF
, however. The settings model needs a color struct that can represent any arbitrary space and gamut in order to not be tied down to any particular representation. The render can then convert it losslessly to scRGB floats. This also avoids loss during blending.