How to bake light in unity
How to bake light in unity
Baked lighting
Baked Lights are Light components which have their Mode property set to Baked.
Use Baked mode for Lights used for local ambience, rather than fully featured Lights. Unity pre-calculates the illumination from these Lights before run time, and does not include them in any run-time lighting calculations. This means that there is no run-time overhead for baked Lights.
Unity bakes direct and indirect lighting from baked Lights into light maps (to illuminate static GameObjects) and Light Probes (to illuminate dynamic Light GameObjects). Baked Lights cannot emit specular lighting, even on dynamic GameObjects (see Wikipedia: Specular highlight for more information). Baked Lights do not change in response to actions taken by the player, or events which take place in the Scene. They are mainly useful for increasing brightness in dark areas without needing to adjust all of the lighting within a Scene.
Baked Lights are also the only Light type for which dynamic GameObjects cannot cast shadows on other dynamic GameObjects.
Advantages of baked lighting
High-quality shadows from statics GameObjects on statics GameObjects in the light map at no additional cost.
Offers indirect lighting.
All lighting for static GameObjects can be just one Texture fetched from the light map in the Shader.
Disadvantages of baked lighting
No real-time direct lighting (that is, no specular lighting effects).
No shadows from dynamic GameObjects on static GameObjects.
You only get low-resolution shadows from static GameObjects on dynamic GameObjects using Light Probes.
Increased memory requirements compared to real-time lighting for the light map texture set, because light maps need to be more detailed to contain direct lighting information.
Technical details
For baked Lights, Unity precomputes the entire light path, except for the path segment from the Camera to the Surface. See documentation on Light Modes for more information about light paths.
Baked Mode: All light paths are precomputed
Unity also precomputes direct baked lighting, which means that light direction information is not available to Unity at run time. Instead, a small number of Texture operations handle all light calculations for baked Lights in the Scene area. Without this information, Unity cannot carry out calculations for specular and glossy reflections. If you need specular reflections, use Reflection Probes or use Mixed or Realtime lights. See documentation on directional light maps for more information.
Baked Lights never illuminate dynamic GameObjects at run time. The only way for dynamic GameObjects to receive light from baked Lights is via Light Probes. This is also the only difference between Baked Lights and any Subtractive mode Mixed Lights (except the main directional Light) which compute direct lighting on dynamic GameObjects at run time.
2017–06–08 Page published with limited editorial review
Light Modes added in 5.6
Did you find this page useful? Please give it a rating:
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 rendering The 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, GameObjects The 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 Renderer A 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 Terrain The 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 Mesh The 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:
At the bottom of the Scene A 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).
A progress bar appears in Unity Editor’s status bar, in the bottom-right corner.
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 Probes A 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 Assets Any 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 100 samples
A Scene using 1000 samples
Environment Lighting
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 Occlusion A 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
Progressive Lightmapper added in 2018.1 NewIn20181
Lightmapping Quickstart
This is an introductory description of lightmapping in Unity. For more advanced topics see the in-depth description of lightmapping in Unity
Preparing the scene and baking the lightmaps
Selecting Window –> Lighting from the menu will open the Lightmapping window:
Tweaking Bake Settings
Final look of your scene depends a lot on your lighting setup and bake settings. Let’s take a look at an example of some basic settings that can improve lighting quality.
This is a basic scene with a couple of cubes and one point light in the centre. The light is casting hard shadows and the effect is quite dull and artificial.
Lightmapping In-Depth
For more information about the various lightmapping-related settings, please refer to the in-depth description of lightmapping in Unity.
Did you find this page useful? Please give it a rating:
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 rendering The 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, GameObjects The 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 Renderer A 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 Terrain The 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 Mesh The 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:
At the bottom of the Scene A 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).
A progress bar appears in Unity Editor’s status bar, in the bottom-right corner.
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 Probes A 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 Assets Any 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 100 samples
A Scene using 1000 samples
Environment Lighting
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 Occlusion A method to approximate how much ambient lighting (lighting not coming from a specific direction) can hit a point on a surface. More info
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:
Baked lighting
Baked Lights are Light components which have their Mode property set to Baked.
Use Baked mode for Lights used for local ambience, rather than fully featured Lights. Unity pre-calculates the illumination from these Lights before run time, and does not include them in any run-time lighting calculations. This means that there is no run-time overhead for baked Lights.
Unity bakes direct and indirect lighting from baked Lights into light maps (to illuminate static GameObjects) and Light Probes (to illuminate dynamic Light GameObjects). Baked Lights cannot emit specular lighting, even on dynamic GameObjects (see Wikipedia: Specular highlight for more information). Baked Lights do not change in response to actions taken by the player, or events which take place in the Scene. They are mainly useful for increasing brightness in dark areas without needing to adjust all of the lighting within a Scene.
Baked Lights are also the only Light type for which dynamic GameObjects cannot cast shadows on other dynamic GameObjects.
Advantages of baked lighting
High-quality shadows from statics GameObjects on statics GameObjects in the light map at no additional cost.
Offers indirect lighting.
All lighting for static GameObjects can be just one Texture fetched from the light map in the Shader.
Disadvantages of baked lighting
No real-time direct lighting (that is, no specular lighting effects).
No shadows from dynamic GameObjects on static GameObjects.
You only get low-resolution shadows from static GameObjects on dynamic GameObjects using Light Probes.
Increased memory requirements compared to real-time lighting for the light map texture set, because light maps need to be more detailed to contain direct lighting information.
Technical details
For baked Lights, Unity precomputes the entire light path, except for the path segment from the Camera to the Surface. See documentation on Light Modes for more information about light paths.
Baked Mode: All light paths are precomputed
Unity also precomputes direct baked lighting, which means that light direction information is not available to Unity at run time. Instead, a small number of Texture operations handle all light calculations for baked Lights in the Scene area. Without this information, Unity cannot carry out calculations for specular and glossy reflections. If you need specular reflections, use Reflection Probes or use Mixed or Realtime lights. See documentation on directional light maps for more information.
Baked Lights never illuminate dynamic GameObjects at run time. The only way for dynamic GameObjects to receive light from baked Lights is via Light Probes. This is also the only difference between Baked Lights and any Subtractive mode Mixed Lights (except the main directional Light) which compute direct lighting on dynamic GameObjects at run time.
2017–06–08 Page published with limited editorial review
Light Modes added in 5.6
Did you find this page useful? Please give it a rating: