Search Issue Tracker
By Design
Votes
0
Found in
2021.3.33f1
2022.3.15f1
2023.2.4f1
2023.3.0a18
Issue ID
UUM-58540
Regression
No
Lightmaps are baked incorrectly for GameObjects when their Position is <=-2048 or >=2048 on any of the coordinates
Reproduction steps:
1. Open the attached “IN-59961 Lightmap Bug - 3D Built-in.zip“ project
2. Open the “SampleScene”
3. Select the “Cube” GameObject in the Hierarchy
4. Press the F key, while hovering over the Scene view with the mouse, to focus on the selected GameObject
5. Select the “Shadowmask” Draw Mode in the Scene view control bar
6. Observe the red-coloured GameObjects in the Scene view from various angles
Expected result: The GameObjects to both sides of the “Cube” look identical (in terms of which faces are red and which are dark grey)
Actual result: The GameObjects to both sides of the “Cube” look different (in terms of which faces are red and which are dark grey)
Reproducible with: 2021.3.33f1, 2022.3.15f1, 2023.2.4f1, 2023.3.0a18
Reproduced on: Windows 11 Pro (23H2)
Not reproduced on: No other environment tested
Notes:
- GameObjects, that are contributing to Global Illumination, should appear red in places where the “Directional Light” is hitting them directly and dark grey where the shadows land but that is not the case for GameObjects with a Position of >=2048 or <= -2048 on any of the coordinates
- The “Cube” GameObject in the attached project is used as a line displaying where the 2048 value on the x coordinate is
- Reproducible with the “3D”, “3D (URP)” and “3D (HDRP)” Project Templates (no other Project Templates tested due to time constraints and consistent results between the tested ones)
- Reproducible in a new project
- Reproducible in the Player
- The issue is the most visible with the “Shadowmask” Draw Mode (not supported by HDRP) in the Scene view but can also be observed with the “Baked Lightmap”, “Directionality”, “Shaded” and “Shaded Wireframe” Draw Modes
-
djarcas
Jan 15, 2024 11:14
The fix simply doesn't work, and causes other errors elsewhere.
Whilst I haven't got access to the code, it seems like a simpler fix would be using doubles instead of floats, or dynamically increasing the Pushoff parameter on a per-facet basis, based on that's facets absolute distance from the centre of the universe?
At the very least, the Pushoff parameter could be automatically calculated based on the further light-mapped facet for your Lightmap Parameters asset.
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
- Expendable property in Inspector Window collapses when an item is added to the property's list
- Unity Editor Preferences window menu labeled "Settings" on macOS devices
- Default value in the Script is not assigned when applying the UI Toolkit ObjectField
- Private field value assignment via Script is not applied when you enter the Play Mode for the first time after the change
- There is an ability to switch to VisionOS module even though the installation of the module has failed
Resolution Note:
Thank you for submitting this issue to us. There is quite an easy fix for it. If you assign a custom Lightmap Parameters asset to you Lighting Settings, you will be able to adjust the "Pushoff" parameter. Increasing that until you get the desired results (but no more!) will fix the issue you're seeing.
This issue is caused by floating point errors in the rays and unfortunately tthere is no one-size-fits-all value.