Skip to content

Commit

Permalink
Corrections
Browse files Browse the repository at this point in the history
  • Loading branch information
AndiMiko committed Oct 14, 2018
1 parent 159037e commit 3c4a158
Show file tree
Hide file tree
Showing 18 changed files with 131 additions and 117 deletions.
66 changes: 33 additions & 33 deletions chapters/PNEE.tex

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion chapters/abstract.tex
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
\chapter*{Abstract}

Modern photorealistic media production faces an increasing number of light sources to produce natural-looking images. A very significant percentage of processing time goes towards casting shadow rays to calculate the direct lighting term with Next Event Estimation. Naively sampling many light sources in a path tracer quickly becomes impractical, as our evaluation shows. We present a novel technique to importance sample many light sources called Photon-based Next Event Estimation (PNEE). In a preprocess, similar to photon mapping, photons are scattered from all light sources into the scene. These photons are used to build cumulative distribution functions (CDF) that reflect the importance of the light sources to reduce the variance of Monte Carlo Integration. We evaluate several storage options and data structures for efficient lookups within the integrator. We introduce and utilize two novel data structures to store CDFs: sparse CDFs and interpolated CDFs. To mitigate variance edges and artifacts, we present several interpolation and approximation techniques. We evaluate several variants of PNEE against naive NEE as well as PBRTs recent implementation, and demonstrate that even for moderately complex scenes a 50-100x speedup can be achieved.
Modern photorealistic media production faces increasing computational ressource demands caused by an ever-expanding number of light sources to produce natural-looking images. A significant percentage of processing time goes towards casting shadow rays to calculate the direct lighting term with Next Event Estimation. As our evaluation shows, naively sampling many light sources in a path tracer quickly becomes impractical. We present a novel technique to importance sample many light sources called Photon-based Next Event Estimation (PNEE). In a preprocessing step, similar to photon mapping, photons are scattered from all light sources into the scene. These photons are used to build cumulative distribution functions (CDF) that reflect the importance of the light sources to reduce the variance of the Monte Carlo Integration. We evaluate multiple storage options and data structures for efficient lookups within the integrator. We introduce and utilize two novel data structures to store CDFs: sparse CDFs and interpolated CDFs. To mitigate variance edges and artifacts, we present several interpolation and approximation methods. We evaluate several variants of PNEE against naive NEE as well as PBRTs recent implementation, and demonstrate that even for moderately complex scenes a 50-100x speedup can be achieved.
44 changes: 22 additions & 22 deletions chapters/evaluation.tex

Large diffs are not rendered by default.

119 changes: 68 additions & 51 deletions chapters/fundamentals.tex

Large diffs are not rendered by default.

5 changes: 2 additions & 3 deletions chapters/introduction.tex
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ \chapter{Introduction}

Because of the intricate nature of light itself (e.g. wave-particle dualism), it is not really possible to solve the light transport equation with a basically infinite number of dimensions. The solution is to explore as many (hopefully) important light paths as possible, with each decision for the path construction done probabilistically. For each event that gets chosen by a random variable, the result is later divided by the probability of its occurrence. More specifically, the continuous integrals are estimated with the Monte Carlo integration, allowing the estimation of a continuous function with only a limited number of samples. We describe these concepts in more detail in chapter~\ref{ch:Fundamentals}.

When constructing the paths, there are many choices and considerations one can take. Should you start at the eye, light source, or bothconnecting the path segments later? How should the reflection on a surface be computed? How does the medium affect the current path and refraction? Can you adjust the probabilities based on a preprocess, or guide paths based on preceding path calculations?
When constructing the paths, there are many choices and considerations one can take. Should you start at the eye, light source, or both---connecting the path segments later? How should the reflection on a surface be computed? How does the medium affect the current path and refraction? Can you adjust the probabilities based on a preprocess, or guide paths based on preceding path calculations?
These questions spark a variety of techniques and sub-techniques, our Photon-based Next Event Estimation (PNEE) being one of them. Acknowledging the existence and possible suitability of techniques like Bidirectional Path-tracing (BDPT) and Metropolis Light Transport (MLT), among others, we focus our discussion throughout this work solely on path tracing, without loss of applicability to the aforementioned.

With path tracing, each path is started at the eye and only one refraction is considered at each intersection. The depth of the path is commonly limited by Russian Roulette (RR). For each pixel, a multitude of paths are started from random positions within the pixel (providing free anti-aliasing). Aside from the single main path which covers indirect lighting, it is very effective to use Next Event Estimation (NEE) at every intersection point. NEE estimates the direct lighting by deterministically connecting each intersection point to a light source. The rendering equation can be split up into a direct and indirect lighting part to enable this without introducing bias (see section~\ref{sec:NEE}).
Expand All @@ -25,14 +25,13 @@ \chapter{Introduction}

For each of these phases, we explore several sub-techniques, combine them, and evaluate them against each other as well as other established techniques for NEE. We achieved speedups between 50-100x in balanced test scenes, with the efficiency further scaling up as the lighting complexity of the scene increases. Nonetheless, all techniques have their own special kinds of artifacts that may not show up in the MSE but can be very irritating for a human observer. We mitigate these problems effectively and present strong results within three different test scenes that cover a high range of lighting situations.

\unsure{The source code is probably nice. Should I exclude the masterthesis repo though? It is the latex code of this document itself.}
\blfootnote{
All sources, test scenes, test results and images can be found at:

\begin{itemize}
\item \url{https://github.com/AndiMiko/pbrt-v3}
\item \url{https://github.com/AndiMiko/pbrt-scenes}
\item \url{https://github.com/AndiMiko/PNEE-data}
\item \url{https://github.com/AndiMiko/masterthesis}
% \item \url{https://github.com/AndiMiko/masterthesis}
\end{itemize}
}
6 changes: 2 additions & 4 deletions chapters/prospect.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ \chapter{Prospect}

We have demonstrated powerful results for PNEE in chapter~\ref{ch:Evaluation}. With speedups of around 50-100x in scenes with merely a couple thousand light sources, PNEE proves to be a great choice. A thousand light sources are well within the scope of typical real world production. For rather extreme cases with around a million light sources, results would be amplified. With hardly any drawbacks, we found no peril in using \textit{Cdfgrid} as a standard even for low complexity scenes. Direct comparison to very recent work from \textcite{Vevoda:2018:BOR} and \textcite{Estevez} would be highly interesting.

We have already discussed some improvements and future work in section~\ref{sec:futhercons}. Mainly improvements for adaptive paramentrization are substantial for increasing the ease of use. Adding Multiple Importance Sampling with adaptive importance weights might also be a valuable addition in the future. Exploring the possibility to extend \textit{Cdfgrid} for adaptive LOD with an Octree was discussed in section~\ref{ch:octree}. Improvements on importance sampling the initial photon distribution, as discussed in section~\ref{ch:photonimportancesample}, might also be worthwhile to explore. We examined several interpolation and approximation schemes in section~\ref{ch:interpolation}, but there is still plenty of research that can be done. It has been an exciting task \unsure{Ist das zu umgangssprachlich hier schon?} to adapt and optimize traditional interpolation schemes to CDFs and our specific needs.
We have already discussed some improvements and future work in section~\ref{sec:futhercons}. Mainly improvements for adaptive paramentrization are substantial for increasing the ease of use. Adding Multiple Importance Sampling with adaptive importance weights might also be a valuable addition in the future. Exploring the possibility to extend \textit{Cdfgrid} for adaptive LOD with an Octree was discussed in section~\ref{ch:octree}. Improvements on importance sampling the initial photon distribution, as discussed in section~\ref{ch:photonimportancesample}, might also be worthwhile to explore. We examined several interpolation and approximation schemes in section~\ref{ch:interpolation}, but there is still plenty of research that can be done.\todo{add some research} It has been an exciting task to adapt and optimize traditional interpolation schemes to CDFs and our specific needs.

Our construction of interpolated CDFs (section~\ref{sec:intcdf}) and sparse CDFs (section~\ref{sec:sparse}) have proven to be effective additions and may be of value for other research, too. The general idea of PNEE can be ported to other ray tracers like MLT or BDPT\unsure{Nicht ganz sicher}. Also, photon mapping can be extended with PNEE, essentially for free, since photons are shot and stored anyhow. In an interactive context, PNEE might be explored but might be tricky due to the preprocess. In the case where only the camera will be moved, PNEE is particularly suited, as the photons and data structures can be reused. Lastly, the idea of PNEE is potentially extendable to path guiding (see e.g. \parencite{DBLP:journals/cgf/MullerGN17}), where NEE can be regarded as just the last step in a series of subproblems.

\unsure{Ist das Kapitel ausreichend vom Umfang?}
Our construction of interpolated CDFs (section~\ref{sec:intcdf}) and sparse CDFs (section~\ref{sec:sparse}) have proven to be effective additions and may be of value for other research, too. The general idea of PNEE can be ported to other ray tracers like MLT or BDPT. Also, photon mapping can be extended with PNEE, essentially for free, since photons are shot and stored anyhow. In an interactive context, PNEE might be explored but might be tricky due to the preprocess. In the case where only the camera will be moved, PNEE is particularly suited, as the photons and data structures can be reused. Lastly, the idea of PNEE is potentially extendable to path guiding (see e.g. \parencite{DBLP:journals/cgf/MullerGN17}), where NEE can be regarded as just the last step in a series of subproblems.
Binary file modified figures/plots/SM_Main_ps.pdf
Binary file not shown.
Binary file modified figures/plots/SM_Main_t.pdf
Binary file not shown.
Binary file modified figures/plots/SanMiguel_main_ps.pdf
Binary file not shown.
Binary file modified figures/plots/SanMiguel_main_t.pdf
Binary file not shown.
Binary file modified figures/plots/ZeroDay_main_ps.pdf
Binary file not shown.
Binary file modified figures/plots/ZeroDay_main_t.pdf
Binary file not shown.
Binary file modified figures/plots/interpolation_plot.pdf
Binary file not shown.
Binary file modified figures/plots/pc_plot.pdf
Binary file not shown.
Binary file modified figures/plots/unifloor_plot.pdf
Binary file not shown.
Binary file modified figures/plots/unipow_plot.pdf
Binary file not shown.
4 changes: 2 additions & 2 deletions main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@
%% ---------------------------------

\newcommand{\myname}{Andreas Mikolajewski}
\newcommand{\mytitle}{Efficient datastructures and sampling of many light sources for \\Next Event Estimation}
\newcommand{\mytitle}{Efficient data structures and sampling of many light sources for \\Next Event Estimation}
\newcommand{\myinstitute}{KIT Computer Graphics Group}

\newcommand{\reviewerone}{Prof. Dr.-Ing. Carsten Dachsbacher}
\newcommand{\reviewertwo}{Prof. Dr. Hartmut Prautzsch}
\newcommand{\advisor}{Dr. Johannes Schudeiske (Hanika)}
\newcommand{\advisor}{Dr. Johannes Schudeiske}
\newcommand{\advisortwo}{}

\newcommand{\timestart}{15th April 2018}
Expand Down
2 changes: 1 addition & 1 deletion thesis.bib
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,7 @@ @article{DBLP:journals/tip/WangBSS04

@online{Beeple,
author = {Mike Winkelmann},
title = {ZERO-DAY scene by Beeple},
title = {{Zero-Day} scene by {Beeple}},
year = 2015,
url = {https://www.beeple-crap.com/resources},
urldate = {2018-08-01}
Expand Down

0 comments on commit 3c4a158

Please sign in to comment.