#include <path2.h>
Public Types | |
enum | LightStrategy { SAMPLE_ALL_UNIFORM, SAMPLE_ONE_UNIFORM, SAMPLE_AUTOMATIC } |
enum | RRStrategy { RR_EFFICIENCY, RR_PROBABILITY, RR_NONE } |
Public Member Functions | |
SWCSpectrum | Li (const Scene *scene, const RayDifferential &ray, const Sample *sample, float *newAlpha) const |
void | RequestSamples (Sample *sample, const Scene *scene) |
Path2Integrator (LightStrategy st, RRStrategy rst, int md, float cp) | |
virtual | ~Path2Integrator () |
Static Public Member Functions | |
static SurfaceIntegrator * | CreateSurfaceIntegrator (const ParamSet ¶ms) |
Private Attributes | |
LightStrategy | lightStrategy |
RRStrategy | rrStrategy |
int | maxDepth |
float | continueProbability |
int | sampleOffset |
Definition at line 31 of file path2.h.
lux::Path2Integrator::Path2Integrator | ( | LightStrategy | st, | |
RRStrategy | rst, | |||
int | md, | |||
float | cp | |||
) | [inline] |
Definition at line 42 of file path2.h.
References continueProbability, lightStrategy, maxDepth, and rrStrategy.
Referenced by CreateSurfaceIntegrator().
virtual lux::Path2Integrator::~Path2Integrator | ( | ) | [inline, virtual] |
SurfaceIntegrator * Path2Integrator::CreateSurfaceIntegrator | ( | const ParamSet & | params | ) | [static] |
Definition at line 247 of file path2.cpp.
References lux::ParamSet::FindOneFloat(), lux::ParamSet::FindOneInt(), lux::ParamSet::FindOneString(), LUX_BADTOKEN, LUX_WARNING, luxError, maxDepth, Path2Integrator(), RR_EFFICIENCY, RR_NONE, RR_PROBABILITY, SAMPLE_ALL_UNIFORM, SAMPLE_AUTOMATIC, and SAMPLE_ONE_UNIFORM.
SWCSpectrum Path2Integrator::Li | ( | const Scene * | scene, | |
const RayDifferential & | ray, | |||
const Sample * | sample, | |||
float * | newAlpha | |||
) | const [virtual] |
Implements lux::Integrator.
Definition at line 54 of file path2.cpp.
References lux::AbsDot(), lux::Sample::AddContribution(), lux::SWCSpectrum::Black(), lux::BSDF_ALL, lux::BSDF_SPECULAR, lux::Scene::camera, continueProbability, cimg_library::cos(), lux::Ray::d, lux::BSDF::dgShading, lux::BSDF::f(), lux::SWCSpectrum::filter(), lux::Intersection::GetBSDF(), lux::Camera::GetConnectingFactor(), lux::Sampler::GetLazyValues(), lux::Sample::imageX, lux::Sample::imageY, lux::Scene::Intersect(), lux::Camera::IsVisibleFromEyes(), lux::Intersection::Le(), lux::Sample::lensU, lux::Sample::lensV, lux::Integrator::Li(), lux::Scene::lights, lightStrategy, maxDepth, lux::Ray::maxt, lux::DifferentialGeometry::nn, lux::DifferentialGeometry::p, blender::p, lux::BSDF::Pdf(), RR_EFFICIENCY, RR_PROBABILITY, rrStrategy, SAMPLE_ALL_UNIFORM, lux::BSDF::Sample_f(), SAMPLE_ONE_UNIFORM, sampleOffset, lux::Camera::SamplePosition(), lux::Sample::sampler, lux::Scene::Transmittance(), lux::VolumeIntegrator::Transmittance(), lux::UniformSampleAllLights(), lux::UniformSampleOneLight(), lux::Scene::volumeIntegrator, and lux::XYZColor::y().
Reimplemented from lux::Integrator.
Definition at line 33 of file path2.cpp.
References lux::Sample::AddxD(), lux::Scene::lights, lightStrategy, maxDepth, RR_NONE, rrStrategy, SAMPLE_ALL_UNIFORM, SAMPLE_AUTOMATIC, SAMPLE_ONE_UNIFORM, and sampleOffset.
float lux::Path2Integrator::continueProbability [private] |
Definition at line 55 of file path2.h.
Referenced by Li(), and Path2Integrator().
Definition at line 52 of file path2.h.
Referenced by Li(), Path2Integrator(), and RequestSamples().
int lux::Path2Integrator::maxDepth [private] |
Definition at line 54 of file path2.h.
Referenced by CreateSurfaceIntegrator(), Li(), Path2Integrator(), and RequestSamples().
RRStrategy lux::Path2Integrator::rrStrategy [private] |
Definition at line 53 of file path2.h.
Referenced by Li(), Path2Integrator(), and RequestSamples().
int lux::Path2Integrator::sampleOffset [private] |
Definition at line 57 of file path2.h.
Referenced by Li(), and RequestSamples().