From ede31fdd69bfcb03ce8d84c3cfd6a3f78a83ac29 Mon Sep 17 00:00:00 2001 From: Stanislav Denisov Date: Sat, 18 Oct 2025 08:31:11 +0200 Subject: [PATCH] Fix edge sampling in sharpen shader (#1245) Fix edge sampling in sharpen shader. --- WickedEngine/shaders/sharpenCS.hlsl | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/WickedEngine/shaders/sharpenCS.hlsl b/WickedEngine/shaders/sharpenCS.hlsl index 9889e0745..8895655d6 100644 --- a/WickedEngine/shaders/sharpenCS.hlsl +++ b/WickedEngine/shaders/sharpenCS.hlsl @@ -10,11 +10,13 @@ RWTexture2D output : register(u0); [numthreads(POSTPROCESS_BLOCKSIZE, POSTPROCESS_BLOCKSIZE, 1)] void main(uint3 DTid : SV_DispatchThreadID) { - float4 center = input[DTid.xy + int2(0, 0)]; - float4 top = input[DTid.xy + int2(0, -1)]; - float4 left = input[DTid.xy + int2(-1, 0)]; - float4 right = input[DTid.xy + int2(1, 0)]; - float4 bottom = input[DTid.xy + int2(0, 1)]; + const float2 uv = (DTid.xy + 0.5f) * postprocess.resolution_rcp; + + float4 center = input.SampleLevel(sampler_linear_clamp, uv, 0); + float4 top = input.SampleLevel(sampler_linear_clamp, uv + float2(0, -1) * postprocess.resolution_rcp, 0); + float4 left = input.SampleLevel(sampler_linear_clamp, uv + float2(-1, 0) * postprocess.resolution_rcp, 0); + float4 right = input.SampleLevel(sampler_linear_clamp, uv + float2(1, 0) * postprocess.resolution_rcp, 0); + float4 bottom = input.SampleLevel(sampler_linear_clamp, uv + float2(0, 1) * postprocess.resolution_rcp, 0); output[DTid.xy] = center + (4 * center - top - bottom - left - right) * postprocess.params0[0]; }