
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] |
1.5.6