documentation for the direct illumination integrator

metadata
Wenzel Jakob 2011-10-02 23:11:24 -04:00
parent e31e0a15ad
commit 137084f24f
7 changed files with 76 additions and 11 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

View File

@ -59,6 +59,23 @@
\setlength\fboxrule\fboxrulebackup \setlength\fboxrule\fboxrulebackup
\arrayrulecolor{black} \arrayrulecolor{black}
} }
\newcommand{\remarks}[1]{
\setlength\fboxrulebackup\fboxrule
\setlength\fboxrule{0.8pt}
\vspace{1em}
\begin{figure}[htbp]\centering
\fcolorbox{remarkframe}{remark}{
\parbox{\columnwidth}{
\vspace{.6em}\hspace{.6em}\parbox{\columnwidth-1.6em}{
\textbf{Remarks:}\small
\vspace{-.4em}
\begin{itemize}
#1
\end{itemize}
}}}\end{figure}
\setlength\fboxrule\fboxrulebackup
}
\newcommand{\renderings}[1]{ \newcommand{\renderings}[1]{
\begin{figure}[htbp!] \begin{figure}[htbp!]

View File

@ -77,6 +77,8 @@
\definecolor{lstframe}{gray}{0.80} \definecolor{lstframe}{gray}{0.80}
\definecolor{lstcomment}{gray}{0.5} \definecolor{lstcomment}{gray}{0.5}
\definecolor{lstattrib}{rgb}{0,0.34,0} \definecolor{lstattrib}{rgb}{0,0.34,0}
\definecolor{remark}{rgb}{1.0, 0.9, 0.9}
\definecolor{remarkframe}{rgb}{1.0, 0.7, 0.7}
% Listings settings % Listings settings
\lstset{ \lstset{

View File

@ -81,8 +81,7 @@ a single scattering event (\figref{path-explanation}).
\subsubsection*{Progressive versus non-progressive} \subsubsection*{Progressive versus non-progressive}
Some of the rendering techniques in Mitsuba are \emph{progressive}. Some of the rendering techniques in Mitsuba are \emph{progressive}.
What this means is that they display a rough preview, which What this means is that they display a rough preview, which improves over time.
improves over time. Leaving them running indefinitely will Leaving them running indefinitely will continually reduce noise (in unbiased algorithms
continually reduce noise (e.g. in Metropolis Light Transport) such as Metropolis Light Transport) or noise and bias (in biased
or both noise and bias (e.g. in Progressive Photon Mapping). rendering techniques such as Progressive Photon Mapping).

View File

@ -20,12 +20,59 @@
MTS_NAMESPACE_BEGIN MTS_NAMESPACE_BEGIN
/** /*! \plugin{direct}{Direct illumination integrator}
* Direct-only integrator using multiple importance sampling and * \parameters{
* the power heuristic. Takes a user-specifiable amount of luminaire * \parameter{shadingSamples}{\Integer}{This convenience parameter can be
* and BSDF samples By setting one of the strategies to zero, this * used to set both \code{luminaireSamples} and \code{bsdfSamples} at
* class can effectively be turned into a luminaire sampling or * the same time.}
* BSDF sampling-based integrator. Ignores participating media. * \parameter{luminaireSamples}{\Integer}{Optional more fine-grained
* parameter: specifies the number of samples that should be generated
* using the direct illumination strategies implemented by the scene's
* luminaires\default{set to the value of \code{shadingSamples}}}
* \parameter{bsdfSamples}{\Integer}{Optional more fine-grained
* parameter: specifies the number of samples that should be generated
* using the BSDF sampling strategies implemented by the scene's
* surfaces\default{set to the value of \code{shadingSamples}}}
* }
*
* \renderings{
* \medrendering{Only BSDF sampling}{integrator_direct_bsdf}
* \medrendering{Only luminaire sampling}{integrator_direct_lum}
* \medrendering{BSDF and luminaire sampling}{integrator_direct_both}
* \caption{
* \label{fig:integrator-direct}
* This plugin implements two different strategies for computing the
* direct illumination on surfaces. Both of them are dynamically
* combined then obtain a robust rendering algorithm.
* }
* }
*
* This integrator implements a direct illumination technique that makes use
* of \emph{multiple importance sampling}: for each pixel sample, the
* integrator generates a user-specifiable number of BSDF and luminaire
* samples and combines them using the power heuristic. Usually, the BSDF
* sampling technique works very well on glossy objects but does badly
* everywhere else (\subfigref{integrator-direct}{a}), while the opposite
* is true for the luminaire sampling technique
* (\subfigref{integrator-direct}{b}). By combining these approaches, one
* can obtain a rendering technique that works well in both cases
* (\subfigref{integrator-direct}{c}).
*
* The number of samples spent on either technique is configurable, hence
* it is also possible to turn this plugin into an luminaire sampling-only
* or BSDF sampling-only integrator.
*
* For best results, combine the direct illumination integrator with the
* low-discrepancy sample generator (\code{ldsampler}). Generally, the number
* of pixel samples of the sample generator can be kept relatively
* low (e.g. \code{sampleCount=4}), whereas the \code{shadingSamples}
* parameter of this integrator should be increased until the variance in
* the output renderings is acceptable.
*
* \remarks{
* \item This integrator does not handle participating media or
* indirect illumination.
* }
*/ */
class MIDirectIntegrator : public SampleIntegrator { class MIDirectIntegrator : public SampleIntegrator {
public: public: