#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().
1.6.3