From 8cd74e00275aabff0d4b8803db65266c16506cad Mon Sep 17 00:00:00 2001 From: Tim <15017472+doodlum@users.noreply.github.com> Date: Sun, 9 Mar 2025 16:18:11 +0000 Subject: [PATCH 1/2] chore(sss): optimise final pass --- .../Shaders/Features/SubsurfaceScattering.ini | 2 +- .../Shaders/SubsurfaceScattering/SeparableSSS.hlsli | 2 +- .../Shaders/SubsurfaceScattering/SeparableSSSCS.hlsl | 11 +++++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/features/Subsurface Scattering/Shaders/Features/SubsurfaceScattering.ini b/features/Subsurface Scattering/Shaders/Features/SubsurfaceScattering.ini index 1f0c0722b9..4fde3fbde6 100644 --- a/features/Subsurface Scattering/Shaders/Features/SubsurfaceScattering.ini +++ b/features/Subsurface Scattering/Shaders/Features/SubsurfaceScattering.ini @@ -1,2 +1,2 @@ [Info] -Version = 2-0-0 \ No newline at end of file +Version = 2-0-1 \ No newline at end of file diff --git a/features/Subsurface Scattering/Shaders/SubsurfaceScattering/SeparableSSS.hlsli b/features/Subsurface Scattering/Shaders/SubsurfaceScattering/SeparableSSS.hlsli index af6d873b6e..5021590fdd 100644 --- a/features/Subsurface Scattering/Shaders/SubsurfaceScattering/SeparableSSS.hlsli +++ b/features/Subsurface Scattering/Shaders/SubsurfaceScattering/SeparableSSS.hlsli @@ -159,7 +159,7 @@ float4 SSSSBlurCS( float3 color = ColorTexture[coords].rgb; #if defined(HORIZONTAL) - color.rgb = Color::GammaToLinear(color.rgb); + color.rgb = Color::GammaToTrueLinear(color.rgb); #endif float depth = DepthTexture[coords].r; diff --git a/features/Subsurface Scattering/Shaders/SubsurfaceScattering/SeparableSSSCS.hlsl b/features/Subsurface Scattering/Shaders/SubsurfaceScattering/SeparableSSSCS.hlsl index 77eb88dd5b..5e50b05ff0 100644 --- a/features/Subsurface Scattering/Shaders/SubsurfaceScattering/SeparableSSSCS.hlsl +++ b/features/Subsurface Scattering/Shaders/SubsurfaceScattering/SeparableSSSCS.hlsl @@ -35,11 +35,14 @@ cbuffer PerFrameSSS : register(b1) #else float sssAmount = MaskTexture[DTid.xy].x; - bool humanProfile = MaskTexture[DTid.xy].y == sssAmount; - float4 color = SSSSBlurCS(DTid.xy, texCoord, float2(0.0, 1.0), sssAmount, humanProfile); - color.rgb = Color::TrueLinearToGamma(color.rgb); - SSSRW[DTid.xy] = float4(color.rgb, 1.0); + if (sssAmount > 0.0){ + bool humanProfile = MaskTexture[DTid.xy].y == sssAmount; + + float4 color = SSSSBlurCS(DTid.xy, texCoord, float2(0.0, 1.0), sssAmount, humanProfile); + color.rgb = Color::TrueLinearToGamma(color.rgb); + SSSRW[DTid.xy] = float4(color.rgb, 1.0); + } #endif } From 919d079fa6753573cae5fe8519752f10af45405d Mon Sep 17 00:00:00 2001 From: doodlum Date: Sun, 9 Mar 2025 16:20:01 +0000 Subject: [PATCH 2/2] =?UTF-8?q?style:=20=F0=9F=8E=A8=20apply=20clang-forma?= =?UTF-8?q?t=20changes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Shaders/SubsurfaceScattering/SeparableSSSCS.hlsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/Subsurface Scattering/Shaders/SubsurfaceScattering/SeparableSSSCS.hlsl b/features/Subsurface Scattering/Shaders/SubsurfaceScattering/SeparableSSSCS.hlsl index 5e50b05ff0..bf5bcd1961 100644 --- a/features/Subsurface Scattering/Shaders/SubsurfaceScattering/SeparableSSSCS.hlsl +++ b/features/Subsurface Scattering/Shaders/SubsurfaceScattering/SeparableSSSCS.hlsl @@ -36,7 +36,7 @@ cbuffer PerFrameSSS : register(b1) float sssAmount = MaskTexture[DTid.xy].x; - if (sssAmount > 0.0){ + if (sssAmount > 0.0) { bool humanProfile = MaskTexture[DTid.xy].y == sssAmount; float4 color = SSSSBlurCS(DTid.xy, texCoord, float2(0.0, 1.0), sssAmount, humanProfile);