Unity 2022 is here and with URP 14 comes Forward Plus (F+), an important enhancement…
Global illumination in video games: A Preface
Global Illumination (GI) is a fundamental lighting technique used in video games and computer graphics to simulate the complex interactions of light within virtual environments. It is a cornerstone of realistic rendering, enhancing the visual fidelity and immersive qualities of digital worlds. In this comprehensive explanation, we’ll delve into what global illumination is, why it’s essential in video games, and how it’s applied to create stunning, lifelike visuals.
Understanding global illumination
At its core, global illumination refers to the way light interacts with surfaces, objects, and materials within a scene. It takes into account not only direct lighting, where light sources directly illuminate surfaces, but also indirect lighting, where light bounces off surfaces and illuminates other parts of the scene. This phenomenon is crucial for achieving realism because it replicates the way light behaves in the real world.
Key Components of Global Illumination:
To comprehend global illumination in video games, it’s essential to break down its key components:
- Direct lighting: This is the light that comes directly from light sources like the sun, lamps, or fires (or the different types of lighting such as directional, spot, point and area lights). This kind of lighting usually creates sharp and well-defined shadows.
- Indirect lighting: indirect lighting occurs when light rays bounce off surfaces and scatter throughout the scene. This process includes diffuse inter-reflections (light bounces off surfaces) and specular inter-reflections (light bounces off shiny surfaces). Indirect lighting softens shadows and adds subtle nuances to the environment.
- Color bleeding: global illumination also involves color bleeding, where the color of one surface can affect nearby surfaces by reflecting or diffusing its hue onto them. This effect is especially noticeable in scenes with vibrant lighting.
- Ambient occlusion: ambient occlusion simulates the soft shadowing that occurs in corners and crevices where indirect light struggles to reach. It enhances realism by improving the depth perception in scenes, especially in shadowed areas.
Methods of implementing global illumination in video games
Achieving global illumination in real-time environments, such as video games, is computationally intensive. Game developers employ various techniques to balance performance and visual quality:
- Baked Lighting: In this method, lighting is computed offline (not real-time) and “baked” into the game’s textures or lightmaps. Then, when game is run, the engine can just read this baked color information while rendering the scene geometry. While this approach offers accurate visual quality, it lacks real-time responsiveness and flexibility which is desirable in dynamic or procedurally created worlds.
- Screen-Space Global Illumination (SSGI): SSGI focuses on computing global illumination effects only for what’s visible on the screen. It leverages real-time buffers generated during the rendering stage, such as depth, normals, albedo and specular buffers, to estimate the contribution of each pixel to nearby surfaces visibles on the screen. This reduces computational complexity, but it can lead to some limitations in handling off-screen objects and relies on the precision of the mentioned bufffers.
- Ray Tracing: modern hardware and software advancements have made real-time ray tracing more accessible. Ray tracing simulates the path of individual light rays, delivering highly accurate global illumination effects. However, it requires powerful hardware and software support.
- Hybrid Approaches: Many games use a combination of pre-baked lighting, SSGI, and ray tracing to strike a balance between performance and visual quality. This hybrid approach ensures optimal results in different situations.
Realistic and realtime global illumination in Unity with Radiant Global Illumination
Introducing Radiant Global Illumination
Radiant Global Illumination represents a quantum leap in Unity lighting by not only introducing screen space global illumination but also unique features such as organic light which adds complexity to the lighting and breaking the synthetic appearance of computer generated worlds.
Bid farewell to static, lifeless scenes and embrace the dynamic allure of global illumination in real-time. This asset brings your environments to life, infusing them with natural, lifelike lighting interactions. Moving objects cast convincing shadows, and as your scene transforms, so does the illumination. Radiant GI is your ticket to unlocking unparalleled visual realism with minimal effort, giving you more time to focus on your creative vision and less on complex lighting setups.
How does it work?
Radiant Global Illumination works for both built-in and Universal Render pipelines in Unity as well as forward and deferred rendering path. The way to implement the effect in exactly the same in both pipelines although deferred is recommended for more realistic lighting.
Built-In: After importing the package, in the main menu, select “GameObject – Create Other – Radiant GI – Volume”. The next step is to select the volume and create a new profile, where all options and features will appear. The last step is to add the Radiant GI script to the main camera and that’s it, you can start playing with the asset’s options!
URP: It’s important to add Radiant Global Illumination to the render feature list. To do so, select Edit – Project Settings and in the Graphics – Quality – Player section, be sure to add the URP asset, and then select it and add Radiant GI render feature to the list. If you miss this part, the asst will not work. Now create a Global or Local volume, and add the Radiant GI Override. From here you can enjoy the asset!
Radiant Global Illumination Inspector
The asset is composed by 6 main sections, each of them dedicated to an important part of the effect.
General: In this section you can tweak the main values that will affect how to global illumination looks and behaves in your scene.
Quality: Choose the quality at which the asset should perform, by tweaking several values in charge of ray count, jittering, thickness, smoothing and much more!
Fallbacks: Make sure the global illumination takes into account every object in the scene that should contribute to real-time lighting by reusing rays or leveraging reflection probes.
Performance: Take full control over performance and optimization for your project. When creating games with Unity users can choose multiple platforms, and we wanted to make sure that every user can afford using Radiant GI regardless of their end rendering platform.
Artistic Controls: In this section you can tweak the threshold of some visual effects, and you can increase or decrease how much they affect the overall look of the scene.
Debug: Finally, you can enter debug view to have a clearer visual of the parts that are being affected or contributing to the global illumination. In addition, you can activate compare mode to see the difference of having or not Radiant GI activated.
We’ve been polishing the asset since its release and most of the options we’ve mentioned above were born with it in the first release. There were some new additions recently that our users loved, and we think they add a fantastic value to the asset’s capabilities.
Near Field Obscurance
To counter some corners and occluded zones that were affected by the illumination, we’ve added this option, which creates a beautiful ambient occlusion effect, that merged with the real-time global illumination, makes the perfect match.
Radiant Global Illumination 8 introduces a new feature called “Organic Light,” which significantly enhances scene lighting. This new functionality procedurally injects artificial light, providing greater variety and richness to the scene’s illumination. Additionally, this contribution of additional light serves as a source for calculating the indirect light that Radiant propagates throughout the scene.
One of the remarkable aspects of this feature is its high efficiency, as it only requires an additional render pass to execute the effect. By efficiently working with g-buffers and acting just before the lighting phase, the overhead is minimized, resulting in improved performance while delivering stunning visual enhancements.
To utilize this feature, the deferred rendering path is required, which further optimizes the process and ensures seamless integration into the existing rendering pipeline. As a result, scenes benefit from the added complexity of “Organic Light” without compromising on performance, making it an invaluable addition to Radiant Global Illumination 8. Below is an example of a scene taken from the fantastic Lordenfel environment by Mana Station, showing a comparison between the scene without Radiant and with Radiant + Organic Light applied:
Radiant GI: Organic Light Feature Inspector
Check Comparison With & Without Organic Light Feature Below
Enough chit-chat! You can see what the asset is capable of by watching our full playlist. Where we explain how to import the package, how to use it for each pipeline, and how to take the most out of it indoors and outdoors. Besides, all of the new updates are explained in this list, and most importantly, those yet to come will be implemented in the same place.