Global illumination
Global illumination[1] (shortened as GI) or indirect illumination is a general name for a group of algorithms used in 3D computer graphics that are meant to add more realistic lighting to 3D scenes. Such algorithms take into account not only the light which 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).
Theoretically reflections, refractions, and shadows are all examples of global illumination, because when simulating them, one object affects the rendering of another object (as opposed to an object being affected only by a direct light). In practice, however, only the simulation of diffuse inter-reflection or caustics is called global illumination.
Images rendered using global illumination algorithms often appear more photorealistic than images rendered 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. That 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.
Radiosity, ray tracing, beam tracing, cone tracing, path tracing, Metropolis light transport, ambient occlusion, photon mapping, and image based lighting are examples of algorithms used in global illumination, some of which may be used together to yield results that are not fast, but accurate.
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 methods in engineering design.
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
More and more specialized algorithms are used in 3D programs that can effectively simulate the global illumination. These algorithms are numerical approximations to 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:
- is not applied in practice
- Expansion:
- bi-directional approach: Photon mapping + Distributed ray tracing, Bi-directional path tracing, Metropolis light transport
- Iteration:
In Light path notation global lighting the paths of the type L (D | S) corresponds * E.
A full treatment can be found in [2]
Image-based lighting
Another way to simulate real global illumination is the use of 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
Method | Description/Notes |
---|---|
Ray tracing | Several enhanced variants exist for solving problems related to sampling, aliasing, soft shadows: Distributed ray tracing, Cone tracing, Beam tracing. |
Path tracing | Unbiased, Variant: Bi-directional Path Tracing, Energy Redistriution Path Tracing[3] |
Photon mapping | Consistent, biased; enhanced variants: Progressive Photon Mapping, Stochastic Progressive Photon Mapping([4]) |
Lightcuts | enhanced variants: Multidimensional Lightcuts, Bidirectional Lightcuts |
Point Based Global Illumination | Extensively used in movie animations[5][6] |
Radiosity | Finite element method, very good for precomputations. Improved versions Instant Radiosity[7] and Bidirectional Instant Radiosity[8] |
Metropolis light transport | Builds upon bi-directional path tracing, unbiased, Multiplexed[9] |
Spherical harmonic lighting | Encodes global illumination results for real-time rendering of static scenes |
Ambient occlusion | Not a physically correct method, but gives good results in general. Good for precomputation. |
Voxel-based Global Illumination | Several variants exist including Voxel Cone Tracing Global Illumination,[10] Sparse Voxel Octree Global Illumination and Voxel Global Illumination(VXGI)[11] |
Light Propagation Volumes Global Illumination[12] | Light propagation volumes is a technique to approximately achieve global illumination (GI) in Real-time.
It uses lattices and spherical harmonics (SH) to represent the spatial and angular distribution of light in the scene. Variant Cascaded Light Propagation Volumes.[13] |
Deferred Radiance Transfer Global Illumination[14] | |
Deep G-Buffer based Global Illumination[15] | |
See also
- Category:Global illumination software
- Unbiased rendering
- Consistent estimator
- Bias of an estimator
References
- ↑ https://extremeistan.wordpress.com/2014/05/11/realtime-global-illumination-techniques-collection/
- ↑ Philip Dutre, Philippe Bekaert, Kavita Bala (August 30, 2006). Advanced Global Illumination, Second Edition. ISBN 978-1568813073.
- ↑ http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.63.5938
- ↑ http://www.ci.i.u-tokyo.ac.jp/~hachisuka/
- ↑ http://graphics.pixar.com/library/PointBasedGlobalIlluminationForMovieProduction/paper.pdf
- ↑ http://www.karstendaemen.com/thesis/files/intro_pbgi.pdf
- ↑ http://www.cs.cornell.edu/courses/cs6630/2012sp/slides/Boyadzhiev-Matzen-InstantRadiosity.pdf
- ↑ http://artis.imag.fr/Projets/Cyber-II/Publications/SIMP06a.pdf
- ↑ http://www.ci.i.u-tokyo.ac.jp/~hachisuka/mmlt.pdf
- ↑ http://on-demand.gputechconf.com/gtc/2012/presentations/SB134-Voxel-Cone-Tracing-Octree-Real-Time-Illumination.pdf
- ↑ http://www.geforce.com/hardware/technology/vxgi
- ↑ https://wiki.unrealengine.com/Light_Propagation_Volumes_GI
- ↑ http://www.vis.uni-stuttgart.de/~dachsbcn/download/lpv.pdf
- ↑ http://twvideo01.ubm-us.net/o1/vault/gdc2012/slides/Programming%20Track/Stefanov_Nikolay_DeferredRadianceTransfer.pdf
- ↑ http://graphics.cs.williams.edu/papers/DeepGBuffer14/
External links
- Video demonstrating global illumination and the ambient color effect
- Real-time GI demos – survey of practical real-time GI techniques as a list of executable demos
- 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.
- Theory and practical implementation of Global Illumination using Monte Carlo Path Tracing.