From bf370041946613c03ab11ff8c3864e549c053fdc Mon Sep 17 00:00:00 2001 From: Matthias Fax Date: Tue, 15 Jul 2025 15:15:09 +0200 Subject: [PATCH] feat: ignore mouse-over-sky autofocus This disables the mouse-based autofocus to focus on the sky, retaining the existing focal points under the horizon. --- Shaders/CinematicDOF.fx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Shaders/CinematicDOF.fx b/Shaders/CinematicDOF.fx index 54c8c2a..ba32b88 100644 --- a/Shaders/CinematicDOF.fx +++ b/Shaders/CinematicDOF.fx @@ -1161,9 +1161,16 @@ namespace CinematicDOF fragment = UseAutoFocus ? lerp(tex2D(SamplerCDPreviousFocus, float2(0, 0)).r, ReShade::GetLinearizedDepth(AutoFocusPoint), AutoFocusTransitionSpeed) : (manualFocusPlaneValue / 1000); #else + float previousFocus = tex2D(SamplerCDPreviousFocus, float2(0, 0)).r; float2 autoFocusPointToUse = UseMouseDrivenAutoFocus ? MouseCoords * BUFFER_PIXEL_SIZE : AutoFocusPoint; - fragment = UseAutoFocus ? lerp(tex2D(SamplerCDPreviousFocus, float2(0, 0)).r, ReShade::GetLinearizedDepth(autoFocusPointToUse), AutoFocusTransitionSpeed) - : (ManualFocusPlane / 1000); + float newFocusTarget = ReShade::GetLinearizedDepth(autoFocusPointToUse); + + if (newFocusTarget >= 0.999f) + { + newFocusTarget = previousFocus; + } + + fragment = UseAutoFocus ? lerp(previousFocus, newFocusTarget, AutoFocusTransitionSpeed) : (ManualFocusPlane / 1000.0f); #endif }