Progressive CPU Lightmapper
Lightmap seam stitching

Lightmapping: Getting started

This page provides an introduction to lightmapping in Unity. Lightmapping is the process of pre-calculating the brightness of surfaces in a Scene, and storing the result in a chart or “light map” for later use.

Unity uses a system called the Progressive Lightmapper, which bakes lightmaps for your Scene based on how your Scene is set up within Unity, taking into account Meshes, Materials, Textures, and Lights. Lightmapping is an integral part of the renderingThe process of drawing graphics to the screen (or to a render texture). By default, the main camera in Unity renders its view to the screen. More info
See in Glossary
engine; when your lightmaps are created, GameObjectsThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary
automatically use them.

For information about specific lightmapping-related settings, see documentation on Global Illumination.

Preparing the Scene and baking the lightmaps

Select Window > Lighting > Settings from the Unity Editor menu to open the Lighting window. Make sure any Mesh you want to apply a light map to has proper UVs for lightmapping. The easiest way to do this is to open the Mesh import settings and enable the Generate Lightmap UVs setting.

Next, to control the resolution of the lightmaps, go to the Lightmapping Settings section and adjust the Lightmap Resolution value.

Note: To have a better understanding of how you spend your lightmap texels, look at the small Shaded debug scene visualization mode within the Scene View, switch to Baked Lightmap__ and tick the Show Resolution checkbox.

In the Mesh RendererA mesh component that takes the geometry from the Mesh Filter and renders it at the position defined by the object’s Transform component. More info
See in Glossary
and TerrainThe landscape in your scene. A Terrain GameObject adds a large flat plane to your scene and you can use the Terrain’s Inspector window to create a detailed landscape. More info
See in Glossary
components of your GameObjects, enable the Lightmap Static property. This tells Unity that those GameObjects don’t move or change, so Unity can add them to a lightmap. In the Mesh Renderer component, you can also use the Scale In Lightmap parameter to adjust the resolution of your lightmap’s static MeshThe main graphics primitive of Unity. Meshes make up a large part of your 3D worlds. Unity supports triangulated or Quadrangulated polygon meshes. Nurbs, Nurms, Subdiv surfaces must be converted to polygons. More info
See in Glossary
or Terrain.

You can also adjust settings for Lights in the Light Explorer.

To generate lightmaps for your Scene:

  1. At the bottom of the 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
    tab on the Lighting window, click Generate Lighting (or ensure that Auto Generate is ticked).

  2. A progress bar appears in Unity Editor’s status bar, in the bottom-right corner.

  3. When baking is complete, you can see all the baked lightmaps in the Global Maps and Object Maps tabs of the Lighting window.

When lightmapping is complete, Unity’s Scene and Game views update automatically.

To see the UV chart of the Mesh, click on a GameObject that has Lightmap Static enabled, then navigate to the Inspector window and select the Object Maps tab. Here, you can switch between different light map visualization modes. When you manually generate lighting, Unity adds Lighting Data Assets, baked lightmaps and Reflection ProbesA rendering component that captures a spherical view of its surroundings in all directions, rather like a camera. The captured image is then stored as a Cubemap that can be used by objects with reflective materials. More info
See in Glossary
to the AssetsAny media or data that can be used in your game or Project. An Asset may come from a file created outside of Unity, such as a 3D model, an audio file or an image. You can also create some asset types in Unity, such as an Animator Controller, an Audio Mixer or a Render Texture. More info
See in Glossary
folder.

Tweaking bake settings

The final look of your Scene depends on your lighting set-up and bake settings. Let’s take a look at an example of some basic settings that can improve lighting quality.

Sample count Progressive Lightmapper generates color values resulting from a single ray in order to remove noise. These color values are called samples. There are two settings that control the number of samples the Progressive Lightmapper uses for direct and indirect lighting calculations: Direct Samples and Indirect Samples. To find these, open the Lighting window (Window > Lighting > Settings), and go to Lightmapping Settings > Lightmapper.

Higher sample values reduce noise and can improve the quality of the lightmaps, but they also increase the bake time. The images below shows how a higher number of samples increases the quality of lightmaps without using filtering, and produces results that are less noisy.

A Scene using 10 samples
A Scene using 10 samples
A Scene using 100 samples
A Scene using 100 samples
A Scene using 1000 samples
A Scene using 1000 samples

Environment Lighting

In addition to all Light sources, Environment Lighting can also contribute to Global Illumination. You can assign a custom SkyboxA special type of Material used to represent skies. Usually six-sided. More info
See in Glossary
Material instead of default Procedural Skybox and adjust intensity. The following image shows how lighting can change in the Scene with and without Environment Lighting, and provide softer results. The settings for light sources are the same in both Scenes. Unity provides several custom HDRIhigh dynamic range image
See in Glossary
assets in the Asset StoreA growing library of free and commercial assets created by Unity and members of the community. Offers a wide variety of assets, from textures, models and animations to whole Project examples, tutorials and Editor extensions. More info
See in Glossary
.

Filtering

Filtering allows you to blur noisy results. The Progressive Lightmapper offers two different types of filtering: Gaussian and A-Trous. When you enable Advanced settings, you can apply these filters for Direct, Indirect and Ambient OcclusionA method to approximate how much ambient lighting (lighting not coming from a specific direction) can hit a point on a surface.
See in Glossary
separately. For more information, see documentation on Progressive Lightmapper.


2018–03–28 Page amended with limited editorial review

Progressive Lightmapper added in 2018.1 NewIn20181

Did you find this page useful? Please give it a rating:

Progressive CPU Lightmapper
Lightmap seam stitching