Public Member Functions | |
DirectLighting (LightStrategy ls, int md) | |
~DirectLighting () | |
Spectrum | Li (const Scene *scene, const RayDifferential &ray, const Sample *sample, float *alpha) const |
void | RequestSamples (Sample *sample, const Scene *scene) |
Private Attributes | |
LightStrategy | strategy |
int | rayDepth |
int | maxDepth |
int * | lightSampleOffset |
int | lightNumOffset |
int * | bsdfSampleOffset |
int * | bsdfComponentOffset |
float * | avgY |
float * | avgYsample |
float * | cdf |
float | overallAvgY |
Definition at line 32 of file directlighting.cpp.
DirectLighting::DirectLighting | ( | LightStrategy | ls, | |
int | md | |||
) |
Definition at line 84 of file directlighting.cpp.
References avgY, avgYsample, cdf, maxDepth, overallAvgY, rayDepth, and strategy.
Referenced by CreateSurfaceIntegrator().
DirectLighting::~DirectLighting | ( | ) |
Spectrum DirectLighting::Li | ( | const Scene * | scene, | |
const RayDifferential & | ray, | |||
const Sample * | sample, | |||
float * | alpha | |||
) | const [virtual] |
Implements Integrator.
Definition at line 91 of file directlighting.cpp.
References AbsDot(), avgY, avgYsample, Spectrum::Black(), BSDF_REFLECTION, BSDF_SPECULAR, BSDF_TRANSMISSION, bsdfComponentOffset, bsdfSampleOffset, cdf, Ray::d, Intersection::dg, BSDF::dgShading, DifferentialGeometry::dndu, DifferentialGeometry::dndv, Dot(), DifferentialGeometry::dpdx, DifferentialGeometry::dpdy, DifferentialGeometry::dudx, DifferentialGeometry::dudy, DifferentialGeometry::dvdx, DifferentialGeometry::dvdy, BSDF::eta, Intersection::GetBSDF(), RayDifferential::hasDifferentials, Scene::Intersect(), Intersection::Le(), Scene::Li(), lightNumOffset, Scene::lights, lightSampleOffset, maxDepth, DifferentialGeometry::nn, Ray::o, overallAvgY, DifferentialGeometry::p, rayDepth, RayDifferential::rx, RayDifferential::ry, SAMPLE_ALL_UNIFORM, BSDF::Sample_f(), SAMPLE_ONE_UNIFORM, SAMPLE_ONE_WEIGHTED, strategy, UniformSampleAllLights(), UniformSampleOneLight(), and WeightedSampleOneLight().
Reimplemented from Integrator.
Definition at line 39 of file directlighting.cpp.
References Sample::Add1D(), Sample::Add2D(), bsdfComponentOffset, bsdfSampleOffset, lightNumOffset, Scene::lights, lightSampleOffset, Light::nSamples, Sampler::RoundSize(), SAMPLE_ALL_UNIFORM, Scene::sampler, and strategy.
LightStrategy DirectLighting::strategy [private] |
Definition at line 69 of file directlighting.cpp.
Referenced by CreateSurfaceIntegrator(), DirectLighting(), Li(), and RequestSamples().
int DirectLighting::rayDepth [mutable, private] |
int DirectLighting::maxDepth [private] |
Definition at line 71 of file directlighting.cpp.
Referenced by CreateSurfaceIntegrator(), DirectLighting(), and Li().
int* DirectLighting::lightSampleOffset [private] |
int DirectLighting::lightNumOffset [private] |
int* DirectLighting::bsdfSampleOffset [private] |
int * DirectLighting::bsdfComponentOffset [private] |
float* DirectLighting::avgY [mutable, private] |
Definition at line 75 of file directlighting.cpp.
Referenced by DirectLighting(), Li(), and ~DirectLighting().
float * DirectLighting::avgYsample [mutable, private] |
Definition at line 75 of file directlighting.cpp.
Referenced by DirectLighting(), Li(), and ~DirectLighting().
float * DirectLighting::cdf [mutable, private] |
Definition at line 75 of file directlighting.cpp.
Referenced by DirectLighting(), Li(), and ~DirectLighting().
float DirectLighting::overallAvgY [mutable, private] |