Global Illumination in Unity: Realistic Lighting for Immersive Experiences

by Michael Sacco Published April 24, 2023
The cover for Global Illumination in Unity: Realistic Lighting for Immersive Experiences

Global Illumination for Unity

Global illumination is a computer graphics and game development technique. This technique enables realistic lighting and reflections in virtual environments. In this article, we will explore the concept of Global Illumination. And we will learn how it works in Unity,

Get started with Real-time Local Global Illumination today ->

Introduction

Lighting plays a crucial role in creating realistic and immersive virtual environments. Global illumination is a rendering technique. This technique simulates the interaction of light with surfaces in a scene.

Global illumination can account for both indirect lighting and reflections. It helps achieve accurate and dynamic lighting in 3D games and simulations. Global illumination can make a virtual world seem more realistic.

What is Global Illumination?

Global illumination refers to the realistic rendering of light in virtual environments. There are several different conceptual approaches to global illumination.

The most common process is to simulate the interactions of light with surfaces. This approach considers direct lighting from light sources. It also accounts for indirect lighting.

Indirect lighting is light that bounces off surfaces. That bounced light hits other objects in the scene. In that way, it contributes to the illumination of the scene.

We can classify Global Illumination into two main types: real-time and baked.

Real-time Global Illumination calculates real-time lighting during runtime. It enables dynamic and interactive lighting effects.

Baked Global Illumination precomputes the lighting information. It stores the lighting data in textures or light maps. Unity global illumination then uses the lightmaps during runtime.

Both types have advantages and limitations. The option you choose will depend on your specific project’s requirements.

Benefits of Global Illumination

Global illumination has several benefits in game development and computer graphics. Global illumination enhances the visual quality of virtual environments. With realistic lighting and reflections, players can feel more immersed. It also improves the game’s aesthetics, making it appealing and engaging.

Global illumination also contributes to the gameplay experience by providing visual cues. Imagine a spooky ghost shadow peeking out from behind a wall. These queues help players interact with the virtual world. It can also convey mood and atmosphere, adding to a game’s narrative and storytelling.

How Global Illumination Works in Unity

Unity is a popular game development engine. This engine provides built-in support for Global Illumination through its lighting system. Unity combines real-time and baked Global Illumination techniques. This flexible approach enables Unity to achieve realistic lighting in 3D games and simulations.

Unity’s real-time Global Illumination uses a Progressive Lightmapper. This technique calculates real-time indirect lighting during runtime. It provides dynamic and interactive lighting effects. This technique enables Unity to reflect changes in lighting conditions and objects in the scene in real-time. Unfortunately, real-time lighting in Unity is completely broken right now. sunglasses emoji.

Unity’s baked Global Illumination uses a technique called Enlighten. Enlighten precomputes the lighting information and stores it in lightmaps. Lightmaps are textures that contain precomputed lighting data for surfaces in the scene. This lighting data includes diffuse and specular lighting, shadows, and reflections. These lightmaps are then used during runtime to provide realistic lighting in the scene.

Types of Global Illumination

We can categorize Global Illumination into several types. We will segment here based on the techniques used to achieve it. Examples include Ray Tracing, Photon Mapping, Radiosity, and Voxel-based Global Illumination. In this section, we will explore these techniques.

Ray Tracing

Ray Tracing is a rendering technique that simulates the behavior of light. This technique traces the path of rays as they interact with surfaces in the scene. It can achieve realistic lighting and reflections. Unfortunately, ray tracing can be expensive. As a result, it is most appropriate for offline rendering or high-end hardware.

Photon Mapping

Photon Mapping is a technique that uses photons, or packets of light, to simulate the behavior of light in a scene. It calculates indirect lighting and reflections by simulating photons’ emission, scattering, and absorption. This approach enables photon mapping to create accurate and detailed global illumination.

Radiosity

Radiosity is a technique that calculates energy exchange between surfaces in a scene. It simulates the diffuse interreflection of light. It accounts for the color and reflectivity of surfaces. Radiosity can achieve realistic and smooth global illumination but can be expensive.

Voxel-based Global Illumination

Voxel-based Global Illumination is another technique. This approach uses a volumetric representation of the scene to calculate global illumination. To do this, it subdivides the scene into small voxels. Then, it calculates the lighting information for each voxel. This approach results in efficient and accurate global illumination.

Real-time Global Illumination Techniques

In real-time applications like video games, developers use global illumination techniques to achieve dynamic and interactive lighting effects. This section will review some of the most common real-time Global Illumination techniques.

Screen Space Reflections (SSR)

SSR calculates reflections based on the screen space information of the scene. It uses the depth and normal buffers of the rendered image to calculate the reflections. This approach results in accurate and dynamic reflections.

Ambient Occlusion (AO)

AO is a real-time Global Illumination technique simulating nearby objects’ light occlusion. It darkens occluded areas. AO results in realistic shading and shadows.

Global Illumination Volumes (GIV)

GIV is a real-time Global Illumination technique. This technique calculates global illumination using a volumetric representation of the scene. It provides dynamic and interactive lighting effects with minimal performance overhead.

Light Probes

Light Probes are another real-time Global Illumination technique. This approach uses precomputed lighting data from light probes placed in the scene. A light probe stores lighting information at a specific point. It includes diffuse and specular lighting, shadows, and reflections. Then, you can use this lighting data to provide static and dynamic geometry lighting.

Baking Global Illumination

Baking Global Illumination is a technique used to precompute the lighting information. Then, the baking tool stores that data in textures or light maps. Finally, shaders use this data during runtime to achieve realistic lighting.

Baked Global Illumination is best for static scenes. This is because the lighting conditions do not change and objects do not move.

(Even games with dynamic environments use static lighting sometimes. For example, The Finals has fully destructible environments but has static lighting enabled at lower quality settings.)

The process of baking Global Illumination involves several steps, including. In this section, I’ll walk through the steps required.

Set up the scene.

You must place lights, objects, and materials to create a scene. Then, configure their properties, such as intensity, color, and shadows.

Calculate the lighting

To calculate the lighting, you will use a baking tool in Unity to calculate the indirect lighting and reflections for the scene. Each lighting tool, like Enlighten or Bakery, is different. These tools use algorithms to simulate the behavior of light and calculate the lighting information.

Store the lighting information.

Once the tool calculates the lighting, it stores that data in textures or light maps. The engine uses lightmaps during runtime to provide realistic lighting in the scene.

Baked Global Illumination provides high-quality and accurate lighting. It accounts for the complex interactions of light with surfaces. But it has limitations. For example, Baked Global Illumination cannot handle dynamic lighting conditions. It also doesn’t support changes to the scene during runtime.

Implementing Global Illumination in Unity

Unity provides built-in support for Global Illumination. Unity’s built-in support makes it easy to use in a game or simulation environment. In this section, I’ll review the basic things you need to do to use global illumination in Unity.

Make your scene.

Start by creating a scene in Unity and placing lights, objects, and materials in the scene. Configure the properties of the lights, such as intensity, color, and shadows, to achieve the desired lighting setup.

Choose a Global Illumination method.

Unity provides different Global Illumination methods. Examples include the Baked Lightmapper and the Real-time Global Illumination system. To choose the right one, consider your project requirements and target platform.

Configure the Global Illumination settings.

Configure your settings to fine-tune the quality and performance of the lighting. These settings include indirect resolution, direct resolution, and baking settings. These options affect the accuracy and quality of the Global Illumination.

Bake the Global Illumination

If you use a baking method like light mapping, you must bake the Global Illumination data. Baking involves using the baking tool in Unity. This tool calculates the indirect lighting and reflections for the scene. Then, it stores them in textures or light maps.

Use Real-time Global Illumination

Suppose you use a real-time Global Illumination method, such as Screen Space Reflections (SSR) or Ambient Occlusion (AO). In that case, you can enable the respective settings in Unity. Then, you can adjust their parameters to achieve the desired lighting effects. It all works in real time.

Optimize Global Illumination

Global illumination can be expensive. Optimizing it for performance is essential. You have a few options to optimize your global illumination. First, you can reduce the texture resolution, use occlusion culling, and optimize scene geometry. These simple optimization steps can help cut the impact on frame rates.

Test and iterate

Test the lighting in different scenarios and platforms. You must ensure it meets your quality and performance requirements. Iterate and make adjustments as needed to achieve the best possible lighting results.

FAQs

Q: Is Global Illumination only used in games?

A: No, Global Illumination is also used in other applications. Examples include architectural visualizations, product renderings, and animations. These applications use Global Illumination to achieve realistic lighting effects.

Q: Can I use Global Illumination in mobile games?

A: Yes. Unity provides different Global Illumination methods. Some examples of methods include the Progressive Light mapper or baked lighting. You can use these methods for mobile platforms.

Q: Does Global Illumination work with dynamic lighting changes?

A: Baked Global Illumination fails in dynamic lighting conditions. Real-time Global Illumination methods like SSR or AO can handle dynamic lighting conditions.

Q: Can I combine different Global Illumination methods in Unity?

A: Yes. You can combine different Global Illumination methods in Unity. Combining more than one method helps you to achieve your desired lighting results. For example, you can use baking for static objects and real-time lighting for dynamic ones.

Q: How important is optimizing Global Illumination for performance?

A: Optimizing Global Illumination for performance is crucial. Optimization can significantly impact frame rates and overall performance in real-time applications.

Conclusion

Global illumination is a powerful technique in computer graphics and real-time applications. This technique enables you to achieve realistic and dynamic lighting effects. In Unity, various methods and settings are available for Global Illumination. These methods include baking and real-time modes. By configuring the Global Illumination settings, optimizing for performance, and testing the lighting, you can create stunning and immersive experiences for your games or simulations.

Get started with Real-time Local Global Illumination today ->

Free download: Indie Game Marketing Checklist

Download now

Category

resources

Don't forget to share this post!

Popular assets for Unity

See all assets ->
    Cutting-edge volumetric fog and volumetric lighting with support for transparent materials.
    Volumetric clouds, day night cycles, dynamic skies, global lighting, weather effects, and planets and moons.
    A lightweight procedural skybox ideal for semi-stylized projects.
    Image-based Outlines for 2D and 3D games with variable line weight, color, and displacement options.
    Drag-and-drop ready-to-use ambient, impact, and spell particle effects.
    Per-pixel gaussian blur on your entire screen, part of the UI, or in-scene objects.

Free Indie Game Marketing Checklist

Learn how to make your game successful with this handy checklist.

Download for free