#include <useprobes.h>
Public Member Functions | |
UseRadianceProbes (const string &filename) | |
~UseRadianceProbes () | |
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 Member Functions | |
const Spectrum * | c_inXYZ (int lmax, int vx, int vy, int vz) const |
Private Attributes | |
BBox | bbox |
int | lmax |
int | includeDirectInProbes |
int | includeIndirectInProbes |
int | nProbes [3] |
Spectrum * | c_in |
LightSampleOffsets * | lightSampleOffsets |
BSDFSampleOffsets * | bsdfSampleOffsets |
Definition at line 37 of file useprobes.h.
UseRadianceProbes::UseRadianceProbes | ( | const string & | filename | ) |
Definition at line 46 of file useprobes.cpp.
References bbox, bsdfSampleOffsets, c_in, Error(), includeDirectInProbes, includeIndirectInProbes, lightSampleOffsets, lmax, nProbes, BBox::pMax, BBox::pMin, Severe(), SHTerms(), Point::x, Point::y, and Point::z.
UseRadianceProbes::~UseRadianceProbes | ( | ) |
Definition at line 75 of file useprobes.cpp.
References bsdfSampleOffsets, c_in, and lightSampleOffsets.
const Spectrum* UseRadianceProbes::c_inXYZ | ( | int | lmax, | |
int | vx, | |||
int | vy, | |||
int | vz | |||
) | const [inline, private] |
Spectrum UseRadianceProbes::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 97 of file useprobes.cpp.
References MemoryArena::Alloc(), ALLOCA, bbox, BSDF_ALL_REFLECTION, bsdfSampleOffsets, c_inXYZ(), CoefficientSpectrum< nSamples >::Clamp(), Ray::d, BSDF::dgShading, Faceforward(), Floor2Int(), Intersection::GetBSDF(), includeDirectInProbes, INV_PI, Intersection::Le(), Lerp(), lightSampleOffsets, lmax, DifferentialGeometry::nn, nProbes, BBox::Offset(), DifferentialGeometry::p, Intersection::rayEpsilon, BSDF::rho(), SHConvolveCosTheta(), SHEvaluate(), SHTerms(), Ray::time, UniformSampleAllLights(), Vector::x, Vector::y, and Vector::z.
void UseRadianceProbes::RequestSamples | ( | Sampler * | sampler, | |
Sample * | sample, | |||
const Scene * | scene | |||
) | [virtual] |
Reimplemented from Integrator.
Definition at line 82 of file useprobes.cpp.
References bsdfSampleOffsets, Scene::lights, lightSampleOffsets, Light::nSamples, and Sampler::RoundSize().
BBox UseRadianceProbes::bbox [private] |
Definition at line 57 of file useprobes.h.
Referenced by Li(), and UseRadianceProbes().
Definition at line 64 of file useprobes.h.
Referenced by Li(), RequestSamples(), UseRadianceProbes(), and ~UseRadianceProbes().
Spectrum* UseRadianceProbes::c_in [private] |
Definition at line 60 of file useprobes.h.
Referenced by c_inXYZ(), UseRadianceProbes(), and ~UseRadianceProbes().
int UseRadianceProbes::includeDirectInProbes [private] |
Definition at line 58 of file useprobes.h.
Referenced by Li(), and UseRadianceProbes().
int UseRadianceProbes::includeIndirectInProbes [private] |
Definition at line 58 of file useprobes.h.
Referenced by UseRadianceProbes().
Definition at line 63 of file useprobes.h.
Referenced by Li(), RequestSamples(), UseRadianceProbes(), and ~UseRadianceProbes().
int UseRadianceProbes::lmax [private] |
Definition at line 58 of file useprobes.h.
Referenced by Li(), and UseRadianceProbes().
int UseRadianceProbes::nProbes[3] [private] |
Definition at line 59 of file useprobes.h.
Referenced by c_inXYZ(), Li(), and UseRadianceProbes().