#include <particletracing.h>
Public Member Functions | |
ParticleTracingIntegrator (int md, float rrpdf) | |
SWCSpectrum | Li (const Scene *scene, const RayDifferential &ray, const Sample *sample, float *alpha) const |
void | RequestSamples (Sample *sample, const Scene *scene) |
void | Preprocess (const Scene *) |
bool | IsFluxBased () |
Static Public Member Functions | |
static SurfaceIntegrator * | CreateSurfaceIntegrator (const ParamSet ¶ms) |
Private Attributes | |
int | maxDepth |
int | sampleOffset |
float | continueProbability |
int | numOfLights |
vector< int > | bufferIds |
Definition at line 32 of file particletracing.h.
lux::ParticleTracingIntegrator::ParticleTracingIntegrator | ( | int | md, | |
float | rrpdf | |||
) | [inline] |
Definition at line 35 of file particletracing.h.
References continueProbability, and maxDepth.
Referenced by CreateSurfaceIntegrator().
SurfaceIntegrator * ParticleTracingIntegrator::CreateSurfaceIntegrator | ( | const ParamSet & | params | ) | [static] |
Definition at line 239 of file particletracing.cpp.
References lux::ParamSet::FindOneFloat(), lux::ParamSet::FindOneInt(), maxDepth, and ParticleTracingIntegrator().
bool lux::ParticleTracingIntegrator::IsFluxBased | ( | ) | [inline, virtual] |
Reimplemented from lux::SurfaceIntegrator.
Definition at line 39 of file particletracing.h.
SWCSpectrum ParticleTracingIntegrator::Li | ( | const Scene * | scene, | |
const RayDifferential & | ray, | |||
const Sample * | sample, | |||
float * | alpha | |||
) | const [virtual] |
Implements lux::Integrator.
Definition at line 65 of file particletracing.cpp.
References lux::AbsDot(), lux::Sample::AddContribution(), lux::SWCSpectrum::Black(), lux::BSDF_ALL, lux::BSDF_SPECULAR, lux::Scene::camera, continueProbability, lux::Ray::d, lux::Intersection::dg, lux::BSDF::dgShading, lux::Light::Eval(), lux::BSDF::f(), lux::random::floatValue(), Floor2Int(), blender::g, lux::Intersection::GetBSDF(), lux::Camera::GetConnectingFactor(), lux::Sampler::GetLazyValues(), lux::Sample::imageX, lux::Sample::imageY, lux::Scene::Intersect(), lux::Camera::Intersect(), lux::Camera::IsDelta(), lux::SWCSpectrum::IsNaN(), lux::Camera::IsVisibleFromEyes(), lux::Sample::lensU, lux::Sample::lensV, lux::Scene::lights, maxDepth, cimg_library::cimg::min(), lux::DifferentialGeometry::nn, lux::Normalize(), numOfLights, lux::Ray::o, lux::DifferentialGeometry::p, blender::p, lux::BSDF::Sample_f(), lux::Light::SampleDirection(), sampleOffset, lux::Camera::SamplePosition(), lux::Light::SamplePosition(), lux::Sample::sampler, and lux::SWCSpectrum::ToXYZ().
void ParticleTracingIntegrator::Preprocess | ( | const Scene * | scene | ) | [virtual] |
Reimplemented from lux::Integrator.
Definition at line 50 of file particletracing.cpp.
References lux::BUF_FRAMEBUFFER, lux::BUF_STANDALONE, lux::BUF_TYPE_PER_SCREEN, bufferIds, lux::Scene::camera, lux::Film::CreateBuffers(), lux::Camera::film, lux::Scene::lights, maxDepth, numOfLights, and lux::Film::RequestBuffer().
Reimplemented from lux::Integrator.
Definition at line 37 of file particletracing.cpp.
References lux::Sample::AddxD(), maxDepth, and sampleOffset.
vector<int> lux::ParticleTracingIntegrator::bufferIds [private] |
Definition at line 52 of file particletracing.h.
Referenced by Preprocess().
float lux::ParticleTracingIntegrator::continueProbability [private] |
Definition at line 50 of file particletracing.h.
Referenced by Li(), and ParticleTracingIntegrator().
int lux::ParticleTracingIntegrator::maxDepth [private] |
Definition at line 48 of file particletracing.h.
Referenced by CreateSurfaceIntegrator(), Li(), ParticleTracingIntegrator(), Preprocess(), and RequestSamples().
int lux::ParticleTracingIntegrator::numOfLights [private] |
Definition at line 51 of file particletracing.h.
Referenced by Li(), and Preprocess().
int lux::ParticleTracingIntegrator::sampleOffset [private] |
Definition at line 49 of file particletracing.h.
Referenced by Li(), and RequestSamples().