diff --git a/package/Shaders/AmbientCompositeCS.hlsl b/package/Shaders/AmbientCompositeCS.hlsl index efdd5c6b6e..629697c867 100644 --- a/package/Shaders/AmbientCompositeCS.hlsl +++ b/package/Shaders/AmbientCompositeCS.hlsl @@ -79,10 +79,10 @@ void SampleSSGI(uint2 pixCoord, float3 normalWS, out float ao, out float3 il) float skylightingDiffuse = SphericalHarmonics::FuncProductIntegral(skylightingSH, SphericalHarmonics::EvaluateCosineLobe(skylightingNormal)) / Math::PI; skylightingDiffuse = saturate(skylightingDiffuse); - skylightingDiffuse *= 1.0 + saturate(normalWS.z) * (1.0 - SharedData::skylightingSettings.MinDiffuseVisibility); - skylightingDiffuse = lerp(1.0, skylightingDiffuse, Skylighting::getFadeOutFactor(positionMS.xyz)); + skylightingDiffuse *= 1.0 + saturate(normalWS.z) * (1.0 - SharedData::skylightingSettings.MinDiffuseVisibility); + skylightingDiffuse = Skylighting::mixDiffuse(SharedData::skylightingSettings, skylightingDiffuse); visibility = skylightingDiffuse; diff --git a/package/Shaders/Lighting.hlsl b/package/Shaders/Lighting.hlsl index d52cfa5435..d7331595be 100644 --- a/package/Shaders/Lighting.hlsl +++ b/package/Shaders/Lighting.hlsl @@ -2461,7 +2461,7 @@ PS_OUTPUT main(PS_INPUT input, bool frontFace if (Permutation::ExtraShaderDescriptor & Permutation::ExtraFlags::IsTree) { // Remove AO float3 originalVertexColor = vertexColor; - vertexColor = vertexColor / vertexAO; + vertexColor = lerp(vertexColor, vertexColor / vertexAO, sqrt(vertexAO)); vertexColor = lerp(input.Color.xyz, vertexColor, skylightingFadeOutFactor); // Apply AO to direct lighting only