From 1030cea64b342057f96e4e1dfb03df75d8397c2d Mon Sep 17 00:00:00 2001 From: doodlum <15017472+doodlum@users.noreply.github.com> Date: Sat, 13 Sep 2025 01:09:23 +0100 Subject: [PATCH] chore: improve contrast function --- package/Shaders/ISHDR.hlsl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package/Shaders/ISHDR.hlsl b/package/Shaders/ISHDR.hlsl index f61cd82c02..52b80ab175 100644 --- a/package/Shaders/ISHDR.hlsl +++ b/package/Shaders/ISHDR.hlsl @@ -116,7 +116,9 @@ PS_OUTPUT main(PS_INPUT input) hdrColor += DisplayMapping::RangeCompress(max(0, Param.x - hdrColor)) * bloomColor; - hdrColor = pow(abs(hdrColor) / avgValue.x, Cinematic.z) * avgValue.x * sign(hdrColor); + float3 contrastOriginal = lerp(avgValue.x, hdrColor, Cinematic.z); + float3 contrastShadows = pow(abs(hdrColor) / avgValue.x, Cinematic.z) * avgValue.x * sign(hdrColor); + hdrColor = contrastOriginal < hdrColor ? contrastShadows : contrastOriginal; float hdrLuminance = Color::RGBToLuminance(hdrColor); hdrColor = Cinematic.w * lerp(lerp(hdrLuminance, hdrColor, Cinematic.x), lerp(hdrColor, hdrLuminance, saturate(hdrLuminance)) * Tint.xyz, Tint.w).xyz;