#include <mltpath.h>
Public Member Functions | |
Spectrum | Li (const Scene *scene, const RayDifferential &ray, const Sample *sample, float *alpha) const |
MLTPathIntegrator (int md, float cp, int maxreject, float plarge) | |
void | RequestSamples (Sample *sample, const Scene *scene) |
virtual MLTPathIntegrator * | clone () const |
IntegrationSampler * | HasIntegrationSampler (IntegrationSampler *isa) |
Static Public Member Functions | |
static SurfaceIntegrator * | CreateSurfaceIntegrator (const ParamSet ¶ms) |
Private Attributes | |
int | maxDepth |
float | continueProbability |
int | maxReject |
float | pLarge |
IntegrationSampler * | mltIntegrationSampler |
int | lightNumOffset |
int | lightSampOffset |
Definition at line 33 of file mltpath.h.
lux::MLTPathIntegrator::MLTPathIntegrator | ( | int | md, | |
float | cp, | |||
int | maxreject, | |||
float | plarge | |||
) | [inline] |
Definition at line 37 of file mltpath.h.
References continueProbability, maxDepth, maxReject, and pLarge.
Referenced by clone(), and CreateSurfaceIntegrator().
MLTPathIntegrator * MLTPathIntegrator::clone | ( | ) | const [virtual] |
Definition at line 32 of file mltpath.cpp.
References MLTPathIntegrator().
SurfaceIntegrator * MLTPathIntegrator::CreateSurfaceIntegrator | ( | const ParamSet & | params | ) | [static] |
Definition at line 137 of file mltpath.cpp.
References lux::ParamSet::FindOneFloat(), lux::ParamSet::FindOneInt(), maxDepth, and MLTPathIntegrator().
IntegrationSampler * MLTPathIntegrator::HasIntegrationSampler | ( | IntegrationSampler * | isa | ) |
Definition at line 37 of file mltpath.cpp.
References maxReject, mltIntegrationSampler, and pLarge.
Spectrum MLTPathIntegrator::Li | ( | const Scene * | scene, | |
const RayDifferential & | ray, | |||
const Sample * | sample, | |||
float * | alpha | |||
) | const [virtual] |
Implements lux::Integrator.
Definition at line 51 of file mltpath.cpp.
References lux::AbsDot(), lux::Spectrum::Black(), lux::BSDF_ALL, continueProbability, lux::Ray::d, lux::BSDF::dgShading, lux::BSDF::f(), lux::random::floatValue(), Floor2Int(), lux::Intersection::GetBSDF(), lux::Scene::Intersect(), lux::Intersection::Le(), lightNumOffset, lux::Scene::lights, lightSampOffset, maxDepth, cimg_library::cimg::min(), mltIntegrationSampler, lux::DifferentialGeometry::nn, lux::Sample::oneD, lux::DifferentialGeometry::p, blender::p, lux::BSDF::Sample_f(), lux::Scene::Transmittance(), lux::Sample::twoD, and lux::VisibilityTester::Unoccluded().
Reimplemented from lux::Integrator.
Definition at line 45 of file mltpath.cpp.
References lux::Sample::Add1D(), lux::Sample::Add2D(), lightNumOffset, and lightSampOffset.
float lux::MLTPathIntegrator::continueProbability [private] |
Definition at line 47 of file mltpath.h.
Referenced by Li(), and MLTPathIntegrator().
int lux::MLTPathIntegrator::lightNumOffset [private] |
Definition at line 51 of file mltpath.h.
Referenced by Li(), and RequestSamples().
int lux::MLTPathIntegrator::lightSampOffset [private] |
Definition at line 51 of file mltpath.h.
Referenced by Li(), and RequestSamples().
int lux::MLTPathIntegrator::maxDepth [private] |
Definition at line 46 of file mltpath.h.
Referenced by CreateSurfaceIntegrator(), Li(), and MLTPathIntegrator().
int lux::MLTPathIntegrator::maxReject [private] |
Definition at line 48 of file mltpath.h.
Referenced by HasIntegrationSampler(), and MLTPathIntegrator().
IntegrationSampler* lux::MLTPathIntegrator::mltIntegrationSampler [private] |
Definition at line 50 of file mltpath.h.
Referenced by HasIntegrationSampler(), and Li().
float lux::MLTPathIntegrator::pLarge [private] |
Definition at line 49 of file mltpath.h.
Referenced by HasIntegrationSampler(), and MLTPathIntegrator().