#include <single.h>
Public Member Functions | |
SingleScattering (float ss) | |
virtual | ~SingleScattering () |
virtual void | Transmittance (const TsPack *tspack, const Scene *, const Ray &ray, const Sample *sample, float *alpha, SWCSpectrum *const L) const |
virtual void | RequestSamples (Sample *sample, const Scene *scene) |
virtual int | Li (const TsPack *tspack, const Scene *, const RayDifferential &ray, const Sample *sample, SWCSpectrum *L, float *alpha) const |
Static Public Member Functions | |
static VolumeIntegrator * | CreateVolumeIntegrator (const ParamSet ¶ms) |
Private Attributes | |
float | stepSize |
int | tauSampleOffset |
int | scatterSampleOffset |
Definition at line 32 of file single.h.
lux::SingleScattering::SingleScattering | ( | float | ss | ) | [inline] |
Definition at line 35 of file single.h.
Referenced by CreateVolumeIntegrator().
virtual lux::SingleScattering::~SingleScattering | ( | ) | [inline, virtual] |
VolumeIntegrator * SingleScattering::CreateVolumeIntegrator | ( | const ParamSet & | params | ) | [static] |
Definition at line 115 of file single.cpp.
References lux::ParamSet::FindOneFloat(), SingleScattering(), and stepSize.
int SingleScattering::Li | ( | const TsPack * | tspack, | |
const Scene * | scene, | |||
const RayDifferential & | ray, | |||
const Sample * | sample, | |||
SWCSpectrum * | L, | |||
float * | alpha | |||
) | const [virtual] |
Implements lux::VolumeIntegrator.
Definition at line 50 of file single.cpp.
References lux::SWCSpectrum::Black(), Ceil2Int(), lux::Ray::d, lux::SWCSpectrum::Filter(), lux::RandomGenerator::floatValue(), Floor2Int(), lux::Light::group, lux::VolumeRegion::IntersectP(), lux::LatinHypercube(), lux::Scene::lights, lux::VolumeRegion::Lve(), cimg_library::cimg::min(), lux::Sample::oneD, lux::VolumeRegion::P(), p, lux::TsPack::rng, lux::Light::Sample_L(), scatterSampleOffset, lux::VolumeRegion::sigma_s(), stepSize, lux::VolumeRegion::Tau(), lux::VisibilityTester::TestOcclusion(), lux::VisibilityTester::Transmittance(), and lux::Scene::volumeRegion.
Reimplemented from lux::Integrator.
Definition at line 33 of file single.cpp.
References lux::Sample::Add1D(), scatterSampleOffset, and tauSampleOffset.
void SingleScattering::Transmittance | ( | const TsPack * | tspack, | |
const Scene * | scene, | |||
const Ray & | ray, | |||
const Sample * | sample, | |||
float * | alpha, | |||
SWCSpectrum *const | L | |||
) | const [virtual] |
Implements lux::VolumeIntegrator.
Definition at line 39 of file single.cpp.
References lux::Sample::oneD, stepSize, lux::VolumeRegion::Tau(), tauSampleOffset, and lux::Scene::volumeRegion.
Definition at line 49 of file single.h.
Referenced by Li(), and RequestSamples().
float lux::SingleScattering::stepSize [private] |
Definition at line 47 of file single.h.
Referenced by CreateVolumeIntegrator(), Li(), and Transmittance().
int lux::SingleScattering::tauSampleOffset [private] |
Definition at line 49 of file single.h.
Referenced by RequestSamples(), and Transmittance().