2012-09-28 00:43:51 +08:00
|
|
|
\section{Plugin reference}
|
|
|
|
\vspace{-2mm}
|
2012-10-25 02:44:26 +08:00
|
|
|
The following subsections describe the available Mitsuba plugins, usually along
|
2012-09-28 00:43:51 +08:00
|
|
|
with example renderings and a description of what each parameter does.
|
|
|
|
They are separated into subsections covering textures, surface scattering
|
2012-10-25 02:44:26 +08:00
|
|
|
models, etc.
|
2012-09-28 00:43:51 +08:00
|
|
|
|
|
|
|
Each subsection begins with a brief general description.
|
|
|
|
The documentation of a plugin always starts on a new page and is preceded
|
|
|
|
by a table similar to the one below:
|
|
|
|
\parameters{
|
|
|
|
\parameter{softRays}{\Boolean}{
|
2014-02-06 22:11:30 +08:00
|
|
|
Try not to damage objects in the scene by shooting softer rays
|
|
|
|
\default{\code{false}}
|
|
|
|
}
|
2012-09-28 00:43:51 +08:00
|
|
|
\parameter{darkMatter}{\Float}{
|
2014-02-06 22:11:30 +08:00
|
|
|
Controls the proportionate amount of dark matter present in the scene.
|
|
|
|
\default{0.83}
|
|
|
|
}
|
2012-09-28 00:43:51 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
Suppose this hypothetical plugin is an \emph{integrator} named \code{amazing}. Then, based on
|
|
|
|
this description, it can be instantiated from an XML scene file using a custom configuration such as:
|
|
|
|
\begin{xml}
|
|
|
|
<integrator type="amazing">
|
2014-02-06 22:11:30 +08:00
|
|
|
<boolean name="softerRays" value="true"/>
|
|
|
|
<float name="darkMatter" value="0.4"/>
|
2012-09-28 00:43:51 +08:00
|
|
|
</integrator>
|
|
|
|
\end{xml}
|
2012-10-25 02:44:26 +08:00
|
|
|
In some cases\footnote{Note that obvious parameters are generally omitted.
|
|
|
|
For instance, all shape plugins accept a surface scattering plugin, but this
|
|
|
|
is left out from the documentation for brevity.}, plugins also indicate that they accept nested plugins
|
|
|
|
as input arguments. These can either be \emph{named} or \emph{unnamed}. If
|
2012-09-28 00:43:51 +08:00
|
|
|
the \code{amazing} integrator also accepted the following two parameters\vspace{-2mm}
|
|
|
|
\parameters{
|
2014-02-06 22:11:30 +08:00
|
|
|
\parameter{\Unnamed}{\Integrator}{A nested integrator which does the actual hard work}
|
|
|
|
\parameter{puppies}{\Texture}{This must be used to supply a \mbox{cute picture of puppies}}
|
2012-09-28 00:43:51 +08:00
|
|
|
}
|
|
|
|
\vspace{-1mm}
|
|
|
|
|
|
|
|
then it can be instantiated e.g. as follows
|
|
|
|
\begin{xml}
|
|
|
|
<integrator type="amazing">
|
2014-02-06 22:11:30 +08:00
|
|
|
<boolean name="softerRays" value="true"/>
|
|
|
|
<float name="darkMatter" value="0.4"/>
|
|
|
|
<integrator type="path"/>
|
|
|
|
<texture name="puppies" type="bitmap">
|
|
|
|
<string name="filename" value="cute.jpg"/>
|
|
|
|
</texture>
|
2012-09-28 00:43:51 +08:00
|
|
|
</integrator>
|
|
|
|
\end{xml}
|
|
|
|
or, if these were already instantiated previously and are now
|
|
|
|
bound to the \emph{identifiers} (\secref{format}) \code{myPathTracer} and
|
|
|
|
\code{myTexture}, the following also works:
|
|
|
|
\begin{xml}
|
|
|
|
<integrator type="amazing">
|
2014-02-06 22:11:30 +08:00
|
|
|
<boolean name="softerRays" value="true"/>
|
|
|
|
<float name="darkMatter" value="0.4"/>
|
|
|
|
<ref id="myPathTracer"/>
|
|
|
|
<ref name="puppies" id="myTexture"/>
|
2012-09-28 00:43:51 +08:00
|
|
|
</integrator>
|
|
|
|
\end{xml}
|
|
|
|
|
|
|
|
\IfFileExists{plugins_generated.tex}{\input{plugins_generated}}{}
|