---
title: "3.3 - Lighting"
content_type: tutorial
url: "https://learn.unity.com/tutorial/3-3-lighting-2?language=en"
language: en
difficulty: beginner
duration_minutes: 90
unity_version:
  - "6.3"
  - "6.2"
  - "6.1"
  - "6.0"
supported_unity_versions:
  - name: "6.3"
    url: "https://learn.unity.com/tutorial/3-3-lighting-2.md?language=en&version=6.3"
  - name: "6.2"
    url: "https://learn.unity.com/tutorial/3-3-lighting-2.md?language=en&version=6.2"
  - name: "6.1"
    url: "https://learn.unity.com/tutorial/3-3-lighting-2.md?language=en&version=6.1"
  - name: "6.0"
    url: "https://learn.unity.com/tutorial/3-3-lighting-2.md?language=en&version=6.0"
  - name: "2022.3"
    url: "https://learn.unity.com/tutorial/3-3-lighting-2.md?language=en&version=2022.3"
  - name: "2021.3"
    url: "https://learn.unity.com/tutorial/3-3-lighting-2.md?language=en&version=2021.3"
last_updated: "2026-08-04T14:22:52.000Z"
---

# 3.3 - Lighting

Use light modes, lightmapping, and light probes to create VR lighting that looks good and runs efficiently.

In this lesson, you will learn how to use light modes, lightmapping, and light probes in order to optimize the lighting for VR. By the end of this lesson, the lighting in your scene will be both beautiful and performant.

This lesson is part of the [Create with VR course](https://learn.unity.com/course/create-with-vr).

Overview: [Video](https://connect-mediagw.unity.com/h1/20250923/videos/4a14e52a-8b84-48df-ac83-60acf68744a5_3_3_0_intro_v3_1.59.25_PM.mp4) ([Transcript (en)](https://connect-mediagw.unity.com/h1/20250924/62ba8e5b-6057-486f-893c-b04ff9b7d477_3_3_0_intro_v3_shifted.vtt))

## 1. Experiment with your lighting settings

Before you start editing the lighting of the scene, you’ll create a new **Lighting** **Settings** asset and get familiar with the settings at your disposal.

[Video](https://connect-mediagw.unity.com/h1/20250916/videos/cfa7488f-f283-4383-9c96-9f88b904988f_3.3.1.mp4)

**1.  Access the render pipeline settings:**

- In the **Project** window, search for and select the **UniversalRenderPipelineAsset**.

The **UniversalRenderPipelineAsset** is a configuration file in Unity that defines how graphics are rendered using the Universal Render Pipeline, allowing you to control quality, lighting, shadows, and performance settings.

**2.  Experiment with the render pipeline settings:**

- In the **Inspector** window for the **URP** **Asset**, use the foldout (triangle) to expand the **Lighting** section, then experiment with the settings.
- Be sure to experiment with the **Per Object Limit** property slider to appreciate the limitations it places on complex lighting.

This setting controls how many lights can affect each GameObject individually. Experimenting with the **Per Object Limit** property slider helps you see how Unity limits lighting complexity—fewer lights per GameObject can improve performance but might reduce visual quality in complex scenes.

- Use the foldout (triangle) to expand the **Shadows** section, then decrease the **Max Distance** property value until you’re happy with the shadow quality in the scene.

This setting limits the shadow rendering distance from the camera to improve performance. Higher values might cause shadow bleeding and quality issues due to reduced precision.

**3.  Create new Lighting Settings for your scene:**

- From the main menu, select **Window** > **Rendering** > **Lighting** to open the **Lighting** window.
- Dock the **Lighting** window next to the **Inspector** window.
- Use the foldout (triangle) to expand the **Lighting** **Settings** section, then select the **New** button to create a new profile.

**4.  Experiment with the environmental lighting in your scene:**

- At the top of the **Lighting** window, select the **Environment** tab
- Experiment with the settings to see the impact they have on your scene.

You can read more about these settings in the [Lighting window reference documentation](https://docs.unity3d.com/6000.0/Documentation/Manual/lighting-window.html#Environment)

You should now be able to locate and adjust the lighting settings from within the Lighting window and the **URP** **Asset**.

**Related resources:**

- [Universal Render Pipeline Asset](https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@7.0/manual/universalrp-asset.html)
- [Lighting window reference](https://docs.unity3d.com/6000.0/Documentation/Manual/lighting-window.html#Environment)

## 2. Prepare and bake a basic lightmap

The time has come to attempt your first lightmap bake. There are just a few steps you need to take beforehand.

[Video](https://connect-mediagw.unity.com/h1/20250916/videos/fae288bd-0530-4a88-89f3-f4f99e1e4cd6_3.3.2.mp4)

**1.  Allow all of your lights to be baked:**

- Locate and select each light in the scene that will not move or turn on and off. You can do this by searching “t:light” in the **Hierarchy** window’s search bar.
- In each light’s **Light** component, set the **Mode** property to **Baked**.

**2.  Allow GameObjects in your scene to have light baked onto them:**

- In the **Hierarchy** window, select all non-moving, static GameObjects.
- At the top of the **Inspector** window, make sure the **Static** property is enabled.

**Note:**  Remember to select the GameObjects in your **Lighting** section (for example, lamps, sconces, chandeliers, etc.)

**3.  Remove the background and foreground GameObjects from your lightmap to reduce bake times:**

- Select each large background GameObject.
- In its **Mesh** **Renderer** component, use the foldout (triangle) to expand the **Lightmapping** section, then set the **Scale in Lightmap** property to **0**.

**4.  Try baking your lights:**

- Navigate to the **Lighting** window.
- At the bottom of the **Scene** tab, select **Generate Lighting**.

**5.  Temporarily minimize the time to generate your lightmap:**

- In the **Lighting** window, select the **Scene** button at the top and set the **Lightmap Resolution** property to a value between **5-10**.
- Reduce some of the other values that contribute to lightmap quality (samples, bounces, etc.) You can read more about these settings and their influence on baking times in the [Lightmapping settings in the Lighting Settings Asset reference documentation](https://docs.unity3d.com/Manual/Lightmaps-reference.html).

You should now have a low resolution baked lightmap in your scene.

**Related resources:**

- [Light modes: Baked, Mixed, Realtime](https://docs.unity3d.com/Manual/LightModes.html)
- [Lighting Mode](https://docs.unity3d.com/Manual/lighting-mode.html)
- [Lightmapping settings in the Lighting Settings Asset reference](https://docs.unity3d.com/Manual/Lightmaps-reference.html)

## 3. Adjust scene lighting and re-bake

Now that you have attempted your first bake, you can take some time to properly light your scene and try again.

[Video](https://connect-mediagw.unity.com/h1/20250916/videos/bea000e1-3f96-4ff7-9ccb-d104b570f7e3_3.3.3.mp4)

**1.  Clear your lightmap and view lighting changes in real time:**

- At the bottom of the **Lighting** window, open the **Generate** **Lighting** dropdown.
- Select **Clear Baked Data**.

**2.  View the effect of as many lights as possible:**

- Select the **UniversalRenderPipelineAsset**.
- Temporarily increase the **Additional Lights** **Per Object Limit** property to the maximum.

**3.  Remove the default lights that came with the Room prefab:**

- In the **Hierarchy** window, use the foldout (triangle) to expand the **Room\_\[style\]** prefab.
- Delete the two **Point** **Lights** child GameObjects.

**Note:** You’ll have to open the **Room** prefab in order to delete the lights.

**4.  Add more realistic lighting from actual light sources in your scene:**

- From the **\_Course Library** > **\_Prefabs** > **Lighting** folder, make sure you have enough light-emitting GameObjects to light your scene.
- To add **Light** child GameObjects to those lighting elements, right-click them in the **Hierarchy** window and select **Light** > **Point Light** or **Spot Light**.

**5.  Get more even, balanced lighting in the room:**

- In the **Directional Light** GameObject’s **Light** component, use the foldout (triangle) to expand the **Emission** section, then increase the **Intensity** and **Indirect Multiplier** property values.
- In the **Lighting** window, select your **Lighting** settings and increase the **Indirect Intensity** property value.

**Note:** You can read more about the effect of these settings in the [Lightmapping settings in the Lighting Settings Asset reference documentation](https://docs.unity3d.com/Manual/Lightmaps-reference.html).

![](https://connect-mediagw.unity.com/h1/20250916/learn/images/2c1243da-ee1a-4287-8f61-fb9d0c07dc38_indirectIntensity.png)

**6.  Test how your lighting looks:**

- Select **Generate** **Lighting** again.
- If you have time, increase the **Lightmap Resolution** and other **Lighting** settings property values to see how it might look in its final state.

**Note:** If you’re getting splotchy, pixelated shadows, set the **Lightmap Compression** property to **None** in the **Lighting** window.

You should now have rough lighting baked into your scene looking approximately the way you want.

![](https://connect-mediagw.unity.com/h1/20250916/learn/images/1998076c-1354-4369-96b8-d02b745f8319_BakedLight.png)

**Related resources:**

- [Configuring Lightmaps](https://learn.unity.com/tutorial/670fe65bedbc2a00765e1d7f?uv=6&projectId=61b9d54fedbc2a30a371149d)
- [Lightmapping settings in the Lighting Settings Asset reference](https://docs.unity3d.com/Manual/Lightmaps-reference.html)

## 4. Add mixed lighting

If you want your GameObjects to cast shadows in real time, but also get the benefits of the performance from baked lightmaps, you can use **Mixed** lighting.

[Video](https://connect-mediagw.unity.com/h1/20250916/videos/0fb4ede8-5e10-4eaa-8f27-1e51b90661f9_3.3.4.mp4)

**1.  Get real-time shadows on top of your baked lightmaps:**

- In the **Directional Light** GameObject's **Light** component, use the foldout (triangle) to expand the **General** section.
- Open the **Mode** property dropdown and select **Mixed**.

**2.  See the new mixed lighting take effect:**

- In the **Lighting** window, select **Generate Lighting** to re-bake your lighting
- Notice what effect the mixed light has on the lighting and shadows of your dynamic GameObjects.

You should now have real-time shadows on your dynamic GameObjects coming from your **Directional** **Light** GameObject.

**Related resources:**

- [Light Modes](https://docs.unity3d.com/Manual/LightMode-Mixed.html)

## 5. Add light probes

In order to get more realistic real-time lighting from all of your baked lights in the scene, you need **Light** **Probes**.

[Video](https://connect-mediagw.unity.com/h1/20250916/videos/4acf5857-0fbc-4616-8c83-58879c72881e_3.3.5.mp4)

**1.  Add a new Light Probe Group as a child GameObject of the Room GameObject:**

- In the **Hierarchy** window, right-click the **Room\_\[style\]** GameObject and select **Light** > **Light Probe Group**.

**2.  To be able to edit the light probes:**

- Make sure **Gizmos** with **3D Icons** are enabled in the upper-right corner of the **Scene** view.
- Select the **Edit Light Probe Group** button in the **Tools** overlay while the **Light** **Probe** **Group** is selected.

**3.  Duplicate and reposition the light probes around the room:**

- Drag selection boxes around probes to select them.
- Use the **Move** tool to position the probes.
- Use **Ctrl**+**D** (macOS: **Cmd**+**D**) to duplicate selected probes.

**Note:**  It might be helpful to switch to Isometric view by selecting the icon below the axis gizmo in the upper-right corner of the **Scene** view.

![](https://connect-mediagw.unity.com/h1/20250916/learn/images/7f0106ba-7ef2-4c8e-af10-ff4f113cf787_Isometricview.png)

**4.  To position your light probes properly:**

- Make sure you have probes in areas where lighting changes drastically either in color or intensity.
- Make sure your probes are not inside GameObjects.

**5.  See the effect of your light probes:**

From the **Lighting** window, re-generate your lighting and test to see the lighting on your dynamic GameObjects.

## 6. Finalize lighting

Now that your lighting is configured approximately the way you want, you’re ready for a more final higher resolution lightmap.

[Video](https://connect-mediagw.unity.com/h1/20250916/videos/05821a30-05b6-4d64-bcb7-560d231ef8dd_3.3.6.mp4)

**1.  Make sure your lighting is optimized appropriately for your target device:**

- Test your app in the manner you expect it to be used by users (in other words, if you’re targeting a mobile device, test it on the standalone device, not connected to your computer).
- Make sure you’re hitting your target frame rate.
- For instructions on how to build and run your app on the actual device, refer to the instructions in the[ **VR Project Setup** tutorial](https://learn.unity.com/tutorial/1-1-vr-project-setup).

**2.  Generate a single lightmap file rather than several smaller ones:**

- In the **Lighting** window, use the foldout (triangle) to expand the **Lightmapping Settings** Section.
- Set the **Max Lightmap Size** property to **4096**.
- It’s recommended to have a single lightmap file rather than several smaller ones.

**3.  If you’re getting splotchy or pixelated shadows:**

- Set the **Lightmap Compression** property to **None**.

**4.  If you’re happy with the general appearance of your lighting and are ready to generate your final lightmap:**

- Increase the **Lightmap** **Resolution** property to somewhere between **20** and **80**.
- If you want, continue to adjust other lighting settings (samples, bounces, etc.) to get the desired result.

Your lighting should now look the way you want and be optimized for performance.

**Related resources:**

- [Global illumination](https://docs.unity3d.com/Manual/BestPracticeLightingPipelines.html)

## 7. Recap

[Video](https://connect-mediagw.unity.com/h1/20220608/videos/01861ee9-6b8c-4ee9-821d-e7339ddd1946_3_3_recap_v1.mp4) ([Transcript (en)](https://connect-mediagw.unity.com/h1/20220608/ce554543-dc9f-4171-afc5-8e3a3db47d1f_3_3_recap_v1.vtt))

**New Functionality:**

- Complex performant lighting

**New Concepts and Skills:**

- Baked vs Realtime lighting
- Lightmapping
- Light probes

**Next Lesson:**

- Publishing

## 8. Extension Activities _(Optional)_

If you want to further develop your skills, explore new concepts, and improve your project, check out some of the optional extension activities below.

Each one is tagged as \[Easy\], \[Medium\], \[Difficult\], or \[Expert\] and will also include a \[Requires Programming\] tag if some coding is required.

**1.  Add a new skybox \[Easy\]**

Create or download a new skybox to enhance the look of your scene:

- Learn more about skyboxes using the [Create a skybox documentation](https://docs.unity3d.com/Manual/skyboxes-using.html).
- You can download skyboxes on the Unity Asset Store - search for “free” assets.
- Add your skybox from the **Lighting** window in the **Environment** tab.

**Warning**: If you have a high resolution skybox and have your skybox set as the **Source** of your **Environment** **Lighting** in the **Environment** tab, lightmapping might take a very long time. You can change your **Source** to a **Gradient** to avoid this.

![](https://connect-mediagw.unity.com/h1/20210212/learn/images/ad300aa9-8320-4eb9-9d32-ded970ccdc82_image.png)

![](https://connect-mediagw.unity.com/h1/20210212/learn/images/7ce20342-391f-43f5-8a4b-3becb9c9497c_image.png)

**2.  Continue tweaking lighting \[Medium\]**

Continue to fine-tune the lighting in your scene and the lighting settings to make it as beautiful and performant as possible:

- Try adjusting values in the [Lighting window](https://docs.unity3d.com/Manual/lighting-window.html) to see what kind of results you get.
- Learn more about lighting in Unity:
  - [**Intro to Lighting and Rendering**](https://learn.unity.com/tutorial/introduction-to-lighting-and-rendering-2019-3#)

![](https://connect-mediagw.unity.com/h1/20210212/learn/images/858855b8-b108-429d-b00b-73c380f53f4c_3.3.ext___Nice_Lighting__1_.png)

**3.  Explore Reflection Probes \[Hard\]**

Add reflection probes into your scene in order to get more realistic reflections from metallic GameObjects:

- Check out the [Reflection Probe Inspector window reference documentation](https://docs.unity3d.com/Manual/class-ReflectionProbe.html) and the [Place a Reflection Probe documentation](https://docs.unity3d.com/Manual/UsingReflectionProbes.html).
- You should probably duplicate the **Material_Main** to create a new **Material_Main_Shiny**, increase the material’s **Metallic** property, then assign that material to a shiny GameObject in your scene that should be reflective.
