#include <diffuseprt.h>
Public Member Functions | |
DiffusePRTIntegrator (int lm, int ns) | |
~DiffusePRTIntegrator () | |
void | Preprocess (const Scene *scene, const Camera *camera, const Renderer *renderer) |
void | RequestSamples (Sampler *sampler, Sample *sample, const Scene *scene) |
Spectrum | Li (const Scene *scene, const Renderer *, const RayDifferential &ray, const Intersection &isect, const Sample *sample, RNG &rng, MemoryArena &arena) const |
Private Attributes | |
const int | lmax |
const int | nSamples |
Spectrum * | c_in |
Definition at line 36 of file diffuseprt.h.
DiffusePRTIntegrator::DiffusePRTIntegrator | ( | int | lm, | |
int | ns | |||
) |
Definition at line 37 of file diffuseprt.cpp.
DiffusePRTIntegrator::~DiffusePRTIntegrator | ( | ) |
Definition at line 43 of file diffuseprt.cpp.
References c_in.
Spectrum DiffusePRTIntegrator::Li | ( | const Scene * | scene, | |
const Renderer * | , | |||
const RayDifferential & | ray, | |||
const Intersection & | isect, | |||
const Sample * | sample, | |||
RNG & | rng, | |||
MemoryArena & | arena | |||
) | const [virtual] |
Implements SurfaceIntegrator.
Definition at line 63 of file diffuseprt.cpp.
References MemoryArena::Alloc(), BSDF_ALL_REFLECTION, c_in, CoefficientSpectrum< nSamples >::Clamp(), Ray::d, BSDF::dgShading, Faceforward(), Intersection::GetBSDF(), INV_PI, Intersection::Le(), lmax, DifferentialGeometry::nn, nSamples, DifferentialGeometry::p, Intersection::rayEpsilon, BSDF::rho(), SHComputeDiffuseTransfer(), and SHTerms().
void DiffusePRTIntegrator::Preprocess | ( | const Scene * | scene, | |
const Camera * | camera, | |||
const Renderer * | renderer | |||
) | [virtual] |
Reimplemented from Integrator.
Definition at line 48 of file diffuseprt.cpp.
References arena, c_in, lmax, BBox::pMax, BBox::pMin, rng, SHProjectIncidentDirectRadiance(), Camera::shutterOpen, and Scene::WorldBound().
void DiffusePRTIntegrator::RequestSamples | ( | Sampler * | sampler, | |
Sample * | sample, | |||
const Scene * | scene | |||
) | [virtual] |
Reimplemented from Integrator.
Definition at line 59 of file diffuseprt.cpp.
Spectrum* DiffusePRTIntegrator::c_in [private] |
Definition at line 49 of file diffuseprt.h.
Referenced by DiffusePRTIntegrator(), Li(), Preprocess(), and ~DiffusePRTIntegrator().
const int DiffusePRTIntegrator::lmax [private] |
Definition at line 48 of file diffuseprt.h.
Referenced by DiffusePRTIntegrator(), Li(), and Preprocess().
const int DiffusePRTIntegrator::nSamples [private] |
Definition at line 48 of file diffuseprt.h.
Referenced by Li().