diff --git a/com.unity.render-pipelines.high-definition/CHANGELOG.md b/com.unity.render-pipelines.high-definition/CHANGELOG.md index 6e902962e90..f53d185d8d8 100644 --- a/com.unity.render-pipelines.high-definition/CHANGELOG.md +++ b/com.unity.render-pipelines.high-definition/CHANGELOG.md @@ -621,6 +621,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Cloned volume profile from read only assets are created in the root of the project. (case 1154961) - Fixed Wizard check on default volume profile to also check it is not the default one in package. - Fix erroneous central depth sampling in TAA. +- Fixed light layers not correctly disabled when the lightlayers is set to Nothing and Lightlayers isn't enabled in HDRP Asset ### Changed - Improve MIP selection for decals on Transparents diff --git a/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs b/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs index 8fd41fe13c4..8ed3f8f2455 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs @@ -1191,7 +1191,7 @@ internal void GetDirectionalLightData(CommandBuffer cmd, HDCamera hdCamera, Visi var lightData = new DirectionalLightData(); - lightData.lightLayers = additionalLightData.GetLightLayers(); + lightData.lightLayers = hdCamera.frameSettings.IsEnabled(FrameSettingsField.LightLayers) ? additionalLightData.GetLightLayers() : uint.MaxValue; // Light direction for directional is opposite to the forward direction lightData.forward = light.GetForward(); @@ -1343,7 +1343,7 @@ internal void GetLightData(CommandBuffer cmd, HDCamera hdCamera, HDShadowSetting var lightType = processedData.lightType; var visibleLightAxisAndPosition = light.GetAxisAndPosition(); - lightData.lightLayers = additionalLightData.GetLightLayers(); + lightData.lightLayers = hdCamera.frameSettings.IsEnabled(FrameSettingsField.LightLayers) ? additionalLightData.GetLightLayers() : uint.MaxValue; lightData.lightType = gpuLightType; @@ -1840,7 +1840,7 @@ internal bool GetEnvLightData(CommandBuffer cmd, HDCamera hdCamera, in Processed return false; InfluenceVolume influence = probe.influenceVolume; - envLightData.lightLayers = probe.lightLayersAsUInt; + envLightData.lightLayers = hdCamera.frameSettings.IsEnabled(FrameSettingsField.LightLayers) ? probe.lightLayersAsUInt : uint.MaxValue; envLightData.influenceShapeType = influence.envShape; envLightData.weight = processedProbe.weight; envLightData.multiplier = probe.multiplier * m_indirectLightingController.indirectSpecularIntensity.value;