-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathchap-introduction.tex
37 lines (24 loc) · 5.5 KB
/
chap-introduction.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
%!TEX root = foo-thesis.tex
\chapter{Introduction}
\label{chap:introduction}
Correctly simulating the behavior of light is one of the largest research fields in the realm of computer graphics. In fact, since the output of any image synthesis algorithm is essentially the amount of light reaching a virtual camera, one could say that almost all techniques developed for synthesizing images are actually means to simulate light, either more correctly or using less hardware resources.
The complexity of simulating light arises from the multitude of different paths that individual photons can take from a light source to the camera. Along the way, photons can be reflected and refracted an arbitrary number of times, or can even be absorbed and not reach the camera at all. As a way to reduce the computational complexity of simulating these processes in a physically correct manner, computer graphics researchers have separated the interaction of light and matter into several visually distinct phenomena, which are then simulated separately with wildly differing approaches.
Some of these phenomena are direct and indirect lighting and shadowing, large-scale and small-scale lighting, diffuse and specular reflections, subsurface scattering, caustics, different types of lights such as point, directional, and area lights or light emitting surfaces, participating media like fog or smoke, and transparent surfaces. Each of these is of considerable complexity, has been studied extensively and most are still actively researched.
Of particular importance for realistic light simulation is large-scale and indirect lighting, which is often called ``global illumination''. For instance, in indoor scenes where the sun shining through windows is the only light source, most parts of the scene receive light only indirectly and after multiple reflections. Without global illumination, those areas would receive no light at all and appear completely black. Thus, physically correct or at least plausible global illumination is of high importance for the film industry, video game creators, architectural and e-commerce visualizations, and many more.
Unfortunately, large-scale and indirect lighting is inherently expensive to compute since the light needs to be transported over long distances, in arbitrary directions, and with multiple reflections. In offline rendering systems as they are used by, for example, the film industry, the available computation time and power makes this less of a problem than it is for real-time applications. Here, compromises have been made, such as long precomputation times, disallowing geometry and/or light movement, and only simulating diffuse and not specular reflections, to mimic at least some of the effects of global illumination.
Being both important for high-quality renderings and expensive to compute, global illumination has become a particularly large research area and has generated a lot of different approaches for simulating or approximating it, each with different application areas, advantages, and disadvantages. One of these approaches is instant radiosity \citep{Keller:1997:InstantRadiosity}, also called many-light methods, a well-known family of algorithms that scale from real-time applications to offline rendering. They use a rather intuitive model to approximate lighting and they can be used to simulate other lighting effects besides global illumination as well.
In this thesis, we present an implementation of a rendering system using the many-light approach to simulate global illumination. The system requires no precomputation and needs only several milliseconds for its computations, making it suitable for real-time applications. For indirect shadowing, the software renders several hundred imperfect shadow maps \citep{ritschel2008ism} each frame. Our main contributions are:
\begin{itemize}
\item the application of a high-quality postprocessing \citep{Marroquim:2007:reconstruction} for higher-quality imperfect shadow maps
\item an efficient algorithm for interleaved sampling \citep{Keller:2001:InterleavedSampling} using compute shaders\footnote{\url{https://www.opengl.org/wiki/Compute_Shader}}
\item the application of clustered deferred shading \citep{olsson2012clustered} as a performance optimization to many-light methods.
\end{itemize}
\noindent
While lights and geometry are allowed to move, the system does not provide temporal stability in this case. Furthermore, it simulates only one light bounce, i.\,e., light is reflected only once before illuminating surfaces visible to the camera. However, the approach is not inherently limited in this regard and can be extended to multiple bounces in future work.
\vspace{\baselineskip}
\noindent
The full source code of the implementation is available in the project's repository\footnote{\url{https://github.com/karyon/many-lights-gi}} under the MIT license.
\vspace{\baselineskip}
\noindent
This thesis is structured as follows: The next chapter details the global illumination effect and related work on it, before focusing on many-light methods by explaining the general idea and showing different approaches that have been investigated in the past. \Cref{chap:concept} describes, on a conceptual level, the implemented system with its different components. The implementation with its data layout and performance considerations is detailed in \Cref{chap:implementation}, and \Cref{chap:results} presents performance measurements, quality assessments, and discussions on the chosen approaches. Concluding remarks are provided in \Cref{chap:conclusion}.
\cleardoublepage