Global illumination: Difference between revisions

From Wikipedia
Jump to navigation Jump to search
imported>Sweeetlemon
Replace "to" with "of"
 
imported>SeriousZ
Add sourced mention of precomputed radiance transfer in real-time GI section
 
Line 1: Line 1:
{{short description|Group of rendering algorithms used in 3D computer graphics}}
{{redirect|Realistic rendering|physically-based realistic rendering|Physically-based rendering}}
{{redirect|Realistic rendering|physically-based realistic rendering|Physically-based rendering}}
{{short description|Group of rendering algorithms used in 3D computer graphics}}
{{More citations needed|date=May 2013}}
{{More citations needed|date=May 2013}}
{{Use mdy dates|date=December 2025}}
{{3D computer graphics}}
{{3D computer graphics}}
{{Multiple image|direction=vertical|align=right|image1=Direct lighting.png|image2=Global illumination1.png|width=200|caption1=Rendering without global illumination. Areas that lie outside of the ceiling lamp's direct light lack definition. For example, the lamp's housing appears completely uniform. Without the ambient light added into the render, it would appear uniformly black.|caption2=Rendering with global illumination. Light is reflected by surfaces, and colored light transfers from one surface to another. Notice how color from the red wall and green wall (not visible) reflects onto other surfaces in the scene. Also notable is the [[Caustic (optics)|caustic]] projected onto the red wall from light passing through the glass sphere.}}
{{Multiple image|direction=vertical|align=right|image1=Direct lighting.png|image2=Global illumination1.png|width=200|caption1=Rendering without global illumination. Areas that lie outside of the ceiling lamp's direct light lack definition. For example, the lamp's housing appears completely uniform. Without the ambient light added into the render, it would appear uniformly black.|caption2=Rendering with global illumination. Light is reflected by surfaces, and colored light transfers from one surface to another. Notice how color from the red wall and green wall (not visible) reflects onto other surfaces in the scene. Also notable is the [[Caustic (optics)|caustic]] projected onto the red wall from light passing through the glass sphere.}}


'''Global illumination'''<ref name="wordpress">{{cite web|url=https://extremeistan.wordpress.com/2014/05/11/realtime-global-illumination-techniques-collection/|title=Realtime Global Illumination techniques collection &#124; extremeistan|date=11 May 2014 |publisher=extremeistan.wordpress.com|access-date=2016-05-14}}</ref> ('''GI'''), or '''indirect illumination''', is a group of [[algorithm]]s used in [[3D computer graphics]] that are meant to add more realistic [[computer graphics lighting|lighting]] to 3D scenes. Such algorithms take into account not only the light that comes directly from a light source (''direct illumination''), but also subsequent cases in which light rays from the same source are reflected by other surfaces in the scene, whether reflective or not (''indirect illumination'').
'''Global illumination''' ('''GI'''), or '''indirect illumination''', refers to a group of [[algorithm]]s used in [[3D computer graphics]] meant to add more realistic [[computer graphics lighting|lighting]] to 3D scenes. Such algorithms take into account not only the light that comes directly from a light source (''direct illumination''), but also subsequent "bounces" where light rays are reflected by other surfaces in the scene (''indirect illumination'').


Theoretically, [[reflection (computer graphics)|reflections]], refractions, and shadows are all examples of global illumination, because when simulating them, one object affects the rendering of another (as opposed to an object being affected only by a direct source of light). In practice, however, only the simulation of [[diffuse reflection#Interreflection|diffuse inter-reflection]] or [[caustic (optics)|caustics]] is called global illumination.
The term "global illumination" was first used by [[J. Turner Whitted|Turner Whitted]] in his paper "An improved illumination model for shaded display",<ref>{{Cite journal |last=Whitted |first=Turner |date=1980-06-01 |title=An improved illumination model for shaded display |url=https://dl.acm.org/doi/10.1145/358876.358882 |journal=Commun. ACM |volume=23 |issue=6 |pages=343–349 |doi=10.1145/358876.358882 |issn=0001-0782}}</ref> to differentiate between illumination calculations at a local scale (using geometric information directly, such as in [[Phong shading]]), a microscopic scale (extending local geometry with [[microfacet]] detail), and a global scale, including not only the geometry itself but also the visibility of every other object in the scene.<ref>{{Cite journal |last=Whitted |first=Turner |date=2020-01-01 |title=Origins of Global Illumination |journal=IEEE Computer Graphics and Applications |volume=40 |issue=1 |pages=20–27 |doi=10.1109/MCG.2019.2957688 |pmid=31944940 |bibcode=2020ICGA...40a..20W |issn=0272-1716}}</ref> Theoretically, [[reflection (computer graphics)|reflections]], [[refraction]]s, transparency, and shadows are all examples of global illumination, because when simulating them, one object affects the rendering of another (as opposed to an object being affected only by a direct source of light). In practice, however, only the simulation of [[diffuse reflection#Interreflection|diffuse inter-reflection]] or [[caustic (optics)|caustics]] is called global illumination, especially in real-time settings.


==Algorithms==
==Algorithms==
Images rendered using global illumination algorithms often appear more [[Photorealism|photorealistic]] than those using only direct illumination algorithms. However, such images are computationally more expensive and consequently much slower to generate. One common approach is to compute the global illumination of a scene and store that information with the geometry (e.g., radiosity). The stored data can then be used to generate images from different viewpoints for generating walkthroughs of a scene without having to go through expensive lighting calculations repeatedly.
Global illumination is a key aspect to the realism of a 3D scene. Naive 3D lighting will only take into account direct light, meaning any light which radiates off a light source and bounces directly into the virtual camera. Shadows will appear completely dark, due to light not interacting with any other surface before it reaches the camera. As this is not what occurs in real life, we perceive the resulting image as incomplete. Applying full global illumination allows for the missing effects that makes an image feel more natural. However, global illumination is computationally more expensive and consequently much slower to generate.[[File:Alexexterior2.jpg|thumb|left|Exterior view of an architectural model]]Most algorithms, especially those focusing on real-time solutions, model [[diffuse inter-reflection]] exclusively, which is a very important part of global illumination; however, some also model indirect [[specular reflection]]s, refraction, and indirect shadowing, which allows for a closer approximation of the reality and produces more appealing images. The algorithms used to calculate the distribution of light energy between surfaces of a scene are closely related to [[heat transfer]] simulations performed using [[Finite element analysis|finite-element]] methods in engineering design.
 
[[Radiosity (computer graphics)|Radiosity]], [[Ray tracing (graphics)|ray tracing]], [[beam tracing]], [[cone tracing]], [[path tracing]], [[Metropolis light transport]] and [[photon mapping]] are all examples of algorithms used for global illumination in offline settings, some of which may be used together to yield results that trade between accuracy and speed, depending on the implementation.


[[Radiosity (computer graphics)|Radiosity]], [[Ray tracing (graphics)|ray tracing]], [[beam tracing]], [[cone tracing]], [[path tracing]], [[volumetric path tracing]], [[Metropolis light transport]], [[ambient occlusion]], [[photon mapping]], [[Signed_distance_function|signed distance field]] and [[image-based lighting]] are all examples of algorithms used in global illumination, some of which may be used together to yield results that are not fast, but accurate.
== Real-time applications ==
[[File:Show how 3D real time ambient occlusion works 2013-11-23 10-45.jpeg|thumb|upright|Example of an ambient occlusion layer]]
Achieving accurate computation of global illumination in real-time remains difficult.<ref name="tmocg">{{cite book |title=The Magic of Computer Graphics |last=Kurachi |first=Noriko |year=2011 |publisher=CRC Press |isbn=9781439873571 |page=339 |url=https://play.google.com/store/books/details?id=YjLOBQAAQBAJ |access-date=24 September 2017}}</ref> On one end, the [[diffuse inter-reflection]] component of global illumination is sometimes approximated by an "ambient" term in the lighting equation, which is also called "ambient lighting" or "ambient color" in 3D software. Though this method is one of the cheapest ways to simulate indirect lighting, when used alone it does not provide an adequately realistic effect. Ambient lighting is known to "flatten" shadows in 3D scenes, making the overall visual effect more bland. Beyond ambient lighting, techniques which trace the path of light accurately have historically been either too slow for consumer hardware or limited to static and precomputed environments. A classic real-time approach is [[precomputed radiance transfer]], which precomputes light transport so that low-frequency lighting can be changed in real time while preserving effects such as soft shadows and interreflections, but its original form generally assumed fixed geometry and could not vary lighting and view simultaneously in real time.<ref>{{cite conference |last1=Sloan |first1=Peter-Pike |last2=Kautz |first2=Jan |last3=Snyder |first3=John |date=2002 |title=Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environments |url=https://www.microsoft.com/en-us/research/wp-content/uploads/2017/01/prt.pdf |book-title=ACM SIGGRAPH 2002 Conference Proceedings |publisher=Microsoft Research}}</ref><ref>{{cite journal |last=Ramamoorthi |first=Ravi |title=Precomputation-Based Rendering |url=https://cseweb.ucsd.edu/~viscomp/classes/cse274/wi26/papers/prtsurvey.pdf |journal=Foundations and Trends in Computer Graphics and Vision}}</ref> This proves problematic, as most applications allow for input from a user that can affect their surroundings, and the precalculation steps may introduce constraints upon the artists. Consequently, research has been dedicated to finding a balance between adequate performance, accurate visual results, and interactivity.


These algorithms model [[diffuse inter-reflection]] which is a very important part of global illumination; however most of these (excluding radiosity) also model [[specular reflection]], which makes them more accurate algorithms to solve the lighting equation and provide a more realistically illuminated scene.  The algorithms used to calculate the distribution of light energy between surfaces of a scene are closely related to [[heat transfer]] simulations performed using [[Finite element analysis|finite-element]] methods in engineering design.
Starting with Nvidia's [[GeForce RTX 20 series|RTX 20 series]], consumer graphics hardware has been extended to allow for ray tracing computations to be performed in real time through hardware acceleration. This has allowed for further improvements, as applications can now harness the power of this acceleration to provide not only precise lighting results, but the ability to affect said lighting dynamically. Some content that has taken advantage of this capability includes [[Cyberpunk 2077]], [[Indiana Jones and the Great Circle]], and [[Alan Wake 2]], among others.<ref>{{Cite web |title=List of games that support ray tracing |url=https://www.pcgamingwiki.com/wiki/List_of_games_that_support_ray_tracing |access-date=2025-11-17 |website=PCGamingWiki}}</ref><ref>{{Cite web |last=Burnes |first=Andrew |date=2025-01-30 |title=NVIDIA DLSS & GeForce RTX: List Of All Games, Engines And Applications Featuring GeForce RTX-Powered Technology And Features |url=https://www.nvidia.com/en-us/geforce/news/nvidia-rtx-games-engines-apps/ |access-date=2025-11-18 |website=NVIDIA |language=en-us}}</ref>


==Photorealism==
For an overview of the current state of real-time global illumination, see <ref>{{Cite journal |last=Toth |first=Benoit |date=2022-03-21 |title=The state-of-art of Dynamic Global Illumination in video-games |url=https://enjmin.cnam.fr/recherche/le-blog/l-etat-d-avancement-de-la-dynamique-d-illumination-globale-dans-les-jeux-video-par-benoit-toth-1322932.kjsp?RH=1570198561448 |journal=Cnam-Enjmin}}</ref> or.<ref>{{Cite journal |last1=Tuo |first1=Chen |last2=Ziheng |first2=Zhou |last3=Zhenyu |first3=Wu |last4=Songhai |first4=Zhang |date=2025-03-12 |title=Overview of Real-Time Global Illumination Rendering Methods without Pre-Processing |url=https://www.jcad.cn/en/article/doi/10.3724/SP.J.1089.2024-00683 |journal=Journal of Computer-Aided Design & Computer Graphics |language=zh, en|volume=37 |issue=7 |pages=1101–1115 |doi=10.3724/SP.J.1089.2024-00683 |issn=1003-9775}}</ref>
[[File:Alexexterior2.jpg|thumb|left|Exterior view of an architectural model]]
[[File:Show how 3D real time ambient occlusion works 2013-11-23 10-45.jpeg|thumb|upright|Example of an ambient occlusion layer]]
Achieving accurate computation of global illumination in real-time remains difficult.<ref name="tmocg">{{cite book |title=The Magic of Computer Graphics |last=Kurachi |first=Noriko |year=2011 |publisher=CRC Press |isbn=9781439873571 |page=339 |url=https://play.google.com/store/books/details?id=YjLOBQAAQBAJ |access-date=24 September 2017}}</ref> In real-time 3D graphics, the [[diffuse inter-reflection]] component of global illumination is sometimes approximated by an "ambient" term in the lighting equation, which is also called "ambient lighting" or "ambient color" in 3D software packages. Though this method of approximation (also known as a "cheat" because it's not really a global illumination method) is easy to perform computationally, when used alone it does not provide an adequately realistic effect. Ambient lighting is known to "flatten" shadows in 3D scenes, making the overall visual effect more bland. However, used properly, ambient lighting can be an efficient way to make up for a lack of processing power.


==Procedure==
==Procedure<!-- The contents of this section are not explained clearly, may be based on the reference at the bottom -->==
More and more specialized algorithms are used in 3D programs that can effectively simulate the global illumination. These algorithms are numerical approximations of the [[rendering equation]]. Well known algorithms for computing global illumination include [[path tracing]], [[photon mapping]] and [[Radiosity (computer graphics)|radiosity]].
Algorithms which attempt to simulate global illumination are numerical approximations of the [[rendering equation]]. Well-known algorithms for computing global illumination include [[path tracing]], [[photon mapping]] and [[Radiosity (computer graphics)|radiosity]]. The following approaches can be distinguished here:
The following approaches can be distinguished here:
* Inversion: <math>L = (1-T)^{-1} L^e\,</math>
* Inversion: <math>L = (1-T)^{-1} L^e\,</math>
** is not applied in practice
** Not applied in practice
* Expansion: <math>L = \sum_{i=0}^\infty T^iL^e</math>
* Expansion: <math>L = \sum_{i=0}^\infty T^iL^e</math>
** bi-directional approach: [[Photon mapping]] + Distributed ray tracing, Bi-directional path tracing, [[Metropolis light transport]]
** Bi-directional approach: [[Photon mapping]] + Distributed ray tracing, [[Bidirectional path tracing|Bi-directional path tracing]], [[Metropolis light transport]]
* Iteration: <math>L_n tl_ e + = L ^{(n-1)}</math>
* Iteration: <math>L_n tl_ e + = L ^{(n-1)}</math>
** [[Radiosity (computer graphics)|Radiosity]]
** [[Radiosity (computer graphics)|Radiosity]]
In Light-path notation global lighting the paths of the type L (D | S) corresponds * E.
A full overview can be found in.<ref name="WikiMarkup">{{cite book |last1=Dutre |first1=Philip |title=Advanced Global Illumination |last2=Bekaert |first2=Philippe |last3=Bala |first3=Kavita |date=2006-09-25 |publisher=AK Peters |isbn=9781568813073 |edition=2nd}}</ref>
 
A full treatment can be found in <ref name="WikiMarkup">{{cite book |title=Advanced Global Illumination |edition=2nd |first1=Philip |last1=Dutre |first2=Philippe |last2=Bekaert |first3=Kavita |last3=Bala |isbn=978-1568813073 |date=2006 }}</ref>
 
==Image-based lighting==
Another way to simulate real global illumination is the use of [[high-dynamic-range imaging|high-dynamic-range images]] (HDRIs), also known as environment maps, which encircle and illuminate the scene. This process is known as [[image-based lighting]].


==List of methods==
==List of methods==
{| class="wikitable"
{| class="wikitable"
|-
|-
! Method !! Description/Notes
! Method  
!Application!! Description/Notes
|-
|-
| [[Ray tracing (graphics)|Ray tracing]] || Several enhanced variants exist for solving problems related to sampling, aliasing, and soft shadows: [[Distributed ray tracing]], [[cone tracing]], and [[beam tracing]].
| [[Ray tracing (graphics)|Ray tracing]]  
|Offline/Real-time|| The process of tracing a set of virtual paths (rays) from one point in space to another, testing for intersections with geometry. Ray tracing is useful as it can imitate the way light physically travels in the real world. Several variants exist for solving problems related to sampling, aliasing, and soft shadows, such as [[Distributed ray tracing]], [[cone tracing]], and [[beam tracing]].
|-
|-
| [[Path tracing]] || Unbiased, variant: Bi-directional path tracing and energy redistribution path tracing<ref name="psu">{{cite journal |last1=Cline |first1=D. |last2=Talbot |first2=J. |last3=Egbert |first3=P. |title=Energy redistribution path tracing |journal=ACM Transactions on Graphics  |volume=24 |issue=3 |pages=1186–95 |date=2005 |doi=10.1145/1073204.1073330 }}</ref>  
| [[Path tracing]]  
|Offline|| An extension to ray tracing that uses the Monte Carlo method of sampling to approximate a solution to the rendering equation. This makes path tracing [[Unbiased rendering|unbiased]]. Variants include [[Bidirectional path tracing|bi-directional path tracing]] and energy redistribution path tracing.<ref name="psu">{{cite journal |last1=Cline |first1=D. |last2=Talbot |first2=J. |last3=Egbert |first3=P. |title=Energy redistribution path tracing |journal=ACM Transactions on Graphics  |volume=24 |issue=3 |pages=1186–95 |date=2005 |doi=10.1145/1073204.1073330 }}</ref>  
|-
|-
| [[Photon mapping]] || Consistent, biased; enhanced variants: Progressive photon mapping, stochastic progressive photon mapping (<ref name="u-tokyo">{{cite web|url=http://www.ci.i.u-tokyo.ac.jp/~hachisuka/|title=Toshiya Hachisuka at UTokyo|publisher=ci.i.u-tokyo.ac.jp|access-date=2016-05-14}}</ref>)
| [[Photon mapping]]  
|Offline|| Rays from both the camera and each light source are traced around the scene and connected to produce plausible radiance. It provides consistent results, but is biased. Variants include progressive photon mapping and stochastic progressive photon mapping.<ref name="u-tokyo">{{cite web|url=http://www.ci.i.u-tokyo.ac.jp/~hachisuka/|title=Toshiya Hachisuka at UTokyo|publisher=ci.i.u-tokyo.ac.jp|access-date=2016-05-14}}</ref>
|-
|-
| [[Lightcuts]] || Enhanced variants: Multidimensional lightcuts and bidirectional lightcuts<ref name="Walter2005">{{cite journal |last1=Walter |first1=Bruce |last2=Fernandez |first2=Sebastian |last3=Arbree |first3=Adam |last4=Bala |first4=Kavita |last5=Donikian |first5=Michael |last6=Greenberg |first6=Donald P. |title=Lightcuts |journal=ACM Transactions on Graphics |date=1 July 2005 |volume=24 |issue=3 |pages=1098–1107 |doi=10.1145/1073204.1073318}}</ref>
| [[Radiosity (computer graphics)|Radiosity]]
|Offline|| A [[finite element method]] approach to the rendering equation, dividing the scene into patches and computing the [[Radiosity (radiometry)|radiosity]] between each patch. It is good for precomputations, but assumes completely diffuse geometries. Improved versions include instant radiosity<ref>{{cite web|url=https://www.cs.cornell.edu/courses/cs6630/2012sp/slides/Boyadzhiev-Matzen-InstantRadiosity.pdf |archive-url=https://web.archive.org/web/20120618074123/http://www.cs.cornell.edu/Courses/cs6630/2012sp/slides/Boyadzhiev-Matzen-InstantRadiosity.pdf |archive-date=2012-06-18 |url-status=live |title=Instant Radiosity: Keller (SIGGRAPH 1997) |website=Cs.cornell.edu |access-date=2016-12-02}}</ref> and bidirectional instant radiosity,<ref>{{cite book |last1=Segovia |first1=B. |title=Rendering Techniques |last2=Iehl |first2=J.C. |last3=Mitanchey |first3=R. |last4=Péroche |first4=B. |date=2006 |publisher=Eurographics Association |isbn= |pages=389–397 |chapter=Bidirectional instant radiosity |chapter-url=http://artis.imag.fr/Projets/Cyber-II/Publications/SIMP06a.pdf |archive-url=https://web.archive.org/web/20160130212610/http://artis.imag.fr/Projets/Cyber-II/Publications/SIMP06a.pdf |archive-date=2016-01-30 |url-status=live}}</ref> both of which use virtual point lights (VPLs) instead of patches.
|-
|-
| [[Point based global illumination]] || Extensively used in movie animations<ref>{{cite web|url=http://graphics.pixar.com/library/PointBasedGlobalIlluminationForMovieProduction/paper.pdf |archive-url=https://web.archive.org/web/20110817145747/http://graphics.pixar.com/library/PointBasedGlobalIlluminationForMovieProduction/paper.pdf |archive-date=2011-08-17 |url-status=live |title=coursenote.dvi |website=Graphics.pixar.com |access-date=2016-12-02}}</ref><ref>{{cite web |first=Karsten |last=Daemen |title=Point Based Global Illumination An introduction [Christensen, 2010] |date=November 14, 2012 |publisher=KU Leuven |url=http://www.karstendaemen.com/thesis/files/intro_pbgi.pdf|archive-url=https://web.archive.org/web/20141222074728/http://www.karstendaemen.com/thesis/files/intro_pbgi.pdf |archive-date=2014-12-22 }}</ref>
| Lightcuts
|Offline|| A method of improving performance when computing the contribution of several light sources at a surface, by clustering lights into a light tree and selectively choosing the appropriate "cut" for each point.<ref name="Walter2005">{{cite journal |last1=Walter |first1=Bruce |last2=Fernandez |first2=Sebastian |last3=Arbree |first3=Adam |last4=Bala |first4=Kavita |last5=Donikian |first5=Michael |last6=Greenberg |first6=Donald P. |date=1 July 2005 |title=Lightcuts |journal=ACM Transactions on Graphics |volume=24 |issue=3 |pages=1098–1107 |doi=10.1145/1073204.1073318}}</ref> Enhanced variants include multidimensional lightcuts and bidirectional lightcuts.
|-
|-
| [[Radiosity (computer graphics)|Radiosity]] || Finite element method, very good for precomputations. Improved versions are instant radiosity<ref>{{cite web|url=http://www.cs.cornell.edu/courses/cs6630/2012sp/slides/Boyadzhiev-Matzen-InstantRadiosity.pdf |archive-url=https://web.archive.org/web/20120618074123/http://www.cs.cornell.edu/Courses/cs6630/2012sp/slides/Boyadzhiev-Matzen-InstantRadiosity.pdf |archive-date=2012-06-18 |url-status=live |title=Instant Radiosity: Keller (SIGGRAPH 1997) |website=Cs.cornell.edu |access-date=2016-12-02}}</ref> and bidirectional instant radiosity<ref>{{cite book |last1=Segovia |first1=B. |last2=Iehl |first2=J.C. |last3=Mitanchey |first3=R. |last4=Péroche |first4=B. |chapter=Bidirectional instant radiosity |title=Rendering Techniques |publisher=Eurographics Association |date=2006 |isbn= |pages=389–397 |chapter-url=http://artis.imag.fr/Projets/Cyber-II/Publications/SIMP06a.pdf |archive-url=https://web.archive.org/web/20160130212610/http://artis.imag.fr/Projets/Cyber-II/Publications/SIMP06a.pdf |archive-date=2016-01-30  }}</ref>
| Point based global illumination
|Offline|| Point based global illumination (PBGI) discretizes the scene into a [[Point cloud|point-cloud]] which contains radiance information for the surface a point lies on.<ref>{{Cite web |title=Point-based Global Illumination |url=https://perso.telecom-paristech.fr/boubek/PBGI/#topics |url-status=live |archive-url=https://web.archive.org/web/20250218122512/https://perso.telecom-paristech.fr/boubek/PBGI/#topics |archive-date=2025-02-18 |access-date=2025-11-18 |website=perso.telecom-paristech.fr}}</ref> It has been extensively used in movie animations for its relative speed and lack of noise compared to per-pixel calculations like path tracing.<ref>{{cite web |last=Daemen |first=Karsten |date=November 14, 2012 |title=Point Based Global Illumination: An introduction |url=http://www.karstendaemen.com/thesis/files/intro_pbgi.pdf |archive-url=https://web.archive.org/web/20141222074728/http://www.karstendaemen.com/thesis/files/intro_pbgi.pdf |archive-date=2014-12-22 |publisher=KU Leuven}}</ref>
|-
|-
| [[Metropolis light transport]] || Builds upon bi-directional path tracing, unbiased, and multiplexed<ref>{{cite journal |last1=Hachisuka |first1=T. |last2=Kaplanyan |first2=A.S. |last3=Dachsbacher |first3=C. |title=Multiplexed metropolis light transport |journal=ACM Transactions on Graphics  |volume=33 |issue=4 |pages=1–10 |date=2014 |doi=10.1145/2601097.2601138 |s2cid=79980 |url=http://www.ci.i.u-tokyo.ac.jp/~hachisuka/mmlt.pdf |archive-url=https://web.archive.org/web/20150923060448/http://www.ci.i.u-tokyo.ac.jp/~hachisuka/mmlt.pdf |archive-date=2015-09-23 }}</ref>
| [[Metropolis light transport]]  
|Offline|| Builds upon bi-directional path tracing using the [[Metropolis–Hastings algorithm|Metropolis-Hastings algorithm]], exploring paths adjacent to ones which have already been found. It remains unbiased, while usually converging faster than path tracing. An extension was introduced called multiplexed metropolis light transport.<ref>{{cite journal |last1=Hachisuka |first1=T. |last2=Kaplanyan |first2=A.S. |last3=Dachsbacher |first3=C. |title=Multiplexed metropolis light transport |journal=ACM Transactions on Graphics  |volume=33 |issue=4 |pages=1–10 |date=2014 |doi=10.1145/2601097.2601138 |s2cid=79980 |url=http://www.ci.i.u-tokyo.ac.jp/~hachisuka/mmlt.pdf |archive-url=https://web.archive.org/web/20150923060448/http://www.ci.i.u-tokyo.ac.jp/~hachisuka/mmlt.pdf |archive-date=2015-09-23 }}</ref>
|-
|-
| [[Spherical harmonic lighting]] || Encodes global illumination results for [[real-time rendering]] of static scenes
|[[Image-based lighting]]
|Real-time
|Image-based lighting (IBL) can refer to a number of different effects. Usually, it refers to an approximate method of global illumination through the use of [[high-dynamic-range imaging|high-dynamic-range images]] (HDRIs), also known as environment maps, which encompass the entire scene and light surfaces based on their normal direction.
IBL has also been used to describe image proxies, or image-based reflections, which represent surfaces as flat image planes to improve the appearance of reflections. They have been used in games such as [[Remember Me (video game)|Remember Me]]<ref>{{Cite book |last1=Lagarde |first1=Sébastien |title=GPU Pro 4: Advanced Rendering Techniques |last2=Zanuttini |first2=Antoine |date=2013 |publisher=CRC Press, Taylor & Francis Group |isbn=978-1-4665-6743-6 |editor-last=Engel |editor-first=Wolfgang F. |edition=1 |location=Boca Raton |pages=51–68 |chapter=Practical Planar Reflections using Cubemaps and Image Proxies}}</ref> and [[Thief (2014 video game)|Thief (2014)]],<ref>{{Cite book |last1=Sikachev |first1=Peter |title=GPU Pro 6: Advanced Rendering Techniques |last2=Delmont |first2=Samuel |last3=Doyon |first3=Uriel |last4=Bucci |first4=Jean-Normand |date=2016 |publisher=CRC Press/Taylor Francis Group |isbn=978-1-4822-6461-6 |editor-last=Engel |editor-first=Wolfgang F. |location=Boca Raton |pages=65–90 |chapter=Next-Generation Rendering in Thief}}</ref> as well as the [[Unreal Engine 3]] Samaritan demo.<ref>{{Cite web |title=Image Based Reflections |url=https://docs.unrealengine.com/udk/Three/ImageBasedReflections.html |archive-url=https://web.archive.org/web/20250717131708/https://docs.unrealengine.com/udk/Three/ImageBasedReflections.html |archive-date=2025-07-17 |website=UDK}}</ref>
|-
|-
| [[Ambient occlusion]] || -
| [[Ambient occlusion]]  
|Real-time|| An approximate solution to global illumination that shades the areas of a scene most likely to be occluded by another object. It describes how "exposed" a point in the scene is to incoming light, and has been useful to improve realism for a comparatively low cost as opposed to indirect light. The effect can be reproduced through alterations to other methods, such as VXGI or SSGI.
|-
|-
| Voxel-based global illumination || Several variants exist, including voxel cone tracing global illumination,<ref>{{cite web|url=http://on-demand.gputechconf.com/gtc/2012/presentations/SB134-Voxel-Cone-Tracing-Octree-Real-Time-Illumination.pdf |archive-url=https://web.archive.org/web/20130903101803/http://on-demand.gputechconf.com/gtc/2012/presentations/SB134-Voxel-Cone-Tracing-Octree-Real-Time-Illumination.pdf |archive-date=2013-09-03 |url-status=live |title=Voxel Cone Tracing and Sparse Voxel Octree for Real-time Global Illumination |author=Cyril Crassin |website=On-demand.gputechconf.com |access-date=2016-12-02}}</ref> sparse voxel octree global illumination, and voxel global illumination (VXGI)<ref name="geforce">{{cite web|url=http://www.geforce.com/hardware/technology/vxgi|title=VXGI &#124; GeForce|date=8 April 2015 |publisher=geforce.com|access-date=2016-05-14}}</ref>
| Irradiance volumes
|Real-time|| Irradiance volumes encode global illumination results in evenly spaced points in 3D space (probes) for rendering of static scenes.<ref>{{Cite journal |last1=Greger |first1=Gene |last2=Shirley |first2=Peter |last3=Hubbard |first3=Philip M. |last4=Greenberg |first4=Donald P. |date=1998-03-01 |title=The Irradiance Volume |url=https://doi.org/10.1109/38.656788 |journal=IEEE Comput. Graph. Appl. |volume=18 |issue=2 |pages=32–43 |doi=10.1109/38.656788 |bibcode=1998ICGA...18b..32G |issn=0272-1716|url-access=subscription }}</ref> Dynamic surfaces can be lit based on their position inside the volume and their normal direction. Initially used [[Cube mapping|cubemaps]] to store irradiance at each probe, but was later improved by compressing into [[Spherical harmonic lighting|spherical harmonics]] (SH).<ref>{{Cite web |last=Oat |first=Christopher |date=2005 |title=Irradiance Volumes for Games |url=https://www.chrisoat.com/papers/Oat_GDC2005_IrradianceVolumesForGames.pdf}}</ref>
|-
|-
| Light propagation volumes global illumination<ref name="unrealengine">{{cite web|url=https://wiki.unrealengine.com/Light_Propagation_Volumes_GI|title=Light Propagation Volumes GI - Epic Wiki|publisher=wiki.unrealengine.com|access-date=2016-05-14}}</ref> || Light propagation volumes is a technique to approximately achieve global illumination (GI) in real-time.
| Light propagation volumes  
It uses lattices and spherical harmonics (SH) to represent the spatial and angular distribution of light in the scene. Variant cascaded light propagation volumes.<ref>{{cite book |last1=Engelhardt |first1=T. |last2=Dachsbacher |first2=C. |chapter=Granular visibility queries on the GPU |chapter-url=http://www.vis.uni-stuttgart.de/~dachsbcn/download/lpv.pdf |title=Proceedings of the 2009 symposium on Interactive 3D graphics and games |publisher= |location= |date=2009 |isbn=978-1-60558-429-4 |pages=161–7 |url= |doi=10.1145/1507149.1507176|s2cid=14841843 |archive-url=https://web.archive.org/web/20160118035359/http://www.vis.uni-stuttgart.de/~dachsbcn/download/lpv.pdf |archive-date=2016-01-18 }}</ref>
|Real-time|| The light propagation volume (LPV) approximately achieves global illumination in real-time with lattices and spherical harmonics to represent the spatial and angular distribution of light in the scene.<ref name="unrealengine">{{cite web |last=Kaplanyan |first=Anton |date=2009-08-03 |title=Light Propagation Volumes in CryEngine 3 |url=https://advances.realtimerendering.com/s2009/Light_Propagation_Volumes.pdf |access-date=2025-11-16}}</ref> The technique was later expanded to include approximate occlusion and specular indirect lighting, as well as farther coverage through the nesting of multiple lattices with decreasing resolution.<ref>{{cite book |last1=Kaplanyan |first1=Anton |url=https://dl.acm.org/doi/10.1145/1730804.1730821 |title=Proceedings of the 2010 ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games |last2=Dachsbacher |first2=Carsten |date=2010-02-19 |publisher= |isbn=9781605589398 |chapter=Cascaded light propagation volumes for real-time indirect illumination |doi=10.1145/1730804.1730821 |chapter-url=http://www.vis.uni-stuttgart.de/~dachsbcn/download/lpv.pdf |archive-url=https://web.archive.org/web/20160118035359/http://www.vis.uni-stuttgart.de/~dachsbcn/download/lpv.pdf |archive-date=2016-01-18}}</ref> It was used in earlier versions of [[CryEngine]] and [[Unreal Engine]].<ref>{{Cite web |title=Light Propagation Volumes {{!}} Unreal Engine 4.27 Documentation {{!}} Epic Developer Community |url=https://dev.epicgames.com/documentation/en-us/unreal-engine/lighting-the-environment-in-unreal-engine |access-date=2025-11-17 |website=Epic Games Developer |language=en-us}}</ref>
|-
|-
| Deferred radiance transfer global illumination<ref>{{cite web|url=http://twvideo01.ubm-us.net/o1/vault/gdc2012/slides/Programming%20Track/Stefanov_Nikolay_DeferredRadianceTransfer.pdf |archive-url=https://web.archive.org/web/20140906141942/http://twvideo01.ubm-us.net/o1/vault/gdc2012/slides/Programming%20Track/Stefanov_Nikolay_DeferredRadianceTransfer.pdf |archive-date=2014-09-06 |url-status=live |title=Deferred Radiance Transfer Volumes: Global Illumination in Far Cry 3 |website=Twvideo01.ubm-us.net |access-date=2016-12-02}}</ref> ||
| Voxel-based solutions
|Real-time|| Voxel-based techniques use a discretization of the scene into a volume to simplify lighting calculations. Solutions in this category might store varying information, such as geometric occupancy only, or the material properties of underlying surfaces, etc. Examples include compressed radiance caching volumes,<ref>{{Cite journal |last1=Vardis |first1=Kostas |last2=Papaioannou |first2=Georgios |last3=Gkaravelis |first3=Anastasios |date=2014-12-16 |editor-last=Stamminger |editor-first=Marc |editor2-last=McGuire |editor2-first=Morgan |title=Real-time Radiance Caching using Chrominance Compression |url=https://jcgt.org/published/0003/04/06/ |journal=The Journal of Computer Graphics Techniques |volume=3 |issue=4 |pages=111–131}}</ref> voxel cone tracing,<ref>{{Cite book |last1=Crassin |first1=Cyril |last2=Neyret |first2=Fabrice |last3=Sainz |first3=Miguel |last4=Green |first4=Simon |last5=Eisemann |first5=Elmar |chapter=Interactive indirect illumination using voxel-based cone tracing: An insight |date=2011-08-07 |title=ACM SIGGRAPH 2011 Talks |chapter-url=https://doi.org/10.1145/2037826.2037853 |series=SIGGRAPH '11 |location=New York, NY, USA |publisher=Association for Computing Machinery |pages=1 |doi=10.1145/2037826.2037853 |isbn=978-1-4503-0974-5|chapter-url-access=subscription }}</ref> sparse voxel octrees,<ref>{{Cite web |title=Voxel-Based Global Illumination (SVOGI) |url=https://www.cryengine.com/docs/static/engines/cryengine-5/categories/23756816/pages/25535599 |access-date=2025-11-17 |website=CRYENGINE}}</ref> and VXGI.<ref name="geforce">{{cite web |date=2015-04-08 |title=VXGI &#124; GeForce |url=http://www.geforce.com/hardware/technology/vxgi |url-status=deviated |archive-url=https://web.archive.org/web/20160525050026/http://www.geforce.com/hardware/technology/vxgi |archive-date=25 May 2016 |access-date=2016-05-14 |publisher=geforce.com}}</ref> Voxel cone tracing was used and improved in [[The Tomorrow Children]], where the technique provided the entirety of the lighting in the game.<ref>{{Cite web |last=McLaren |first=James |date=2014-09-03 |title=Cascaded Voxel Cone Tracing in The Tomorrow Children |url=https://fumufumu.q-games.com/archives/Cascaded_Voxel_Cone_Tracing_final.pdf |access-date=2025-11-17}}</ref>
|-
|-
| Deep G-buffer based global illumination<ref name="williams">{{cite web|url=http://graphics.cs.williams.edu/papers/DeepGBuffer14/|title=Fast Global Illumination Approximations on Deep G-Buffers|publisher=graphics.cs.williams.edu|access-date=2016-05-14|archive-url=https://web.archive.org/web/20160221013732/http://graphics.cs.williams.edu/papers/DeepGBuffer14/|archive-date=2016-02-21}}</ref> ||
| Precomputed probe solutions
|Real-time||Extensions of the irradiance volume that simulate global illumination of dynamic light sources by relighting the scene based on non-lighting information, such as geometry or visibility, precomputed in a "baking" stage beforehand. Examples of this technique include deferred radiance transfer volumes<ref>{{Cite web |last1=Gilabert |first1=Mickael |last2=Stefanov |first2=Nikolay |date=2012-03-09 |title=Deferred Radiance Transfer Volumes: Global Illumination in Far Cry 3 |url=https://gdcvault.com/play/1015326/Deferred-Radiance-Transfer-Volumes-Global |access-date=2025-11-17 |website=gdcvault.com}}</ref> and a successor used in ''[[Tom Clancy's The Division]]''.<ref>{{Cite web |last=Stefanov |first=Nikolay |date=2016-03-16 |title=Global Illumination in 'Tom Clancy's The Division' |url=https://gdcvault.com/play/1023273/Global-Illumination-in-Tom-Clancy |access-date=2025-11-17 |website=gdcvault.com}}</ref>
|-
|-
| Signed Distance Fields Dynamic Diffuse Global Illumination<ref name="Hu">{{cite arXiv
| Screen-space global illumination
| title=Signed Distance Fields Dynamic Diffuse Global Illumination
|Real-time||Screen-space global illumination (SSGI) methods use the information visible to the screen, usually through the use of an already existing [[G-buffer|G-Buffer]], to approximate indirect lighting. Variants exist for [[Screen space ambient occlusion|ambient occlusion (SSAO)]], for which the technique was initially developed, and [[Screen space reflection|specular reflections (SSR)]].
| date      = 2020
The most common approach is screen-space ray marching.<ref>{{Cite web |last=Sachdeva |first=Shubham |date=2022-04-22 |title=Dynamic, Noise Free, Screen Space Diffuse Global Illumination |url=https://gamehacker1999.github.io/posts/SSGI/ |archive-url=https://web.archive.org/web/20250409222039/https://gamehacker1999.github.io/posts/SSGI/ |archive-date=2025-04-09 |access-date=2025-11-17 |website=Shubham Sachdeva Blog}}</ref> Additional techniques include screen space directional occlusion,<ref>{{Cite book |last1=Ritschel |first1=Tobias |last2=Grosch |first2=Thorsten |last3=Seidel |first3=Hans-Peter |chapter=Approximating dynamic global illumination in image space |date=2009-02-27 |title=Proceedings of the 2009 symposium on Interactive 3D graphics and games |chapter-url=https://doi.org/10.1145/1507149.1507161 |series=I3D '09 |location=New York, NY, USA |publisher=Association for Computing Machinery |pages=75–82 |doi=10.1145/1507149.1507161 |isbn=978-1-60558-429-4|chapter-url-access=subscription }}</ref> "deep" buffers,<ref>{{Cite journal |last1=Mara |first1=Michael |last2=McGuire |first2=Morgan |last3=Nowrouzezahrai |first3=Derek |last4=Luebke |first4=David |date=2016-06-24 |title=Deep G-Buffers for Stable Global Illumination Approximation |url=https://casual-effects.com/research/Mara2016DeepGBuffer/index.html#images |journal=Proceedings of the High Performance Graphics 2016 |pages=11}}</ref><ref>{{Cite book |last1=Nalbach |first1=Oliver |last2=Ritschel |first2=Tobias |last3=Seidel |first3=Hans-Peter |chapter=Deep screen space |date=2014-03-14 |title=Proceedings of the 18th meeting of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games |chapter-url=https://doi.org/10.1145/2556700.2556708 |series=I3D '14 |location=New York, NY, USA |publisher=Association for Computing Machinery |pages=79–86 |doi=10.1145/2556700.2556708 |isbn=978-1-4503-2717-6|chapter-url-access=subscription }}</ref> and horizon-based visibility bitmasks.<ref>{{Cite journal |last1=Therrien |first1=Oliver |last2=Levesque |first2=Yannick |last3=Gilet |first3=Guillaume |date=2023 |title=Screen Space Indirect Lighting with Visibility Bitmask |url=https://link.springer.com/article/10.1007/s00371-022-02703-y |journal=The Visual Computer |volume=39 |issue=11 |pages=5925–5936 |doi=10.1007/s00371-022-02703-y |arxiv=2301.11376 |via=Springer}}</ref>
| last1     = Hu
| first1     = Jinkai
| last2     = K. Yip
| first2     = Milo
| last3     = Elias Alonso
| first3     = Guillermo
| last4      = Shi-hao
| first4    = Gu
| last5      = Tang
| first5    = Xiangjun
| last6      = Xiaogang
| first6    = Jin
| class = cs.GR
| eprint = 2007.14394
}}</ref> ||
|-
|-
|Global Illumination Based on Surfels<ref name="Halen">{{cite web|url=http://advances.realtimerendering.com/s2021/index.html|title=Global Illumination Based on Surfels|publisher=SIGGRAPH|access-date=2021-12-02}}</ref> ||
| Dynamic Diffuse Global Illumination
|Real-time||Unlike precomputed probe solutions, Dynamic Diffuse Global Illumination (DDGI) uses probes to calculate both lighting and geometric information in real time, using [[Nvidia RTX|hardware-accelerated]] ray tracing to approximate geometry.<ref>{{Cite journal |last1=Majercik |first1=Zander |last2=Guertin |first2=Jean-Philippe |last3=Nowrouzezahrai |first3=Derek |last4=McGuire |first4=Morgan |date=2019-06-05 |editor-last=Willmott |editor-first=Andrer |editor2-last=Olano |editor2-first=Marc |title=Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields |url=https://jcgt.org/published/0008/02/01/ |journal=Journal of Computer Graphics Techniques |volume=8 |issue=2 |pages=1–30 |issn=2331-7418}}</ref> An offshoot of this technique uses [[Signed distance function|SDF]] primitives to represent a scene and reflective shadow maps to sample lights, improving on performance by removing the hardware requirement and better approximating occlusions, at the cost of manual setup.<ref name="Hu">{{cite arXiv |eprint=2007.14394 |class=cs.GR |first1=Jinkai |last1=Hu |first2=Milo |last2=K. Yip |title=Signed Distance Fields Dynamic Diffuse Global Illumination |date=2020 |last3=Elias Alonso |first3=Guillermo |last4=Shi-hao |first4=Gu |last5=Tang |first5=Xiangjun |last6=Xiaogang |first6=Jin}}</ref>
|-
|Global Illumination Based on Surfels  
|Real-time||A technique created by [[Electronic Arts]]' SEED group that discretizes the scene with surface elements, "[[surfel]]s", in real time, and uses them to accumulate the result of light calculations done through hardware ray tracing.<ref name="Halen">{{cite web |last1=Brinck |first1=Andreas |last2=Bei |first2=Xiangshun |last3=Halen |first3=Henrik |last4=Hayward |first4=Kyle |date=2021-08-11 |title=Global Illumination Based on Surfels |url=http://advances.realtimerendering.com/s2021/index.html |access-date=2021-12-02 |website=Advances in Real-Time Rendering in Games |publisher=SIGGRAPH}}</ref> It borrows from the ideas of point based global illumination. It is currently integrated into the [[Frostbite (game engine)|Frostbite]] engine.
|-
|Lumen
|Real-time
|A full global illumination solution that relies on an advanced screen-space radiance caching method, alongside an SDF volume representation of objects, to provide accurate and stable indirect lighting, shadowing, and reflections within a fully dynamic scene.<ref>{{Cite web |title=Lumen Technical Details in Unreal Engine {{!}} Unreal Engine 5.7 Documentation {{!}} Epic Developer Community |url=https://dev.epicgames.com/documentation/en-us/unreal-engine/lumen-technical-details-in-unreal-engine |access-date=2025-11-17 |website=Epic Games Developer |language=en-us}}</ref> Screen probes use [[importance sampling]] techniques to intelligently distribute rays, and distant lighting uses a world space probe fallback.<ref>{{Cite web |last=Wright |first=Daniel |date=2021-08-11 |title=Radiance Caching for Real-Time Global Illumination |url=https://advances.realtimerendering.com/s2021/index.html |access-date=2025-11-17 |website=Advances in Real-Time Rendering in Games |publisher=SIGGRAPH}}</ref> It is integrated into [[Unreal Engine 5]].
|}
|}


==See also==
==See also==
 
*[[Rendering equation]]
*[[:Category:Global illumination software]]
*[[Bias of an estimator]]
*[[Bias of an estimator]]
*[[Bidirectional scattering distribution function]]
*[[Bidirectional scattering distribution function]]
*[[Consistent estimator]]
*[[Consistent estimator]]
*[[Unbiased rendering]]
*[[Unbiased rendering]]
*[[:Category:Global illumination software]]


==References==
==References==
Line 104: Line 108:
==External links==
==External links==
*[https://archive.org/details/MarcC_AoI-Global_Illumination Video demonstrating global illumination and the ambient color effect]
*[https://archive.org/details/MarcC_AoI-Global_Illumination Video demonstrating global illumination and the ambient color effect]
*[https://extremeistan.wordpress.com/2014/05/11/realtime-global-illumination-techniques-collection/ Collection of real-time GI techniques]
*[http://realtimeradiosity.com/demos Real-time GI demos] – survey of practical real-time GI techniques as a list of executable demos
*[http://realtimeradiosity.com/demos Real-time GI demos] – survey of practical real-time GI techniques as a list of executable demos
*[http://www.cs.kuleuven.be/~phil/GI/ kuleuven] - This page contains the Global Illumination Compendium, an effort to bring together most of the useful formulas and equations for global illumination algorithms in computer graphics.
*[http://www.cs.kuleuven.be/~phil/GI/ kuleuven] - This page contains the Global Illumination Compendium, an effort to bring together most of the useful formulas and equations for global illumination algorithms in computer graphics.
*[http://scratchapixel.com/lessons/3d-basic-rendering/global-illumination-path-tracing/introduction-global-illumination-path-tracing Theory and practical implementation of Global Illumination using Monte Carlo Path Tracing.]
*[http://scratchapixel.com/lessons/3d-basic-rendering/global-illumination-path-tracing/introduction-global-illumination-path-tracing Theory and practical implementation of Global Illumination using Monte Carlo Path Tracing.]
{{Computer graphics}}


{{DEFAULTSORT:Global Illumination}}
{{DEFAULTSORT:Global Illumination}}
{{Computer graphics}}
[[Category:Global illumination algorithms]]
[[Category:Global illumination algorithms]]

Latest revision as of 01:46, 12 May 2026

TemplateStyles' src attribute must not be empty.

Template:3D computer graphics

Rendering without global illumination. Areas that lie outside of the ceiling lamp's direct light lack definition. For example, the lamp's housing appears completely uniform. Without the ambient light added into the render, it would appear uniformly black.
Rendering with global illumination. Light is reflected by surfaces, and colored light transfers from one surface to another. Notice how color from the red wall and green wall (not visible) reflects onto other surfaces in the scene. Also notable is the caustic projected onto the red wall from light passing through the glass sphere.

Global illumination (GI), or indirect illumination, refers to a group of algorithms used in 3D computer graphics meant to add more realistic lighting to 3D scenes. Such algorithms take into account not only the light that comes directly from a light source (direct illumination), but also subsequent "bounces" where light rays are reflected by other surfaces in the scene (indirect illumination).

The term "global illumination" was first used by Turner Whitted in his paper "An improved illumination model for shaded display",[1] to differentiate between illumination calculations at a local scale (using geometric information directly, such as in Phong shading), a microscopic scale (extending local geometry with microfacet detail), and a global scale, including not only the geometry itself but also the visibility of every other object in the scene.[2] Theoretically, reflections, refractions, transparency, and shadows are all examples of global illumination, because when simulating them, one object affects the rendering of another (as opposed to an object being affected only by a direct source of light). In practice, however, only the simulation of diffuse inter-reflection or caustics is called global illumination, especially in real-time settings.

Algorithms

Global illumination is a key aspect to the realism of a 3D scene. Naive 3D lighting will only take into account direct light, meaning any light which radiates off a light source and bounces directly into the virtual camera. Shadows will appear completely dark, due to light not interacting with any other surface before it reaches the camera. As this is not what occurs in real life, we perceive the resulting image as incomplete. Applying full global illumination allows for the missing effects that makes an image feel more natural. However, global illumination is computationally more expensive and consequently much slower to generate.

File:Alexexterior2.jpg
Exterior view of an architectural model

Most algorithms, especially those focusing on real-time solutions, model diffuse inter-reflection exclusively, which is a very important part of global illumination; however, some also model indirect specular reflections, refraction, and indirect shadowing, which allows for a closer approximation of the reality and produces more appealing images. The algorithms used to calculate the distribution of light energy between surfaces of a scene are closely related to heat transfer simulations performed using finite-element methods in engineering design.

Radiosity, ray tracing, beam tracing, cone tracing, path tracing, Metropolis light transport and photon mapping are all examples of algorithms used for global illumination in offline settings, some of which may be used together to yield results that trade between accuracy and speed, depending on the implementation.

Real-time applications

File:Show how 3D real time ambient occlusion works 2013-11-23 10-45.jpeg
Example of an ambient occlusion layer

Achieving accurate computation of global illumination in real-time remains difficult.[3] On one end, the diffuse inter-reflection component of global illumination is sometimes approximated by an "ambient" term in the lighting equation, which is also called "ambient lighting" or "ambient color" in 3D software. Though this method is one of the cheapest ways to simulate indirect lighting, when used alone it does not provide an adequately realistic effect. Ambient lighting is known to "flatten" shadows in 3D scenes, making the overall visual effect more bland. Beyond ambient lighting, techniques which trace the path of light accurately have historically been either too slow for consumer hardware or limited to static and precomputed environments. A classic real-time approach is precomputed radiance transfer, which precomputes light transport so that low-frequency lighting can be changed in real time while preserving effects such as soft shadows and interreflections, but its original form generally assumed fixed geometry and could not vary lighting and view simultaneously in real time.[4][5] This proves problematic, as most applications allow for input from a user that can affect their surroundings, and the precalculation steps may introduce constraints upon the artists. Consequently, research has been dedicated to finding a balance between adequate performance, accurate visual results, and interactivity.

Starting with Nvidia's RTX 20 series, consumer graphics hardware has been extended to allow for ray tracing computations to be performed in real time through hardware acceleration. This has allowed for further improvements, as applications can now harness the power of this acceleration to provide not only precise lighting results, but the ability to affect said lighting dynamically. Some content that has taken advantage of this capability includes Cyberpunk 2077, Indiana Jones and the Great Circle, and Alan Wake 2, among others.[6][7]

For an overview of the current state of real-time global illumination, see [8] or.[9]

Procedure

Algorithms which attempt to simulate global illumination are numerical approximations of the rendering equation. Well-known algorithms for computing global illumination include path tracing, photon mapping and radiosity. The following approaches can be distinguished here:

  • Inversion: Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle L = (1-T)^{-1} L^e\,}
    • Not applied in practice
  • Expansion: Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle L = \sum_{i=0}^\infty T^iL^e}
  • Iteration: Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle L_n tl_ e + = L ^{(n-1)}}

A full overview can be found in.[10]

List of methods

Method Application Description/Notes
Ray tracing Offline/Real-time The process of tracing a set of virtual paths (rays) from one point in space to another, testing for intersections with geometry. Ray tracing is useful as it can imitate the way light physically travels in the real world. Several variants exist for solving problems related to sampling, aliasing, and soft shadows, such as Distributed ray tracing, cone tracing, and beam tracing.
Path tracing Offline An extension to ray tracing that uses the Monte Carlo method of sampling to approximate a solution to the rendering equation. This makes path tracing unbiased. Variants include bi-directional path tracing and energy redistribution path tracing.[11]
Photon mapping Offline Rays from both the camera and each light source are traced around the scene and connected to produce plausible radiance. It provides consistent results, but is biased. Variants include progressive photon mapping and stochastic progressive photon mapping.[12]
Radiosity Offline A finite element method approach to the rendering equation, dividing the scene into patches and computing the radiosity between each patch. It is good for precomputations, but assumes completely diffuse geometries. Improved versions include instant radiosity[13] and bidirectional instant radiosity,[14] both of which use virtual point lights (VPLs) instead of patches.
Lightcuts Offline A method of improving performance when computing the contribution of several light sources at a surface, by clustering lights into a light tree and selectively choosing the appropriate "cut" for each point.[15] Enhanced variants include multidimensional lightcuts and bidirectional lightcuts.
Point based global illumination Offline Point based global illumination (PBGI) discretizes the scene into a point-cloud which contains radiance information for the surface a point lies on.[16] It has been extensively used in movie animations for its relative speed and lack of noise compared to per-pixel calculations like path tracing.[17]
Metropolis light transport Offline Builds upon bi-directional path tracing using the Metropolis-Hastings algorithm, exploring paths adjacent to ones which have already been found. It remains unbiased, while usually converging faster than path tracing. An extension was introduced called multiplexed metropolis light transport.[18]
Image-based lighting Real-time Image-based lighting (IBL) can refer to a number of different effects. Usually, it refers to an approximate method of global illumination through the use of high-dynamic-range images (HDRIs), also known as environment maps, which encompass the entire scene and light surfaces based on their normal direction.

IBL has also been used to describe image proxies, or image-based reflections, which represent surfaces as flat image planes to improve the appearance of reflections. They have been used in games such as Remember Me[19] and Thief (2014),[20] as well as the Unreal Engine 3 Samaritan demo.[21]

Ambient occlusion Real-time An approximate solution to global illumination that shades the areas of a scene most likely to be occluded by another object. It describes how "exposed" a point in the scene is to incoming light, and has been useful to improve realism for a comparatively low cost as opposed to indirect light. The effect can be reproduced through alterations to other methods, such as VXGI or SSGI.
Irradiance volumes Real-time Irradiance volumes encode global illumination results in evenly spaced points in 3D space (probes) for rendering of static scenes.[22] Dynamic surfaces can be lit based on their position inside the volume and their normal direction. Initially used cubemaps to store irradiance at each probe, but was later improved by compressing into spherical harmonics (SH).[23]
Light propagation volumes Real-time The light propagation volume (LPV) approximately achieves global illumination in real-time with lattices and spherical harmonics to represent the spatial and angular distribution of light in the scene.[24] The technique was later expanded to include approximate occlusion and specular indirect lighting, as well as farther coverage through the nesting of multiple lattices with decreasing resolution.[25] It was used in earlier versions of CryEngine and Unreal Engine.[26]
Voxel-based solutions Real-time Voxel-based techniques use a discretization of the scene into a volume to simplify lighting calculations. Solutions in this category might store varying information, such as geometric occupancy only, or the material properties of underlying surfaces, etc. Examples include compressed radiance caching volumes,[27] voxel cone tracing,[28] sparse voxel octrees,[29] and VXGI.[30] Voxel cone tracing was used and improved in The Tomorrow Children, where the technique provided the entirety of the lighting in the game.[31]
Precomputed probe solutions Real-time Extensions of the irradiance volume that simulate global illumination of dynamic light sources by relighting the scene based on non-lighting information, such as geometry or visibility, precomputed in a "baking" stage beforehand. Examples of this technique include deferred radiance transfer volumes[32] and a successor used in Tom Clancy's The Division.[33]
Screen-space global illumination Real-time Screen-space global illumination (SSGI) methods use the information visible to the screen, usually through the use of an already existing G-Buffer, to approximate indirect lighting. Variants exist for ambient occlusion (SSAO), for which the technique was initially developed, and specular reflections (SSR).

The most common approach is screen-space ray marching.[34] Additional techniques include screen space directional occlusion,[35] "deep" buffers,[36][37] and horizon-based visibility bitmasks.[38]

Dynamic Diffuse Global Illumination Real-time Unlike precomputed probe solutions, Dynamic Diffuse Global Illumination (DDGI) uses probes to calculate both lighting and geometric information in real time, using hardware-accelerated ray tracing to approximate geometry.[39] An offshoot of this technique uses SDF primitives to represent a scene and reflective shadow maps to sample lights, improving on performance by removing the hardware requirement and better approximating occlusions, at the cost of manual setup.[40]
Global Illumination Based on Surfels Real-time A technique created by Electronic Arts' SEED group that discretizes the scene with surface elements, "surfels", in real time, and uses them to accumulate the result of light calculations done through hardware ray tracing.[41] It borrows from the ideas of point based global illumination. It is currently integrated into the Frostbite engine.
Lumen Real-time A full global illumination solution that relies on an advanced screen-space radiance caching method, alongside an SDF volume representation of objects, to provide accurate and stable indirect lighting, shadowing, and reflections within a fully dynamic scene.[42] Screen probes use importance sampling techniques to intelligently distribute rays, and distant lighting uses a world space probe fallback.[43] It is integrated into Unreal Engine 5.

See also

References

  1. Whitted, Turner (June 1, 1980). "An improved illumination model for shaded display". Commun. ACM. 23 (6): 343–349. doi:10.1145/358876.358882. ISSN 0001-0782.
  2. Whitted, Turner (January 1, 2020). "Origins of Global Illumination". IEEE Computer Graphics and Applications. 40 (1): 20–27. Bibcode:2020ICGA...40a..20W. doi:10.1109/MCG.2019.2957688. ISSN 0272-1716. PMID 31944940.
  3. Kurachi, Noriko (2011). The Magic of Computer Graphics. CRC Press. p. 339. ISBN 9781439873571. Retrieved September 24, 2017.
  4. Sloan, Peter-Pike; Kautz, Jan; Snyder, John (2002). "Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environments" (PDF). ACM SIGGRAPH 2002 Conference Proceedings. Microsoft Research.
  5. Ramamoorthi, Ravi. "Precomputation-Based Rendering" (PDF). Foundations and Trends in Computer Graphics and Vision.
  6. "List of games that support ray tracing". PCGamingWiki. Retrieved November 17, 2025.
  7. Burnes, Andrew (January 30, 2025). "NVIDIA DLSS & GeForce RTX: List Of All Games, Engines And Applications Featuring GeForce RTX-Powered Technology And Features". NVIDIA. Retrieved November 18, 2025.
  8. Toth, Benoit (March 21, 2022). "The state-of-art of Dynamic Global Illumination in video-games". Cnam-Enjmin.
  9. Tuo, Chen; Ziheng, Zhou; Zhenyu, Wu; Songhai, Zhang (March 12, 2025). "Overview of Real-Time Global Illumination Rendering Methods without Pre-Processing". Journal of Computer-Aided Design & Computer Graphics (in Chinese and English). 37 (7): 1101–1115. doi:10.3724/SP.J.1089.2024-00683. ISSN 1003-9775.
  10. Dutre, Philip; Bekaert, Philippe; Bala, Kavita (September 25, 2006). Advanced Global Illumination (2nd ed.). AK Peters. ISBN 9781568813073.
  11. Cline, D.; Talbot, J.; Egbert, P. (2005). "Energy redistribution path tracing". ACM Transactions on Graphics. 24 (3): 1186–95. doi:10.1145/1073204.1073330.
  12. "Toshiya Hachisuka at UTokyo". ci.i.u-tokyo.ac.jp. Retrieved May 14, 2016.
  13. "Instant Radiosity: Keller (SIGGRAPH 1997)" (PDF). Cs.cornell.edu. Archived (PDF) from the original on June 18, 2012. Retrieved December 2, 2016.
  14. Segovia, B.; Iehl, J.C.; Mitanchey, R.; Péroche, B. (2006). "Bidirectional instant radiosity" (PDF). Rendering Techniques. Eurographics Association. pp. 389–397. Archived (PDF) from the original on January 30, 2016.
  15. Walter, Bruce; Fernandez, Sebastian; Arbree, Adam; Bala, Kavita; Donikian, Michael; Greenberg, Donald P. (July 1, 2005). "Lightcuts". ACM Transactions on Graphics. 24 (3): 1098–1107. doi:10.1145/1073204.1073318.
  16. "Point-based Global Illumination". perso.telecom-paristech.fr. Archived from the original on February 18, 2025. Retrieved November 18, 2025.
  17. Daemen, Karsten (November 14, 2012). "Point Based Global Illumination: An introduction" (PDF). KU Leuven. Archived from the original (PDF) on December 22, 2014.
  18. Hachisuka, T.; Kaplanyan, A.S.; Dachsbacher, C. (2014). "Multiplexed metropolis light transport" (PDF). ACM Transactions on Graphics. 33 (4): 1–10. doi:10.1145/2601097.2601138. S2CID 79980. Archived from the original (PDF) on September 23, 2015.
  19. Lagarde, Sébastien; Zanuttini, Antoine (2013). "Practical Planar Reflections using Cubemaps and Image Proxies". In Engel, Wolfgang F. (ed.). GPU Pro 4: Advanced Rendering Techniques (1 ed.). Boca Raton: CRC Press, Taylor & Francis Group. pp. 51–68. ISBN 978-1-4665-6743-6.
  20. Sikachev, Peter; Delmont, Samuel; Doyon, Uriel; Bucci, Jean-Normand (2016). "Next-Generation Rendering in Thief". In Engel, Wolfgang F. (ed.). GPU Pro 6: Advanced Rendering Techniques. Boca Raton: CRC Press/Taylor Francis Group. pp. 65–90. ISBN 978-1-4822-6461-6.
  21. "Image Based Reflections". UDK. Archived from the original on July 17, 2025.
  22. Greger, Gene; Shirley, Peter; Hubbard, Philip M.; Greenberg, Donald P. (March 1, 1998). "The Irradiance Volume". IEEE Comput. Graph. Appl. 18 (2): 32–43. Bibcode:1998ICGA...18b..32G. doi:10.1109/38.656788. ISSN 0272-1716.
  23. Oat, Christopher (2005). "Irradiance Volumes for Games" (PDF).
  24. Kaplanyan, Anton (August 3, 2009). "Light Propagation Volumes in CryEngine 3" (PDF). Retrieved November 16, 2025.
  25. Kaplanyan, Anton; Dachsbacher, Carsten (February 19, 2010). "Cascaded light propagation volumes for real-time indirect illumination" (PDF). Proceedings of the 2010 ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games. doi:10.1145/1730804.1730821. ISBN 9781605589398. Archived from the original (PDF) on January 18, 2016.
  26. "Light Propagation Volumes | Unreal Engine 4.27 Documentation | Epic Developer Community". Epic Games Developer. Retrieved November 17, 2025.
  27. Vardis, Kostas; Papaioannou, Georgios; Gkaravelis, Anastasios (December 16, 2014). Stamminger, Marc; McGuire, Morgan (eds.). "Real-time Radiance Caching using Chrominance Compression". The Journal of Computer Graphics Techniques. 3 (4): 111–131.
  28. Crassin, Cyril; Neyret, Fabrice; Sainz, Miguel; Green, Simon; Eisemann, Elmar (August 7, 2011). "Interactive indirect illumination using voxel-based cone tracing: An insight". ACM SIGGRAPH 2011 Talks. SIGGRAPH '11. New York, NY, USA: Association for Computing Machinery. p. 1. doi:10.1145/2037826.2037853. ISBN 978-1-4503-0974-5.
  29. "Voxel-Based Global Illumination (SVOGI)". CRYENGINE. Retrieved November 17, 2025.
  30. "VXGI | GeForce". geforce.com. April 8, 2015. Archived from the original on May 25, 2016. Retrieved May 14, 2016. Invalid |url-status=deviated (help)
  31. McLaren, James (September 3, 2014). "Cascaded Voxel Cone Tracing in The Tomorrow Children" (PDF). Retrieved November 17, 2025.
  32. Gilabert, Mickael; Stefanov, Nikolay (March 9, 2012). "Deferred Radiance Transfer Volumes: Global Illumination in Far Cry 3". gdcvault.com. Retrieved November 17, 2025.
  33. Stefanov, Nikolay (March 16, 2016). "Global Illumination in 'Tom Clancy's The Division'". gdcvault.com. Retrieved November 17, 2025.
  34. Sachdeva, Shubham (April 22, 2022). "Dynamic, Noise Free, Screen Space Diffuse Global Illumination". Shubham Sachdeva Blog. Archived from the original on April 9, 2025. Retrieved November 17, 2025.
  35. Ritschel, Tobias; Grosch, Thorsten; Seidel, Hans-Peter (February 27, 2009). "Approximating dynamic global illumination in image space". Proceedings of the 2009 symposium on Interactive 3D graphics and games. I3D '09. New York, NY, USA: Association for Computing Machinery. pp. 75–82. doi:10.1145/1507149.1507161. ISBN 978-1-60558-429-4.
  36. Mara, Michael; McGuire, Morgan; Nowrouzezahrai, Derek; Luebke, David (June 24, 2016). "Deep G-Buffers for Stable Global Illumination Approximation". Proceedings of the High Performance Graphics 2016: 11.
  37. Nalbach, Oliver; Ritschel, Tobias; Seidel, Hans-Peter (March 14, 2014). "Deep screen space". Proceedings of the 18th meeting of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games. I3D '14. New York, NY, USA: Association for Computing Machinery. pp. 79–86. doi:10.1145/2556700.2556708. ISBN 978-1-4503-2717-6.
  38. Therrien, Oliver; Levesque, Yannick; Gilet, Guillaume (2023). "Screen Space Indirect Lighting with Visibility Bitmask". The Visual Computer. 39 (11): 5925–5936. arXiv:2301.11376. doi:10.1007/s00371-022-02703-y – via Springer.
  39. Majercik, Zander; Guertin, Jean-Philippe; Nowrouzezahrai, Derek; McGuire, Morgan (June 5, 2019). Willmott, Andrer; Olano, Marc (eds.). "Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields". Journal of Computer Graphics Techniques. 8 (2): 1–30. ISSN 2331-7418.
  40. Hu, Jinkai; K. Yip, Milo; Elias Alonso, Guillermo; Shi-hao, Gu; Tang, Xiangjun; Xiaogang, Jin (2020). "Signed Distance Fields Dynamic Diffuse Global Illumination". arXiv:2007.14394 [cs.GR].
  41. Brinck, Andreas; Bei, Xiangshun; Halen, Henrik; Hayward, Kyle (August 11, 2021). "Global Illumination Based on Surfels". Advances in Real-Time Rendering in Games. SIGGRAPH. Retrieved December 2, 2021.
  42. "Lumen Technical Details in Unreal Engine | Unreal Engine 5.7 Documentation | Epic Developer Community". Epic Games Developer. Retrieved November 17, 2025.
  43. Wright, Daniel (August 11, 2021). "Radiance Caching for Real-Time Global Illumination". Advances in Real-Time Rendering in Games. SIGGRAPH. Retrieved November 17, 2025.

Template:Computer graphics