#include <igi.h>
Definition at line 49 of file integrators/igi.h.
Definition at line 54 of file integrators/igi.cpp.
References maxSpecularDepth, minDist2, nLightPaths, nLightSets, RoundUpPow2(), and virtualLights.
Referenced by clone(), and CreateSurfaceIntegrator().
virtual lux::IGIIntegrator::~IGIIntegrator | ( | ) | [inline, virtual] |
Definition at line 53 of file integrators/igi.h.
References bsdfComponentOffset, bsdfSampleOffset, and lightSampleOffset.
Definition at line 34 of file pbrtattic/integrators/igi.cpp.
References indirectScale, maxSpecularDepth, minDist2, nLightPaths, nLightSets, RoundUpPow2(), rrThreshold, specularDepth, and virtualLights.
IGIIntegrator * IGIIntegrator::clone | ( | ) | const [virtual] |
Definition at line 29 of file pbrtattic/integrators/igi.cpp.
References IGIIntegrator().
static SurfaceIntegrator* lux::IGIIntegrator::CreateSurfaceIntegrator | ( | const ParamSet & | params | ) | [static] |
SurfaceIntegrator * IGIIntegrator::CreateSurfaceIntegrator | ( | const ParamSet & | params | ) | [static] |
Definition at line 259 of file integrators/igi.cpp.
References lux::ParamSet::FindOneFloat(), lux::ParamSet::FindOneInt(), IGIIntegrator(), nLightPaths, and nLightSets.
IntegrationSampler* lux::IGIIntegrator::HasIntegrationSampler | ( | IntegrationSampler * | is | ) | [inline] |
Definition at line 52 of file pbrtattic/integrators/igi.h.
Spectrum IGIIntegrator::Li | ( | const Scene * | scene, | |
const RayDifferential & | ray, | |||
const Sample * | sample, | |||
float * | alpha | |||
) | const |
Definition at line 141 of file pbrtattic/integrators/igi.cpp.
References lux::AbsDot(), lux::BSDF_REFLECTION, lux::BSDF_SPECULAR, lux::BSDF_TRANSMISSION, bsdfComponentOffset, bsdfSampleOffset, lux::Ray::d, lux::Intersection::dg, lux::BSDF::dgShading, lux::DistanceSquared(), 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(), G(), lux::Intersection::GetBSDF(), lux::RayDifferential::hasDifferentials, indirectScale, lux::Scene::Intersect(), lux::Scene::IntersectP(), lux::VirtualLight::Le, lux::Intersection::Le(), lux::Scene::Li(), lux::Scene::lights, lightSampleOffset, maxSpecularDepth, cimg_library::cimg::min(), minDist2, lux::VirtualLight::n, nLightSets, lux::DifferentialGeometry::nn, lux::Normalize(), lux::Ray::o, lux::Sample::oneD, lux::VirtualLight::p, lux::DifferentialGeometry::p, p, rrThreshold, lux::RayDifferential::rx, lux::RayDifferential::ry, lux::BSDF::Sample_f(), SmoothStep(), specularDepth, lux::Scene::Transmittance(), lux::UniformSampleAllLights(), virtualLights, and vlSetOffset.
int IGIIntegrator::Li | ( | const TsPack * | tspack, | |
const Scene * | scene, | |||
const Sample * | sample | |||
) | const [virtual] |
Implements lux::SurfaceIntegrator.
Definition at line 167 of file integrators/igi.cpp.
References lux::AbsDot(), lux::Sample::AddContribution(), lux::SWCSpectrum::Black(), lux::BSDF_REFLECTION, lux::BSDF_SPECULAR, lux::BSDF_TRANSMISSION, bsdfComponentOffset, bsdfSampleOffset, bufferId, lux::TsPack::camera, Clamp(), lux::Ray::d, lux::BSDF::dgShading, lux::DistanceSquared(), lux::MachineEpsilon::E(), lux::BSDF::f(), lux::RandomGenerator::floatValue(), Floor2Int(), G(), lux::Camera::GenerateRay(), lux::Intersection::GetBSDF(), lux::VirtualLight::GetSWCSpectrum(), lux::RayDifferential::hasDifferentials, lux::Sample::imageX, lux::Sample::imageY, lux::Scene::Intersect(), lux::Scene::IntersectP(), lux::Intersection::Le(), lux::Scene::lights, lightSampleOffset, maxSpecularDepth, minDist2, lux::VirtualLight::n, nLightSets, lux::DifferentialGeometry::nn, lux::Normalize(), lux::Sample::oneD, lux::VirtualLight::p, lux::DifferentialGeometry::p, p, lux::r, lux::TsPack::rng, lux::RayDifferential::rx, lux::RayDifferential::ry, lux::BSDF::Sample_f(), SmoothStep(), lux::Ray::time, lux::Scene::Transmittance(), lux::Sample::twoD, lux::UniformSampleOneLight(), virtualLights, and vlSetOffset.
void IGIIntegrator::Preprocess | ( | const Scene * | scene | ) |
Definition at line 63 of file pbrtattic/integrators/igi.cpp.
References lux::AbsDot(), lux::BSDF_ALL, lux::ComputeStep1dCDF(), lux::Ray::d, lux::BSDF::dgShading, Floor2Int(), lux::Scene::Intersect(), lux::LDShuffleScrambled1D(), lux::LDShuffleScrambled2D(), lux::Scene::lights, M_PI, nLightPaths, nLightSets, lux::DifferentialGeometry::nn, lux::r, lux::BSDF::rho(), lux::BSDF::Sample_f(), lux::Light::Sample_L(), lux::SampleStep1d(), lux::Scene::Transmittance(), and virtualLights.
Reimplemented from lux::Integrator.
Definition at line 78 of file integrators/igi.cpp.
References lux::AbsDot(), lux::BSDF_ALL, lux::BUF_FRAMEBUFFER, lux::BUF_TYPE_PER_PIXEL, bufferId, lux::Scene::camera, lux::ComputeStep1dCDF(), lux::Ray::d, lux::Intersection::dg, lux::BSDF::dgShading, lux::Camera::film, lux::SWCSpectrum::Filter(), lux::RandomGenerator::floatValue(), Floor2Int(), lux::Intersection::GetBSDF(), lux::Sampler::GetBufferType(), lux::Scene::Intersect(), lux::LDShuffleScrambled1D(), lux::LDShuffleScrambled2D(), lux::Scene::lights, M_PI, cimg_library::cimg::min(), nLightPaths, nLightSets, lux::DifferentialGeometry::nn, lux::DifferentialGeometry::p, lux::r, lux::Film::RequestBuffer(), lux::BSDF::rho(), lux::TsPack::rng, lux::SpectrumWavelengths::Sample(), lux::BSDF::Sample_f(), lux::Scene::sampler, lux::SampleStep1d(), lux::TsPack::swl, and virtualLights.
Reimplemented from lux::Integrator.
Reimplemented from lux::Integrator.
Definition at line 62 of file integrators/igi.cpp.
References lux::Sample::Add1D(), lux::Sample::Add2D(), bsdfComponentOffset, bsdfSampleOffset, lightNumOffset, lux::Scene::lights, lightSampleOffset, and vlSetOffset.
int * lux::IGIIntegrator::bsdfComponentOffset [private] |
Definition at line 71 of file integrators/igi.h.
Referenced by Li(), RequestSamples(), and ~IGIIntegrator().
int * lux::IGIIntegrator::bsdfSampleOffset [private] |
Definition at line 71 of file integrators/igi.h.
Referenced by Li(), RequestSamples(), and ~IGIIntegrator().
int lux::IGIIntegrator::bufferId [private] |
Definition at line 68 of file integrators/igi.h.
Referenced by Li(), and Preprocess().
float lux::IGIIntegrator::indirectScale [private] |
Definition at line 60 of file pbrtattic/integrators/igi.h.
Referenced by IGIIntegrator(), and Li().
int lux::IGIIntegrator::lightNumOffset [private] |
Definition at line 70 of file integrators/igi.h.
Referenced by RequestSamples().
int * lux::IGIIntegrator::lightSampleOffset [private] |
Definition at line 70 of file integrators/igi.h.
Referenced by Li(), RequestSamples(), and ~IGIIntegrator().
int lux::IGIIntegrator::maxSpecularDepth [private] |
Definition at line 66 of file integrators/igi.h.
Referenced by IGIIntegrator(), and Li().
float lux::IGIIntegrator::minDist2 [private] |
Definition at line 67 of file integrators/igi.h.
Referenced by IGIIntegrator(), and Li().
u_int lux::IGIIntegrator::nLightPaths [private] |
Definition at line 64 of file integrators/igi.h.
Referenced by CreateSurfaceIntegrator(), IGIIntegrator(), and Preprocess().
u_int lux::IGIIntegrator::nLightSets [private] |
Definition at line 64 of file integrators/igi.h.
Referenced by CreateSurfaceIntegrator(), IGIIntegrator(), Li(), and Preprocess().
float lux::IGIIntegrator::rrThreshold [private] |
Definition at line 60 of file pbrtattic/integrators/igi.h.
Referenced by IGIIntegrator(), and Li().
int lux::IGIIntegrator::specularDepth [mutable, private] |
Definition at line 58 of file pbrtattic/integrators/igi.h.
Referenced by IGIIntegrator(), and Li().
vector<VirtualLight>* lux::IGIIntegrator::virtualLights [private] |
Definition at line 57 of file pbrtattic/integrators/igi.h.
vector<vector<VirtualLight> > lux::IGIIntegrator::virtualLights [private] |
Definition at line 65 of file integrators/igi.h.
Referenced by IGIIntegrator(), Li(), and Preprocess().
int lux::IGIIntegrator::vlSetOffset [private] |
Definition at line 68 of file integrators/igi.h.
Referenced by Li(), and RequestSamples().