#include <exphotonmap.h>
Definition at line 119 of file integrators/exphotonmap.h.
Definition at line 122 of file integrators/exphotonmap.h.
Definition at line 126 of file integrators/exphotonmap.h.
ExPhotonIntegrator::ExPhotonIntegrator | ( | LightStrategy | st, | |
int | ncaus, | |||
int | nindir, | |||
int | maxDirPhotons, | |||
int | nLookup, | |||
int | mdepth, | |||
float | maxdist, | |||
bool | finalGather, | |||
int | gatherSamples, | |||
float | ga, | |||
RRStrategy | grrStrategy, | |||
float | grrContinueProbability, | |||
bool | dbgEnableDirect, | |||
bool | dbgEnableCaustic, | |||
bool | dbgEnableIndirect, | |||
bool | dbgEnableSpecular | |||
) |
Definition at line 165 of file integrators/exphotonmap.cpp.
References causticMap, cimg_library::cos(), cosGatherAngle, debugEnableCaustic, debugEnableDirect, debugEnableIndirect, debugEnableSpecular, finalGather, gatherRRContinueProbability, gatherRRStrategy, gatherSamples, indirectMap, lightStrategy, maxDirectPhotons, maxDistSquared, maxSpecularDepth, nCausticPhotons, nIndirectPhotons, nLookup, radianceMap, and Radians().
Referenced by clone(), and CreateSurfaceIntegrator().
ExPhotonIntegrator::~ExPhotonIntegrator | ( | ) |
Definition at line 197 of file integrators/exphotonmap.cpp.
References causticMap, indirectMap, and radianceMap.
ExPhotonIntegrator::ExPhotonIntegrator | ( | int | ncaus, | |
int | nindir, | |||
int | nLookup, | |||
int | mdepth, | |||
float | maxdist, | |||
bool | finalGather, | |||
int | gatherSamples, | |||
float | rrt, | |||
float | ga | |||
) |
Definition at line 140 of file pbrtattic/integrators/exphotonmap.cpp.
References causticMap, cimg_library::cos(), cosGatherAngle, finalGather, gatherSamples, indirectMap, maxSpecularDepth, nCausticPhotons, nIndirectPhotons, radianceMap, Radians(), rrTreshold, and specularDepth.
lux::ExPhotonIntegrator::~ExPhotonIntegrator | ( | ) |
virtual ExPhotonIntegrator* lux::ExPhotonIntegrator::clone | ( | ) | const [virtual] |
ExPhotonIntegrator * ExPhotonIntegrator::clone | ( | ) | const [virtual] |
static SurfaceIntegrator* lux::ExPhotonIntegrator::CreateSurfaceIntegrator | ( | const ParamSet & | params | ) | [static] |
SurfaceIntegrator * ExPhotonIntegrator::CreateSurfaceIntegrator | ( | const ParamSet & | params | ) | [static] |
Definition at line 887 of file integrators/exphotonmap.cpp.
References debugEnableCaustic, debugEnableDirect, debugEnableIndirect, debugEnableSpecular, ExPhotonIntegrator(), finalGather, lux::ParamSet::FindOneBool(), lux::ParamSet::FindOneFloat(), lux::ParamSet::FindOneInt(), lux::ParamSet::FindOneString(), gatherSamples, LUX_BADTOKEN, LUX_WARNING, luxError, maxDepth, RR_EFFICIENCY, RR_NONE, RR_PROBABILITY, SAMPLE_ALL_UNIFORM, SAMPLE_AUTOMATIC, and SAMPLE_ONE_UNIFORM.
Referenced by lux::MakeSurfaceIntegrator().
Spectrum lux::ExPhotonIntegrator::estimateE | ( | KdTree< EPhoton, EPhotonProcess > * | map, | |
int | count, | |||
const Point & | p, | |||
const Normal & | n | |||
) | const [private] |
Spectrum ExPhotonIntegrator::estimateE | ( | KdTree< EPhoton, EPhotonProcess > * | map, | |
int | count, | |||
const Point & | p, | |||
const Normal & | n | |||
) | const [private] |
Definition at line 50 of file integrators/exphotonmap.cpp.
References lux::EPhoton::alpha, lux::Color::c, lux::Dot(), lux::EPhotonProcess::foundPhotons, lux::FromXYZ(), lux::KdTree< NodeData, LookupProc >::Lookup(), M_PI, maxDistSquared, nLookup, lux::EClosePhoton::photon, and lux::EPhotonProcess::photons.
Referenced by Preprocess().
IntegrationSampler* lux::ExPhotonIntegrator::HasIntegrationSampler | ( | IntegrationSampler * | is | ) | [inline] |
Definition at line 120 of file pbrtattic/integrators/exphotonmap.h.
IntegrationSampler* lux::ExPhotonIntegrator::HasIntegrationSampler | ( | IntegrationSampler * | is | ) | [inline] |
Definition at line 145 of file integrators/exphotonmap.h.
Spectrum lux::ExPhotonIntegrator::Li | ( | const Scene * | scene, | |
const RayDifferential & | ray, | |||
const Sample * | sample, | |||
float * | alpha | |||
) | const [virtual] |
Implements lux::Integrator.
Spectrum ExPhotonIntegrator::Li | ( | const Scene * | scene, | |
const RayDifferential & | ray, | |||
const Sample * | sample, | |||
float * | alpha | |||
) | const [virtual] |
Implements lux::Integrator.
Definition at line 534 of file integrators/exphotonmap.cpp.
References lux::Sample::AddContribution(), lux::Sample::imageX, lux::Sample::imageY, LiInternal(), lux::Sample::sampler, and lux::SWCSpectrum::ToXYZ().
Referenced by LiInternal().
SWCSpectrum ExPhotonIntegrator::LiInternal | ( | const int | specularDepth, | |
const Scene * | scene, | |||
const RayDifferential & | ray, | |||
const Sample * | sample, | |||
float * | alpha | |||
) | const [private] |
Definition at line 546 of file integrators/exphotonmap.cpp.
References lux::AbsDot(), lux::SWCSpectrum::Black(), lux::BSDF_ALL, lux::BSDF_DIFFUSE, lux::BSDF_GLOSSY, lux::BSDF_REFLECTION, lux::BSDF_SPECULAR, lux::BSDF_TRANSMISSION, lux::Color::c, causticMap, lux::CoordinateSystem(), cosGatherAngle, lux::Ray::d, debugEnableCaustic, debugEnableDirect, debugEnableIndirect, debugEnableSpecular, lux::Intersection::dg, lux::BSDF::dgShading, lux::DifferentialGeometry::dndu, lux::DifferentialGeometry::dndv, lux::Dot(), lux::DifferentialGeometry::dpdx, lux::DifferentialGeometry::dpdy, lux::DifferentialGeometry::dudx, lux::DifferentialGeometry::dudy, lux::DifferentialGeometry::dvdx, lux::DifferentialGeometry::dvdy, lux::BSDF::eta, lux::BSDF::f(), lux::SWCSpectrum::filter(), finalGather, Floor2Int(), lux::EPhotonProcess::foundPhotons, lux::FromXYZ(), gatherRRContinueProbability, gatherRRStrategy, gatherSamples, lux::Intersection::GetBSDF(), lux::Sampler::GetLazyValues(), lux::RayDifferential::hasDifferentials, indirectMap, INFINITY, lux::Scene::Intersect(), lux::Intersection::Le(), lux::Integrator::Li(), Li(), lux::Scene::lights, lightStrategy, lux::ERadiancePhoton::Lo, LPhoton(), LUX_ERROR, LUX_SYSTEM, luxError, maxDistSquared, maxSpecularDepth, cimg_library::min(), nCausticPaths, nIndirectPaths, nLookup, lux::DifferentialGeometry::nn, lux::BSDF::NumComponents(), lux::Ray::o, lux::DifferentialGeometry::p, blender::p, lux::BSDF::Pdf(), lux::ERadiancePhotonProcess::photon, lux::EClosePhoton::photon, lux::EPhotonProcess::photons, lux::PowerHeuristic(), radianceMap, RR_EFFICIENCY, RR_PROBABILITY, lux::RayDifferential::rx, lux::RayDifferential::ry, SAMPLE_ALL_UNIFORM, lux::BSDF::Sample_f(), SAMPLE_ONE_UNIFORM, sampleFinalGather1Offset, sampleFinalGather2Offset, sampleOffset, lux::Sample::sampler, lux::VolumeIntegrator::Transmittance(), lux::Scene::Transmittance(), lux::UniformConePdf(), lux::UniformSampleAllLights(), lux::UniformSampleCone(), lux::UniformSampleOneLight(), lux::Scene::volumeIntegrator, lux::EPhoton::wi, lux::Point::x, lux::Point::y, and lux::Point::z.
Referenced by Li().
static Spectrum lux::ExPhotonIntegrator::LPhoton | ( | KdTree< EPhoton, EPhotonProcess > * | map, | |
int | nPaths, | |||
int | nLookup, | |||
BSDF * | bsdf, | |||
const Intersection & | isect, | |||
const Vector & | w, | |||
float | maxDistSquared | |||
) | [static, private] |
Spectrum ExPhotonIntegrator::LPhoton | ( | KdTree< EPhoton, EPhotonProcess > * | map, | |
int | nPaths, | |||
int | nLookup, | |||
BSDF * | bsdf, | |||
const Intersection & | isect, | |||
const Vector & | w, | |||
float | maxDistSquared | |||
) | [static, private] |
Definition at line 97 of file integrators/exphotonmap.cpp.
References lux::EPhoton::alpha, lux::BSDF_ALL_REFLECTION, lux::BSDF_ALL_TRANSMISSION, lux::BSDF_DIFFUSE, lux::BSDF_GLOSSY, lux::BSDF_REFLECTION, lux::BSDF_TRANSMISSION, lux::Color::c, lux::Intersection::dg, lux::BSDF::dgShading, lux::Dot(), lux::Ekernel(), lux::BSDF::f(), lux::EPhotonProcess::foundPhotons, lux::FromXYZ(), INV_PI, lux::KdTree< NodeData, LookupProc >::Lookup(), lux::DifferentialGeometry::nn, lux::BSDF::NumComponents(), blender::p, lux::DifferentialGeometry::p, lux::EClosePhoton::photon, lux::EPhotonProcess::photons, lux::BSDF::rho(), and lux::EPhoton::wi.
Referenced by LiInternal().
void lux::ExPhotonIntegrator::Preprocess | ( | const Scene * | ) | [virtual] |
Reimplemented from lux::Integrator.
void ExPhotonIntegrator::Preprocess | ( | const Scene * | scene | ) | [virtual] |
Reimplemented from lux::Integrator.
Definition at line 251 of file integrators/exphotonmap.cpp.
References lux::AbsDot(), lux::SWCSpectrum::Black(), lux::BSDF_ALL, lux::BSDF_ALL_REFLECTION, lux::BSDF_ALL_TRANSMISSION, lux::BSDF_REFLECTION, lux::BSDF_SPECULAR, lux::BSDF_TRANSMISSION, causticMap, lux::ComputeStep1dCDF(), lux::Ray::d, lux::Intersection::dg, lux::BSDF::dgShading, lux::Dot(), estimateE(), lux::SWCSpectrum::filter(), finalGather, lux::random::floatValue(), Floor2Int(), lux::BSDF::FreeAll(), lux::Intersection::GetBSDF(), indirectMap, lux::Scene::Intersect(), INV_PI, lux::Scene::lights, lux::ERadiancePhoton::Lo, LUX_CONSISTENCY, LUX_ERROR, LUX_INFO, LUX_NOERROR, LUX_WARNING, luxError, maxDirectPhotons, cimg_library::min(), lux::ERadiancePhoton::n, nCausticPaths, nCausticPhotons, nIndirectPaths, nIndirectPhotons, lux::DifferentialGeometry::nn, lux::BSDF::NumComponents(), lux::ERadiancePhoton::p, blender::p, lux::DifferentialGeometry::p, radianceMap, lux::RadicalInverse(), lux::BSDF::rho(), lux::SpectrumWavelengths::Sample(), lux::BSDF::Sample_f(), lux::Light::Sample_L(), lux::SampleStep1d(), thread_wavelengths, lux::Scene::Transmittance(), and unsuccessful().
Reimplemented from lux::Integrator.
Reimplemented from lux::Integrator.
Definition at line 203 of file integrators/exphotonmap.cpp.
References lux::Sample::AddxD(), finalGather, gatherRRStrategy, gatherSamples, lux::Scene::lights, lightStrategy, maxSpecularDepth, RR_NONE, SAMPLE_ALL_UNIFORM, SAMPLE_AUTOMATIC, SAMPLE_ONE_UNIFORM, sampleFinalGather1Offset, sampleFinalGather2Offset, and sampleOffset.
static bool lux::ExPhotonIntegrator::unsuccessful | ( | int | needed, | |
int | found, | |||
int | shot | |||
) | [inline, static, private] |
Definition at line 123 of file pbrtattic/integrators/exphotonmap.h.
static bool lux::ExPhotonIntegrator::unsuccessful | ( | int | needed, | |
int | found, | |||
int | shot | |||
) | [inline, static, private] |
int * lux::ExPhotonIntegrator::bsdfComponentOffset [private] |
Definition at line 146 of file pbrtattic/integrators/exphotonmap.h.
int* lux::ExPhotonIntegrator::bsdfSampleOffset [private] |
Definition at line 146 of file pbrtattic/integrators/exphotonmap.h.
KdTree< EPhoton, EPhotonProcess > * lux::ExPhotonIntegrator::causticMap [mutable, private] |
Definition at line 192 of file integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator(), LiInternal(), Preprocess(), and ~ExPhotonIntegrator().
float lux::ExPhotonIntegrator::cosGatherAngle [private] |
Definition at line 176 of file integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator(), and LiInternal().
bool lux::ExPhotonIntegrator::debugEnableCaustic [private] |
Definition at line 183 of file integrators/exphotonmap.h.
Referenced by CreateSurfaceIntegrator(), ExPhotonIntegrator(), and LiInternal().
bool lux::ExPhotonIntegrator::debugEnableDirect [private] |
Definition at line 183 of file integrators/exphotonmap.h.
Referenced by CreateSurfaceIntegrator(), ExPhotonIntegrator(), and LiInternal().
bool lux::ExPhotonIntegrator::debugEnableIndirect [private] |
Definition at line 183 of file integrators/exphotonmap.h.
Referenced by CreateSurfaceIntegrator(), ExPhotonIntegrator(), and LiInternal().
bool lux::ExPhotonIntegrator::debugEnableSpecular [private] |
Definition at line 183 of file integrators/exphotonmap.h.
Referenced by CreateSurfaceIntegrator(), ExPhotonIntegrator(), and LiInternal().
bool lux::ExPhotonIntegrator::finalGather [private] |
Definition at line 175 of file integrators/exphotonmap.h.
Referenced by CreateSurfaceIntegrator(), ExPhotonIntegrator(), LiInternal(), Preprocess(), and RequestSamples().
int lux::ExPhotonIntegrator::gatherComponentOffset[2] [private] |
Definition at line 135 of file pbrtattic/integrators/exphotonmap.h.
float lux::ExPhotonIntegrator::gatherRRContinueProbability [private] |
Definition at line 179 of file integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator(), and LiInternal().
Definition at line 178 of file integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator(), LiInternal(), and RequestSamples().
int lux::ExPhotonIntegrator::gatherSampleOffset[2] [private] |
Definition at line 135 of file pbrtattic/integrators/exphotonmap.h.
int lux::ExPhotonIntegrator::gatherSamples [private] |
Definition at line 177 of file integrators/exphotonmap.h.
Referenced by CreateSurfaceIntegrator(), ExPhotonIntegrator(), LiInternal(), and RequestSamples().
KdTree< EPhoton, EPhotonProcess > * lux::ExPhotonIntegrator::indirectMap [mutable, private] |
Definition at line 193 of file integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator(), LiInternal(), Preprocess(), and ~ExPhotonIntegrator().
int lux::ExPhotonIntegrator::lightNumOffset [private] |
Definition at line 145 of file pbrtattic/integrators/exphotonmap.h.
int* lux::ExPhotonIntegrator::lightSampleOffset [private] |
Definition at line 145 of file pbrtattic/integrators/exphotonmap.h.
Definition at line 168 of file integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator(), LiInternal(), and RequestSamples().
int lux::ExPhotonIntegrator::maxDepth [private] |
Definition at line 169 of file integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator(), and Preprocess().
float lux::ExPhotonIntegrator::maxDistSquared [private] |
Definition at line 172 of file integrators/exphotonmap.h.
Referenced by estimateE(), ExPhotonIntegrator(), and LiInternal().
int lux::ExPhotonIntegrator::maxSpecularDepth [private] |
Definition at line 171 of file integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator(), LiInternal(), and RequestSamples().
int lux::ExPhotonIntegrator::nCausticPaths [private] |
Definition at line 191 of file integrators/exphotonmap.h.
Referenced by LiInternal(), and Preprocess().
Definition at line 169 of file integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator(), and Preprocess().
int lux::ExPhotonIntegrator::nIndirectPaths [private] |
Definition at line 191 of file integrators/exphotonmap.h.
Referenced by LiInternal(), and Preprocess().
Definition at line 169 of file integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator(), and Preprocess().
u_int lux::ExPhotonIntegrator::nLookup [private] |
Definition at line 170 of file integrators/exphotonmap.h.
Referenced by estimateE(), ExPhotonIntegrator(), and LiInternal().
KdTree< ERadiancePhoton, ERadiancePhotonProcess > * lux::ExPhotonIntegrator::radianceMap [mutable, private] |
Definition at line 194 of file integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator(), LiInternal(), Preprocess(), and ~ExPhotonIntegrator().
float lux::ExPhotonIntegrator::rrTreshold [private] |
Definition at line 140 of file pbrtattic/integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator().
int lux::ExPhotonIntegrator::sampleFinalGather1Offset [private] |
Definition at line 188 of file integrators/exphotonmap.h.
Referenced by LiInternal(), and RequestSamples().
int lux::ExPhotonIntegrator::sampleFinalGather2Offset [private] |
Definition at line 189 of file integrators/exphotonmap.h.
Referenced by LiInternal(), and RequestSamples().
int lux::ExPhotonIntegrator::sampleOffset [private] |
Definition at line 187 of file integrators/exphotonmap.h.
Referenced by LiInternal(), and RequestSamples().
int lux::ExPhotonIntegrator::specularDepth [mutable, private] |
Definition at line 138 of file pbrtattic/integrators/exphotonmap.h.
Referenced by ExPhotonIntegrator().