#include <igi.h>
Public Member Functions | |
~IGIIntegrator () | |
Spectrum | Li (const Scene *scene, const Renderer *renderer, const RayDifferential &ray, const Intersection &isect, const Sample *sample, RNG &rng, MemoryArena &arena) const |
void | RequestSamples (Sampler *sampler, Sample *sample, const Scene *scene) |
void | Preprocess (const Scene *, const Camera *, const Renderer *) |
IGIIntegrator (uint32_t nl, uint32_t ns, float rrt, int maxd, float gl, int ng) | |
Private Attributes | |
LightSampleOffsets * | lightSampleOffsets |
BSDFSampleOffsets * | bsdfSampleOffsets |
uint32_t | nLightPaths |
uint32_t | nLightSets |
float | gLimit |
int | nGatherSamples |
float | rrThreshold |
int | maxSpecularDepth |
int | vlSetOffset |
BSDFSampleOffsets | gatherSampleOffset |
vector< vector< VirtualLight > > | virtualLights |
Definition at line 50 of file igi.h.
IGIIntegrator::~IGIIntegrator | ( | ) |
Definition at line 37 of file igi.cpp.
References bsdfSampleOffsets, and lightSampleOffsets.
IGIIntegrator::IGIIntegrator | ( | uint32_t | nl, | |
uint32_t | ns, | |||
float | rrt, | |||
int | maxd, | |||
float | gl, | |||
int | ng | |||
) | [inline] |
Definition at line 59 of file igi.h.
References bsdfSampleOffsets, gLimit, lightSampleOffsets, maxSpecularDepth, nGatherSamples, nLightPaths, nLightSets, RoundUpPow2(), rrThreshold, and virtualLights.
Spectrum IGIIntegrator::Li | ( | const Scene * | scene, | |
const Renderer * | renderer, | |||
const RayDifferential & | ray, | |||
const Intersection & | isect, | |||
const Sample * | sample, | |||
RNG & | rng, | |||
MemoryArena & | arena | |||
) | const [virtual] |
Implements SurfaceIntegrator.
Definition at line 138 of file igi.cpp.
References AbsDot(), BSDF_ALL, BSDF_SPECULAR, bsdfSampleOffsets, Ray::d, Ray::depth, Intersection::dg, BSDF::dgShading, DistanceSquared(), BSDF::f(), gatherSampleOffset, Intersection::GetBSDF(), gLimit, Scene::IntersectP(), CoefficientSpectrum< nSamples >::IsBlack(), Intersection::Le(), Renderer::Li(), lightSampleOffsets, maxSpecularDepth, VirtualLight::n, nGatherSamples, nLightSets, DifferentialGeometry::nn, Normalize(), Sample::oneD, VirtualLight::p, DifferentialGeometry::p, VirtualLight::pathContrib, RNG::RandomFloat(), VirtualLight::rayEpsilon, Intersection::rayEpsilon, rrThreshold, BSDF::Sample_f(), SpecularReflect(), SpecularTransmit(), Ray::time, Renderer::Transmittance(), UniformSampleAllLights(), virtualLights, vlSetOffset, and RGBSpectrum::y().
void IGIIntegrator::Preprocess | ( | const Scene * | scene, | |
const Camera * | camera, | |||
const Renderer * | renderer | |||
) | [virtual] |
Reimplemented from Integrator.
Definition at line 63 of file igi.cpp.
References AbsDot(), arena, ComputeLightSamplingCDF(), Ray::d, Intersection::dg, BSDF::dgShading, MemoryArena::FreeAll(), Intersection::GetBSDF(), Scene::Intersect(), CoefficientSpectrum< nSamples >::IsBlack(), LDShuffleScrambled1D(), LDShuffleScrambled2D(), Scene::lights, M_PI, nLightPaths, nLightSets, DifferentialGeometry::nn, DifferentialGeometry::p, RNG::RandomFloat(), Intersection::rayEpsilon, BSDF::rho(), rng, BSDF::Sample_f(), Light::Sample_L(), Distribution1D::SampleDiscrete(), Camera::shutterOpen, Renderer::Transmittance(), virtualLights, and RGBSpectrum::y().
void IGIIntegrator::RequestSamples | ( | Sampler * | sampler, | |
Sample * | sample, | |||
const Scene * | scene | |||
) | [virtual] |
Reimplemented from Integrator.
Definition at line 43 of file igi.cpp.
References Sample::Add1D(), bsdfSampleOffsets, gatherSampleOffset, Scene::lights, lightSampleOffsets, nGatherSamples, Light::nSamples, Sampler::RoundSize(), and vlSetOffset.
Definition at line 75 of file igi.h.
Referenced by IGIIntegrator(), Li(), RequestSamples(), and ~IGIIntegrator().
Definition at line 82 of file igi.h.
Referenced by Li(), and RequestSamples().
float IGIIntegrator::gLimit [private] |
Definition at line 77 of file igi.h.
Referenced by IGIIntegrator(), and Li().
Definition at line 74 of file igi.h.
Referenced by IGIIntegrator(), Li(), RequestSamples(), and ~IGIIntegrator().
int IGIIntegrator::maxSpecularDepth [private] |
Definition at line 80 of file igi.h.
Referenced by IGIIntegrator(), and Li().
int IGIIntegrator::nGatherSamples [private] |
Definition at line 78 of file igi.h.
Referenced by IGIIntegrator(), Li(), and RequestSamples().
uint32_t IGIIntegrator::nLightPaths [private] |
Definition at line 76 of file igi.h.
Referenced by IGIIntegrator(), and Preprocess().
uint32_t IGIIntegrator::nLightSets [private] |
Definition at line 76 of file igi.h.
Referenced by IGIIntegrator(), Li(), and Preprocess().
float IGIIntegrator::rrThreshold [private] |
Definition at line 79 of file igi.h.
Referenced by IGIIntegrator(), and Li().
vector<vector<VirtualLight> > IGIIntegrator::virtualLights [private] |
Definition at line 83 of file igi.h.
Referenced by IGIIntegrator(), Li(), and Preprocess().
int IGIIntegrator::vlSetOffset [private] |
Definition at line 81 of file igi.h.
Referenced by Li(), and RequestSamples().