#include <glossyprt.h>
Public Member Functions | |
GlossyPRTIntegrator (const Spectrum &kd, const Spectrum &ks, float rough, int lm, int ns) | |
~GlossyPRTIntegrator () | |
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 Spectrum | Kd |
const Spectrum | Ks |
const float | roughness |
const int | lmax |
const int | nSamples |
Spectrum * | c_in |
Spectrum * | B |
Definition at line 36 of file glossyprt.h.
GlossyPRTIntegrator::GlossyPRTIntegrator | ( | const Spectrum & | kd, | |
const Spectrum & | ks, | |||
float | rough, | |||
int | lm, | |||
int | ns | |||
) | [inline] |
Definition at line 39 of file glossyprt.h.
GlossyPRTIntegrator::~GlossyPRTIntegrator | ( | ) |
Definition at line 36 of file glossyprt.cpp.
Spectrum GlossyPRTIntegrator::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 glossyprt.cpp.
References MemoryArena::Alloc(), ALLOCA, B, c_in, CoefficientSpectrum< nSamples >::Clamp(), Ray::d, BSDF::dgShading, Dot(), Intersection::GetBSDF(), Scene::IntersectP(), CoefficientSpectrum< nSamples >::IsBlack(), Intersection::Le(), lmax, BSDF::LocalToWorld(), nSamples, DifferentialGeometry::p, Intersection::rayEpsilon, BSDF::Sample_f(), SHComputeTransferMatrix(), SHEvaluate(), SHMatrixVectorMultiply(), SHRotate(), SHTerms(), BSDF::WorldToLocal(), Normal::x, Vector::x, Normal::y, Vector::y, Normal::z, and Vector::z.
void GlossyPRTIntegrator::Preprocess | ( | const Scene * | scene, | |
const Camera * | camera, | |||
const Renderer * | renderer | |||
) | [virtual] |
Reimplemented from Integrator.
Definition at line 42 of file glossyprt.cpp.
References arena, B, c_in, Kd, Ks, lmax, BBox::pMax, BBox::pMin, rng, roughness, SHComputeBSDFMatrix(), SHProjectIncidentDirectRadiance(), SHTerms(), Camera::shutterOpen, and Scene::WorldBound().
void GlossyPRTIntegrator::RequestSamples | ( | Sampler * | sampler, | |
Sample * | sample, | |||
const Scene * | scene | |||
) | [virtual] |
Reimplemented from Integrator.
Definition at line 59 of file glossyprt.cpp.
Spectrum* GlossyPRTIntegrator::B [private] |
Definition at line 57 of file glossyprt.h.
Referenced by GlossyPRTIntegrator(), Li(), Preprocess(), and ~GlossyPRTIntegrator().
Spectrum* GlossyPRTIntegrator::c_in [private] |
Definition at line 56 of file glossyprt.h.
Referenced by GlossyPRTIntegrator(), Li(), Preprocess(), and ~GlossyPRTIntegrator().
const Spectrum GlossyPRTIntegrator::Kd [private] |
Definition at line 53 of file glossyprt.h.
Referenced by Preprocess().
const Spectrum GlossyPRTIntegrator::Ks [private] |
Definition at line 53 of file glossyprt.h.
Referenced by Preprocess().
const int GlossyPRTIntegrator::lmax [private] |
Definition at line 55 of file glossyprt.h.
Referenced by Li(), and Preprocess().
const int GlossyPRTIntegrator::nSamples [private] |
Definition at line 55 of file glossyprt.h.
Referenced by Li().
const float GlossyPRTIntegrator::roughness [private] |
Definition at line 54 of file glossyprt.h.
Referenced by Preprocess().