#include <metrosampler.h>
Public Member Functions | |
MetropolisSampler (int xStart, int xEnd, int yStart, int yEnd, int maxRej, float largeProb, float microProb, float rng, bool useV) | |
virtual | ~MetropolisSampler () |
virtual MetropolisSampler * | clone () const |
virtual u_int | GetTotalSamplePos () |
virtual int | RoundSize (int size) const |
virtual bool | GetNextSample (Sample *sample, u_int *use_pos) |
virtual float * | GetLazyValues (Sample *sample, u_int num, u_int pos) |
virtual void | AddSample (const Sample &sample) |
virtual void | GetBufferType (BufferType *t) |
virtual bool | IsMutating () |
Static Public Member Functions | |
static Sampler * | CreateSampler (const ParamSet ¶ms, const Film *film) |
Public Attributes | |
int | normalSamples |
int | totalSamples |
int | totalTimes |
int | maxRejects |
int | consecRejects |
float | pLarge |
float | pMicro |
float | range |
bool | useVariance |
float * | sampleImage |
int * | timeImage |
int * | offset |
float * | rngSamples |
float * | rngRotation |
u_int | rngBase |
u_int | rngOffset |
bool | large |
int | stamp |
int | numMicro |
int | posMicro |
float | weight |
float | LY |
float | alpha |
vector< Contribution > | oldContributions |
double | totalLY |
double | sampleCount |
Definition at line 35 of file metrosampler.h.
MetropolisSampler::MetropolisSampler | ( | int | xStart, | |
int | xEnd, | |||
int | yStart, | |||
int | yEnd, | |||
int | maxRej, | |||
float | largeProb, | |||
float | microProb, | |||
float | rng, | |||
bool | useV | |||
) |
Definition at line 71 of file metrosampler.cpp.
References rngA, rngN, and rngSamples.
Referenced by clone(), and CreateSampler().
MetropolisSampler::~MetropolisSampler | ( | ) | [virtual] |
Definition at line 92 of file metrosampler.cpp.
References lux::FreeAligned(), offset, rngRotation, rngSamples, sampleImage, and timeImage.
void MetropolisSampler::AddSample | ( | const Sample & | sample | ) | [virtual] |
Reimplemented from lux::Sampler.
Definition at line 266 of file metrosampler.cpp.
References lux::ContributionBuffer::Add(), lux::ContributionBuffer::AddSampleCount(), consecRejects, lux::Sampler::contribBuffer, lux::Scene::contribPool, lux::Sample::contributions, lux::Sampler::film, lux::RandomGenerator::floatValue(), lux::Sample::imageX, lux::Sample::imageY, large, lux::Sample::lensU, lux::Sample::lensV, LY, maxRejects, cimg_library::cimg::min(), lux::ContributionPool::Next(), oldContributions, lux::Sample::oneD, pLarge, lux::TsPack::rng, SAMPLE_FLOATS, sampleCount, sampleImage, lux::Film::scene, lux::Sample::singleWavelength, lux::Sample::stamp, stamp, lux::Sample::time, timeImage, lux::Sample::timexD, totalLY, totalSamples, totalTimes, lux::Sampler::tspack, useVariance, lux::Sample::wavelengths, and weight.
MetropolisSampler * MetropolisSampler::clone | ( | ) | const [virtual] |
Implements lux::Sampler.
Definition at line 101 of file metrosampler.cpp.
References MetropolisSampler(), sampleImage, and totalSamples.
Definition at line 353 of file metrosampler.cpp.
References lux::ParamSet::FindOneBool(), lux::ParamSet::FindOneFloat(), lux::ParamSet::FindOneInt(), lux::Film::GetSampleExtent(), MetropolisSampler(), range, and useVariance.
virtual void lux::MetropolisSampler::GetBufferType | ( | BufferType * | t | ) | [inline, virtual] |
Reimplemented from lux::Sampler.
Definition at line 48 of file metrosampler.h.
References lux::BUF_TYPE_PER_SCREEN.
Reimplemented from lux::Sampler.
Definition at line 234 of file metrosampler.cpp.
References lux::Sample::dxD, mutate(), normalSamples, numMicro, offset, posMicro, rngGet, rngGet2, rngOffset, sampleImage, lux::Sample::stamp, lux::Sample::timexD, and lux::Sample::xD.
Implements lux::Sampler.
Definition at line 151 of file metrosampler.cpp.
References lux::Film::enoughSamplePerPixel, lux::Sampler::film, Float2Int(), lux::RandomGenerator::floatValue(), lux::Sample::imageX, lux::Sample::imageY, initMetropolis(), large, lux::Sample::lensU, lux::Sample::lensV, mutate(), mutateScaled(), normalSamples, numMicro, lux::Sample::nxD, lux::Sample::oneD, pLarge, pMicro, posMicro, range, lux::TsPack::rng, rngBase, rngGet, rngN, rngOffset, rngRotation, SAMPLE_FLOATS, sampleImage, lux::Sample::sampler, lux::Sample::singleWavelength, lux::Sample::stamp, lux::Sample::time, lux::Sample::timexD, totalSamples, totalTimes, lux::Sampler::tspack, lux::Sample::wavelengths, lux::Sampler::xPixelEnd, lux::Sampler::xPixelStart, lux::Sampler::yPixelEnd, and lux::Sampler::yPixelStart.
virtual u_int lux::MetropolisSampler::GetTotalSamplePos | ( | ) | [inline, virtual] |
Implements lux::Sampler.
Definition at line 42 of file metrosampler.h.
virtual bool lux::MetropolisSampler::IsMutating | ( | ) | [inline, virtual] |
Reimplemented from lux::Sampler.
Definition at line 49 of file metrosampler.h.
Implements lux::Sampler.
Definition at line 43 of file metrosampler.h.
Definition at line 60 of file metrosampler.h.
Definition at line 51 of file metrosampler.h.
Referenced by AddSample().
Definition at line 58 of file metrosampler.h.
Referenced by AddSample(), and GetNextSample().
Definition at line 60 of file metrosampler.h.
Referenced by AddSample().
Definition at line 51 of file metrosampler.h.
Referenced by AddSample().
Definition at line 51 of file metrosampler.h.
Referenced by GetLazyValues(), GetNextSample(), and initMetropolis().
Definition at line 59 of file metrosampler.h.
Referenced by GetLazyValues(), and GetNextSample().
Definition at line 55 of file metrosampler.h.
Referenced by GetLazyValues(), initMetropolis(), and ~MetropolisSampler().
Definition at line 61 of file metrosampler.h.
Referenced by AddSample().
Definition at line 52 of file metrosampler.h.
Referenced by AddSample(), and GetNextSample().
Definition at line 52 of file metrosampler.h.
Referenced by GetNextSample().
Definition at line 59 of file metrosampler.h.
Referenced by GetLazyValues(), and GetNextSample().
Definition at line 52 of file metrosampler.h.
Referenced by CreateSampler(), and GetNextSample().
Definition at line 57 of file metrosampler.h.
Referenced by GetNextSample(), and initMetropolis().
Definition at line 57 of file metrosampler.h.
Referenced by GetLazyValues(), GetNextSample(), and initMetropolis().
Definition at line 56 of file metrosampler.h.
Referenced by GetNextSample(), initMetropolis(), and ~MetropolisSampler().
Definition at line 56 of file metrosampler.h.
Referenced by MetropolisSampler(), and ~MetropolisSampler().
Definition at line 62 of file metrosampler.h.
Referenced by AddSample().
Definition at line 54 of file metrosampler.h.
Referenced by AddSample(), clone(), GetLazyValues(), GetNextSample(), initMetropolis(), and ~MetropolisSampler().
Definition at line 59 of file metrosampler.h.
Referenced by AddSample().
Definition at line 55 of file metrosampler.h.
Referenced by AddSample(), initMetropolis(), and ~MetropolisSampler().
Definition at line 62 of file metrosampler.h.
Referenced by AddSample().
Definition at line 51 of file metrosampler.h.
Referenced by AddSample(), clone(), GetNextSample(), and initMetropolis().
Definition at line 51 of file metrosampler.h.
Referenced by AddSample(), GetNextSample(), and initMetropolis().
Definition at line 53 of file metrosampler.h.
Referenced by AddSample(), and CreateSampler().
Definition at line 60 of file metrosampler.h.
Referenced by AddSample().