Search Issue Tracker
By Design
Votes
4
Found in
2021.3.18f1
2022.2.5f1
2023.1.0b2
Issue ID
UUM-26222
Regression
Yes
[URP] Light culling layers don't work when Graphics API is set to anything except OpenGL
Reproduction steps:
1. Open the attached “BugRepro” project
2. Open the “Assets/Scenes/SampleScene.unity” scene
3. In the Hierarchy View, click on “Cube (0)” GameObject
4. In the Inspector View, observe the Layer
5. In the Hierarchy View, click on “Cube(1)” GameObject
6. In the Inspector View, observe the Layer
7. In the Hierarchy View, click on “Point Light” GameObject
7. In the Inspector View, observe the “Culling Mask” under Light Components Rendering dropdown
Expected result: “Cube (1)” GameObject is not lit up when it has a layer different from the “Point Light” GameObjects' Culling Mask layer
Actual result: “Cube (1)” GameObject is lit up the same way as “Cube (0)” GameObject, although they have different Culling Mask layers
Reproducible with: 2021.3.18f1, 2022.1.0a11, 2022.2.5f1, 2023.1.0b2
Not reproducible with: 2020.3.45f1, 2022.1.0a10
Reproducible on: Ubuntu 20.04, Windows 11 Pro 22H2, Intel MacOS 13.1
Note: Reproduces with Vulkan, Metal, Direct3D11, and Direct3D12 Graphics APIs
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- “Remove Unused Overrides” available on not loaded Scene and throws “ArgumentException: The scene is not loaded” warning
- Adaptive Probe Volume occlusion edge is calculated incorrectly when viewing probes near geometry edges
- Sampling a texture using an HLSL file throws shader errors and the code does not compile
- "Graphics.CopyTexture called with null source texture" error when Base Camera of an Overlay Camera is removed with DX11 Graphics API and Compatibility Mode enabled
- WebGL sends wrong value with large numbers when SendMessage function is used
Resolution Note:
This projects rendering mode is set to Deferred, Light culling via layers is not supported for opaque objects in this mode. The reason it works when set to OpenGL is that the rendering will fallback to Forward due to Deferred not being supported in that API.