metadata
Wenzel Jakob 2012-10-22 00:02:28 -04:00
parent 3a21619eec
commit 6137c21db5
7 changed files with 226 additions and 212 deletions

View File

@ -54,7 +54,7 @@ struct TangentSpace {
/** \brief Abstract triangle mesh base class
* \ingroup librender
e \ingroup libpython
* \ingroup libpython
*/
class MTS_EXPORT_RENDER TriMesh : public Shape {
public:

View File

@ -27,7 +27,7 @@ plugins += bidirEnv.SharedLibrary('bdpt',
plugins += bidirEnv.SharedLibrary('pssmlt',
['pssmlt/pssmlt.cpp', 'pssmlt/pssmlt_sampler.cpp',
'pssmlt/pssmlt_proc.cpp']);
'pssmlt/pssmlt_proc.cpp']);
plugins += bidirEnv.SharedLibrary('mlt',
['mlt/mlt.cpp', 'mlt/mlt_proc.cpp']

View File

@ -42,7 +42,7 @@ static StatsCounter avgPathLength("Volumetric path tracer", "Average path length
* }
*
* This plugin provides a basic volumetric path tracer that can be used to
* compute approximate solutions to the radiative transfer equation. This
* compute approximate solutions of the radiative transfer equation. This
* particular integrator is named ``simple'' because it does not make use of
* multiple importance sampling. This results in a potentially
* faster execution time. On the other hand, it also means that this
@ -50,6 +50,16 @@ static StatsCounter avgPathLength("Volumetric path tracer", "Average path length
* highly glossy materials. In this case, please use \pluginref{volpath}
* or one of the bidirectional techniques.
*
* This integrator has special support for \emph{index-matched} transmission
* events (i.e. surface scattering events that do not change the direction
* of light). As a consequence, particating media enclosed by a stencil shape (see
* \secref{shapes} for details) are rendered considerably more efficiently when this
* shape has \emph{no}\footnote{this is what signals to Mitsuba that the boundary is
* index-matched and does not interact with light in any way. Alternatively,
* the \pluginref{mask} and \pluginref{thindielectric} BSDF can be used to specify
* index-matched boundaries that involve some amount of interaction.} BSDF assigned
* to it (as compared to, say, a \pluginref{dielectric} or \pluginref{roughdielectric} BSDF).
*
* \remarks{
* \item This integrator performs poorly when rendering
* participating media that have a different index of refraction compared

View File

@ -67,6 +67,10 @@ void Shape::configure() {
bsdf->configure();
addChild(bsdf);
}
if ((m_bsdf->getType() & BSDF::ENull) && (isEmitter() || isSensor() || hasSubsurface()))
Log(EError, "Shape \"%s\" has an index-matched BSDF and an "
"emitter/sensor/subsurface attachment. This is not allowed!", getName().c_str());
}
bool Shape::isCompound() const {

View File

@ -33,18 +33,18 @@ struct MaterialEntry {
static MaterialEntry materialData[] = {
/* Fitted data from "A Practical Model for Subsurface scattering" (Jensen et al.). No anisotropy data available. */
{ "Apple", { 2.29f, 2.39f, 1.97f }, { 0.0030f, 0.0034f, 0.046f }, { 1.0f, 1.0f, 1.0f }, 1.3f },
{ "Chicken1", { 0.15f, 0.21f, 0.38f }, { 0.0015f, 0.077f, 0.19f }, { 1.0f, 1.0f, 1.0f }, 1.3f },
{ "Chicken2", { 0.19f, 0.25f, 0.32f }, { 0.0018f, 0.088f, 0.20f }, { 1.0f, 1.0f, 1.0f }, 1.3f },
{ "Cream", { 7.38f, 5.47f, 3.15f }, { 0.0002f, 0.0028f, 0.0163f }, { 1.0f, 1.0f, 1.0f }, 1.3f },
{ "Ketchup", { 0.18f, 0.07f, 0.03f }, { 0.061f, 0.97f, 1.45f }, { 1.0f, 1.0f, 1.0f }, 1.3f },
{ "Marble", { 2.19f, 2.62f, 3.00f }, { 0.0021f, 0.0041f, 0.0071f }, { 1.0f, 1.0f, 1.0f }, 1.5f },
{ "Potato", { 0.68f, 0.70f, 0.55f }, { 0.0024f, 0.0090f, 0.12f }, { 1.0f, 1.0f, 1.0f }, 1.3f },
{ "Skimmilk", { 0.70f, 1.22f, 1.90f }, { 0.0014f, 0.0025f, 0.0142f }, { 1.0f, 1.0f, 1.0f }, 1.3f },
{ "Skin1", { 0.74f, 0.88f, 1.01f }, { 0.032f, 0.17f, 0.48f }, { 1.0f, 1.0f, 1.0f }, 1.3f },
{ "Skin2", { 1.09f, 1.59f, 1.79f }, { 0.013f, 0.070f, 0.145f }, { 1.0f, 1.0f, 1.0f }, 1.3f },
{ "Spectralon", { 11.6f, 20.4f, 14.9f }, { 0.00f, 0.00f, 0.00f }, { 1.0f, 1.0f, 1.0f }, 1.3f },
{ "Wholemilk", { 2.55f, 3.21f, 3.77f }, { 0.0011f, 0.0024f, 0.014f }, { 1.0f, 1.0f, 1.0f }, 1.3f },
{ "Apple", { 2.29f, 2.39f, 1.97f }, { 0.0030f, 0.0034f, 0.046f }, { 0.0f, 0.0f, 0.0f }, 1.3f },
{ "Chicken1", { 0.15f, 0.21f, 0.38f }, { 0.0015f, 0.077f, 0.19f }, { 0.0f, 0.0f, 0.0f }, 1.3f },
{ "Chicken2", { 0.19f, 0.25f, 0.32f }, { 0.0018f, 0.088f, 0.20f }, { 0.0f, 0.0f, 0.0f }, 1.3f },
{ "Cream", { 7.38f, 5.47f, 3.15f }, { 0.0002f, 0.0028f, 0.0163f }, { 0.0f, 0.0f, 0.0f }, 1.3f },
{ "Ketchup", { 0.18f, 0.07f, 0.03f }, { 0.061f, 0.97f, 1.45f }, { 0.0f, 0.0f, 0.0f }, 1.3f },
{ "Marble", { 2.19f, 2.62f, 3.00f }, { 0.0021f, 0.0041f, 0.0071f }, { 0.0f, 0.0f, 0.0f }, 1.5f },
{ "Potato", { 0.68f, 0.70f, 0.55f }, { 0.0024f, 0.0090f, 0.12f }, { 0.0f, 0.0f, 0.0f }, 1.3f },
{ "Skimmilk", { 0.70f, 1.22f, 1.90f }, { 0.0014f, 0.0025f, 0.0142f }, { 0.0f, 0.0f, 0.0f }, 1.3f },
{ "Skin1", { 0.74f, 0.88f, 1.01f }, { 0.032f, 0.17f, 0.48f }, { 0.0f, 0.0f, 0.0f }, 1.3f },
{ "Skin2", { 1.09f, 1.59f, 1.79f }, { 0.013f, 0.070f, 0.145f }, { 0.0f, 0.0f, 0.0f }, 1.3f },
{ "Spectralon", { 11.6f, 20.4f, 14.9f }, { 0.00f, 0.00f, 0.00f }, { 0.0f, 0.0f, 0.0f }, 1.3f },
{ "Wholemilk", { 2.55f, 3.21f, 3.77f }, { 0.0011f, 0.0024f, 0.014f }, { 0.0f, 0.0f, 0.0f }, 1.3f },
/* From "Acquiring Scattering Properties of Participating Media by Dilution"
by Narasimhan, Gupta, Donner, Ramamoorthi, Nayar, Jensen (SIGGRAPH 2006) */

View File

@ -152,7 +152,7 @@ void RenderSettingsDialog::setDocumentation(const QString &text) {
ui->groupBox->setTitle(tr("Documentation"));
}
ui->helpViewer->setHtml(comments + m_currentDocumentation);
ui->helpViewer->setHtml(comments + "<div style='font-size:10pt'>" + m_currentDocumentation + "</div>");
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!hasErrors);
}