Public Member Functions | |
IGIIntegrator (int nl, int ns, float md, float rrt, float is) | |
Spectrum | Li (const Scene *scene, const RayDifferential &ray, const Sample *sample, float *alpha) const |
void | RequestSamples (Sample *sample, const Scene *scene) |
void | Preprocess (const Scene *) |
Private Attributes | |
u_int | nLightPaths |
u_int | nLightSets |
vector< VirtualLight > * | virtualLights |
int | specularDepth |
int | maxSpecularDepth |
float | minDist2 |
float | rrThreshold |
float | indirectScale |
int | vlSetOffset |
int * | lightSampleOffset |
int | lightNumOffset |
int * | bsdfSampleOffset |
int * | bsdfComponentOffset |
Definition at line 41 of file igi.cpp.
IGIIntegrator::IGIIntegrator | ( | int | nl, | |
int | ns, | |||
float | md, | |||
float | rrt, | |||
float | is | |||
) |
Definition at line 64 of file igi.cpp.
References indirectScale, maxSpecularDepth, minDist2, nLightPaths, nLightSets, RoundUpPow2(), rrThreshold, specularDepth, and virtualLights.
Referenced by CreateSurfaceIntegrator().
Spectrum IGIIntegrator::Li | ( | const Scene * | scene, | |
const RayDifferential & | ray, | |||
const Sample * | sample, | |||
float * | alpha | |||
) | const [virtual] |
Implements Integrator.
Definition at line 170 of file igi.cpp.
References AbsDot(), Spectrum::Black(), BSDF_REFLECTION, BSDF_SPECULAR, BSDF_TRANSMISSION, bsdfComponentOffset, bsdfSampleOffset, Ray::d, Intersection::dg, BSDF::dgShading, DistanceSquared(), DifferentialGeometry::dndu, DifferentialGeometry::dndv, Dot(), DifferentialGeometry::dpdx, DifferentialGeometry::dpdy, DifferentialGeometry::dudx, DifferentialGeometry::dudy, DifferentialGeometry::dvdx, DifferentialGeometry::dvdy, BSDF::eta, BSDF::f(), Intersection::GetBSDF(), RayDifferential::hasDifferentials, indirectScale, Scene::Intersect(), Scene::IntersectP(), VirtualLight::Le, Intersection::Le(), Scene::Li(), Scene::lights, lightSampleOffset, maxSpecularDepth, minDist2, VirtualLight::n, nLightSets, DifferentialGeometry::nn, Normalize(), Ray::o, Sample::oneD, VirtualLight::p, DifferentialGeometry::p, RandomFloat(), RAY_EPSILON, rrThreshold, RayDifferential::rx, RayDifferential::ry, BSDF::Sample_f(), SmoothStep(), specularDepth, Scene::Transmittance(), UniformSampleAllLights(), virtualLights, vlSetOffset, and Spectrum::y().
Reimplemented from Integrator.
Definition at line 75 of file igi.cpp.
References Sample::Add1D(), Sample::Add2D(), bsdfComponentOffset, bsdfSampleOffset, lightNumOffset, Scene::lights, lightSampleOffset, Light::nSamples, Sampler::RoundSize(), Scene::sampler, and vlSetOffset.
void IGIIntegrator::Preprocess | ( | const Scene * | scene | ) | [virtual] |
Reimplemented from Integrator.
Definition at line 93 of file igi.cpp.
References AbsDot(), Spectrum::Black(), BSDF_ALL, ComputeStep1dCDF(), Ray::d, BSDF::dgShading, Floor2Int(), BSDF::FreeAll(), Scene::Intersect(), LDShuffleScrambled1D(), LDShuffleScrambled2D(), Scene::lights, M_PI, nLightPaths, nLightSets, DifferentialGeometry::nn, RandomFloat(), BSDF::rho(), BSDF::Sample_f(), Light::Sample_L(), SampleStep1d(), Scene::Transmittance(), virtualLights, and Spectrum::y().
u_int IGIIntegrator::nLightPaths [private] |
Definition at line 52 of file igi.cpp.
Referenced by CreateSurfaceIntegrator(), IGIIntegrator(), and Preprocess().
u_int IGIIntegrator::nLightSets [private] |
Definition at line 52 of file igi.cpp.
Referenced by CreateSurfaceIntegrator(), IGIIntegrator(), Li(), and Preprocess().
vector<VirtualLight>* IGIIntegrator::virtualLights [private] |
int IGIIntegrator::specularDepth [mutable, private] |
int IGIIntegrator::maxSpecularDepth [private] |
float IGIIntegrator::minDist2 [private] |
float IGIIntegrator::rrThreshold [private] |
float IGIIntegrator::indirectScale [private] |
int IGIIntegrator::vlSetOffset [private] |
int* IGIIntegrator::lightSampleOffset [private] |
int IGIIntegrator::lightNumOffset [private] |
int* IGIIntegrator::bsdfSampleOffset [private] |
int * IGIIntegrator::bsdfComponentOffset [private] |