Troubleshooting
This is a list of common problems, their symptoms and solutions.
Contents
- 1 Shadowmasks are not baked
- 2 Shadowmasks are baked, but Unity renders real-time shadows instead
- 3 Using a version control system I copied the scene to another PC and it doesn't look right
- 4 Baking same asset in one scene breaks its UVs in another scene
- 5 Denoiser throws error 505
- 6 I get an “Out of memory” error
- 7 After importing Bakery I get errors containing “obsolete” and “UnityUpgradable”
- 8 I get a "Can't load" error
- 9 I get a "Launch timeout" error
- 10 I have an Android project, and lightmaps don't look good
- 11 I get too many lightmaps
Shadowmasks are not baked
Check following things:
- Bakery's Render Mode is set to Shadowmask.
- Masked lights have both Unity and Bakery light components on them.
- Masked Bakery light components have "Baked contribution" set to "Indirect and shadowmask".
Shadowmasks are baked, but Unity renders real-time shadows instead
You're in Distance Shadowmask mode, it's expected. Read more about the difference:
https://docs.unity3d.com/Manual/LightMode-Mixed-Shadowmask.html
https://docs.unity3d.com/Manual/LightMode-Mixed-DistanceShadowmask.html
- To switch between two modes, you can use "Distance Shadowmask" checkbox in Bakery main window.
- If you're on 5.6, go to Window->Lighting->Mixed Lighting->Lighting Mode to switch the mode.
Using a version control system I copied the scene to another PC and it doesn't look right
Make sure you followed version control guidelines.
Baking same asset in one scene breaks its UVs in another scene
The reason here is UV padding adjustment. It modifies the UVs in the asset, so spacing between UV charts is optimal, meaning they never leak over each other and there is no much wasted space. Unity has a manual Pack Margin option on model assets, but it’s limited since it applies the same exact value for all meshes inside the model, while each mesh can get drastically different size in the final lightmap based on its surface area. Therefore Bakery overrides it with automatically calculated per-mesh (instead of per-model) padding. However, because “optimal” varies depending on baking resolution, it can be problematic to reuse the same asset in isolated scenes with different lightmap size. There are multiple ways to solve it:
- Generate your own optimal UVs. UV padding adjustment only applies to models with auto-generated UV layout (aka “Generate Lightmap UVs” checkbox) and never touches custom data.
- Use UV padding: increase only checkbox and first bake the lowest resolution scene, and then the rest.
- Just disable UV padding adjustment.
- Use two different models for different lightmap resolutions, so each will get the most efficient set of UVs.
- Bake both scenes together.
Denoiser throws error 505
I get an “Out of memory” error
This means rendering needed more video memory from your GPU than it has available.
First, try closing any other graphics-intensive programs (browsers too).
If the problem persists, the most likely reason is that the resolution you selected is unreasonably high for the given scene. Resolution is defined by Texels per Unit (this section also has a list of reference values) or set explicitly in Lightmap Groups. Reducing it will help. You can always selectively use high resolution for important objects via Scale in Lightmap.
If the error happens during GI phase, try setting GI VRAM optimization to Force On in advanced settings.
If you have terrains in your scene, make sure Terrain optimization is enabled.
If you have a very high amount of painted trees on your terrain, try disabling the Export terrain trees option.
After importing Bakery I get errors containing “obsolete” and “UnityUpgradable”
Before importing Bakery, make sure you don't have any compilation errors in your project.
Restart Unity, reimport the package. Click “I made a backup, go ahead” if Unity asks.
See this page for more details.
It is also known that some versions of Unity Hub have a bug preventing API updater from running.
I get a "Can't load" error
If Bakery says it can't load something, make sure you have enough free disk space on the drive used for temporary data.
I get a "Launch timeout" error
This error can happen if your GPU took more time than it is allowed by Windows TDR.
- Try lowering the value of Tile Size, especially if it's higher than 512, so baking job is split into smaller chunks.
- Depending on the pass being processed, try lowering the Samples value (e.g. GI samples, Skylight samples, etc).
- Reduce geometric complexity of the scene, if tile size/samples don't help.
- As a last resort, disable TDR registry keys. This will prevent Windows from resetting the driver, but your computer may appear unresponsive during the bake.
I have an Android project, and lightmaps don't look good
Sometimes, when working on Android projects, you may encounter banding artifacts, with gradients having discrete steps of different hue. This is caused by texture compression and HDR encoding Unity uses for this platform, which often turns out to be "Double LDR" (see details). The problem is not exclusive to Bakery and will as well happen with built-in lightmaps.
Select lightmap assets and set texture compression quality to High or None (try both).
Note that setting it to None will use more video memory on the device.
I get too many lightmaps
Possible causes are:
- Texels Per Unit value is high or Max Resolution is low. Bakery packs objects from open scenes into multiple lightmap atlases and packs them as rectangles (in a fashion similar to this) with their size dependent on (surface area * texels per unit). If some object can't fit into existing atlases, a new one is allocated. New atlases are always as large as the Max Resolution parameter, or smaller (but not smaller than Min Resolution), if the estimated surface area of remaining unpacked objects is below some threshold. You can also increase Min Resolution a bit, replacing a bunch of small (but dense) maps with a few large (but possibly with some empty space).
- If you bake multiple open scenes and Split by scene checkbox is on, different scenes will never share the same lightmap, therefore multiplying their count.
- If Terrain optimization is on, terrains will always use a separate lightmap.
- If your scene has many objects with multiple LOD levels, currently this may pose a problem for the atlas packer. Internally Bakery splits the whole scene into a discrete set of "global" LOD levels based on LODGroup distances, so all close-up objects are packed in one set, all medium-distance objects go in another set, etc. Currently these sets can't share atlases with each other. This means if you have many objects with wildly varying LOD distances, you can end up with many lightmaps. Rounding LOD distances for some objects (e.g. 23% and 28% -> 25%) can help. This is a known issue and it will be improved in future versions.
Pre-atlasing your scene in your modelling package of choice and using the [Original UV] mode instead of relying on the auto-atlaser can significantly improve packing effectiveness.