The Progressive Lightmapper is a fast path-tracing-based lightmapper system that provides baked lightmapsA pre-rendered texture that contains the effects of light sources on static objects in the scene. Lightmaps are overlaid on top of scene geometry to create the effect of lighting. More info
See in Glossary and Light ProbesLight probes store information about how light passes through space in your scene. A collection of light probes arranged within a given space can improve lighting on moving objects and static LOD scenery within that space. More info
See in Glossary with progressive updates in the Editor. It requires non-overlapping UVs with small area and angle errors, and sufficient padding between the charts.
The Progressive Lightmapper takes a short preparation step to process geometry and instance updates, and generates the G-buffer and chart masks. It then produces the output immediately and progressively refines it over time for a much-improved interactive lighting workflow. Additionally, baking times are much more predictable because the Progressive Lightmapper provides an estimated time while it bakes.
The Progressive Lightmapper also bakes global illuminationA group of techniques that model both direct and indirect lighting to provide realistic lighting results.
See in Glossary (GI) at the lightmap resolution for each texel individually, without upsampling schemes or relying on any irradiance caches or other global data structures. This makes it robust and allows you to bake selected portions of lightmaps, which makes it faster for you to test and iterate on your SceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary.
For an in-depth video showing the interactive workflow, see Unity’s video walkthrough: In Development - Progressive Lightmapper (YouTube).
You can choose between two backends for the Progressive Lightmapper. The Progressive CPU Lightmapper backend is a backend for the Progressive Lightmapper that uses your computer’s CPU and system RAM. The Progressive GPU Lightmapper is a backend for the Progressive Lightmapper that uses your computer’s GPU and VRAM.
For information on the Progressive GPU Lightmapper backend, see the Progressive GPU Lightmapper.
See render pipeline feature comparison for more information about support for the Progressive Lightmapper across render pipelinesA series of operations that take the contents of a Scene, and displays them on a screen. Unity lets you choose from pre-built render pipelines, or write your own. More info
See in Glossary.
The Apple silicon version of the Unity Editor is not compatible with the CPU Progressive Lightmapper. However, it is compatible with the Progressive GPU Lightmapper.
To use the Progressive Lightmapper:
You can perform many of the functions available in this window via scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info
See in Glossary, using the LightmapEditorSettings and Lightmapping APIs.
This page lists settings specific to the Progressive Lightmapper. For all other lighting settings, see Lighting Settings Asset.
Setting | Description | |
---|---|---|
Lightmapper | Use this to specify which internal lighting calculation software to use to calculate lightmaps in the Scene. The options are: The default value is Progressive CPU. |
|
Importance Sampling | Enable this to use multiple importance sampling for sampling the environment. This generally leads to faster convergence when generating lightmaps, but can lead to noisier results in certain low frequency environments. This is disabled by default. | |
Direct Samples | The number of samples (paths) shot from each texel. This setting controls the number of samples that the Progressive Lightmapper uses for direct lighting calculations. Move the slider to improve the quality of direct lighting in lightmaps and Light Probes, at the cost of longer bake times. You can only set the slider to powers of 2. The default maximum value is 1024, but you can change the maximum by typing a new value into the field next to the slider, up to a limit of 230 | |
Indirect Samples | The number of samples (paths) shot from each texel. This setting controls the number of samples that the Progressive Lightmapper uses for indirect lighting calculations. For some Scenes, especially outdoor Scenes, 128 samples should be enough. For indoor Scenes with emissive geometry, increase the value until you see the amount of noise is acceptable. Move the slider to improve the quality of indirect lighting in lightmaps, at the cost of longer bake times. You can only set the slider to powers of 2. The default maximum value is 8192, but you can change the maximum by typing a new value into the field next to the slider, up to a limit of 230 | |
Environment Samples | The Environment Samples property determines the total number of environment rays that Unity fires toward the skybox to gather light directly. Unity fires these rays from the lightmap texel or light probe position depending on the context. The default value is 256. Higher values might yield smoother results, but at the cost of increased bake times. You can only set the slider to powers of 2, with a minimum of 1 and a maximum of 2048. In Scenes with HDR skyboxes, more samples are often needed to reduce noise in the final lightmap or probe. Scenes with skyboxes that include bright singularities (such as the sun) or high-frequency details with significant contrast (such as backlit clouds) also benefit from a higher number of samples. |
|
Light Probe Sample Multiplier | Controls how many samples are used for Light Probes as a multiplier of the sample values above. Higher values improve the quality of Light Probes, but they will take longer to bake. To enable this feature, go to Project Settings > Editor and disable Use legacy Light Probe sample counts. The default value is 4. | |
Bounces | Use this value to specify the number of indirect bounces to do when tracing paths. For most Scenes, two bounces is enough. For some indoor Scenes, more bounces might be necessary. | |
Max Bounces | The maximum number of bounces you want the Progressive Lightmapper to include in indirect lighting calculations. Default value: 2. Range: 0 - 100. Values of up to 10 are suitable for most Scenes. Values higher than 10 might lead to significantly longer bake times. Each bounce increases the computational resources needed to bake your scene. Use higher bounce values for indoor Scenes, and lower bounce values for outdoor Scenes and those with many bright surfaces. |
|
Filtering | Configure the way the Progressive Lightmapper applies post-processing to lightmaps to limit noise. For lightmap post-processing, the lightmap is split into Direct, Indirect and Ambient Occlusion targets that Unity applies post-processing to individually, before it composites them together into a single lightmap. - Direct: Any light that arrives directly from a Light to a sensor (usually the Camera). - Indirect: Any light that arrives indirectly from a Light to a sensor. This most commonly applies to light that reflects off other GameObjects. - Ambient Occlusion: Any ambient light that the lighting system calculates. |
|
None | Select this to use no filter or denoising for the lightmap. | |
Auto | Select this to use a platform-dependent preset for post-processing the lightmap. If your development machine fulfils the requirements to run OptiX (the NVIDIA OptiX AI-Accelerated Denoiser), the Progressive Lightmapper uses the denoiser with a Gaussian filter that has a 1-texel radius for all targets. If your development machine cannot run OptiX, the Progressive Lightmapper falls back to OpenImageDenoise. |
|
Advanced | Select Advanced to manually configure options for each type of lightmap target. The targets types are Direct, Indirect and Ambient OcclusionA method to approximate how much ambient light (light not coming from a specific direction) can hit a point on a surface. See in Glossary. For more information, see Advanced Filtering settings, below. |
Set Filtering to Advanced to manually configure options for each type of lightmap target. The target types are:
Setting | Description |
---|---|
Denoiser | Select a denoiser to use for the lightmap target. The options are: - Optix: The NVIDIA Optix denoiser is an AI accelerated denoiser that reduces noise in baked lightmaps. It requires an NVIDIA GeForce, Quadro, or Tesla GPU with Maxwell or newer generation architecture, using driver version R495.89 or above. Optix is only supported on Windows. - OpenImageDenoise: Intel’s Open Image Denoise is an AI-accelerated denoiser that reduces noise in baked lightmaps. - None: Do not use a denoiser. |
Filter | Select a filter to use for the lightmap target: - Gaussian: Select this to use a Gaussian filter for the lightmap target. The Gaussian filter applies a bilateral Gaussian filter on the lightmap. This blurs the lightmap and reduces the visible noise. - A-Trous: Select this to use an A-Trous filter for the lightmap target. The A-Trous filter minimizes the amount of blur while it removes visible noise in the lightmap. - None: Select this to disable all filtering for the lightmap target. |
Radius | This option is only available when Filter is set to Gaussian. Use the Radius value to set the radius of the Gaussian filter kernel in texels. A higher Radius increases the blur strength and reduces the perceptible noise, but might cause detail to be lost in the lighting. |
Sigma | This option is only available when Filter is set to A-Trous. Use the Sigma value to adjust how much to preserve detail or blur the lighting. A higher Sigma increases the blur strength and reduces the perceptible noise, but might cause detail to be lost in the lighting. |
The panel below the Generate Lighting button shows statistics about the lightmapping, including:
The progress bar that appears while Unity is baking the lightmap provides an “estimated time of arrival” (displayed as ETA). This is the estimated time in seconds for the current bake to complete. This allows for much more predictable baking times and allows you to quickly learn how much time baking takes with your current lighting settings.