![]() |
RenderMan
26.0
|
All-inlined interface for generating sample points for use by Monte Carlo integration and multiple-importance sampling. More...
#include <RixRNG.h>
Classes | |
class | Generator |
class | ProgressiveSampler |
struct | SampleCtx |
SampleCtx identifies a sample domain (an index into an arbitrary scheme of sample points). More... | |
Public Types | |
enum | Scramble : unsigned |
Public Member Functions | |
RixRNG (Generator const *imp, unsigned scaSize=0) | |
RixRNG (Generator const *imp, unsigned scaSize, SampleCtx *sca) | |
RixRNG (RixRNG const *parent, unsigned scaSize, SampleCtx *sca) | |
RixRNG (RixRNG const *parent, SampleCtx *sca, unsigned scaSize) | |
RixRNG (RixRNG const *parent, SampleCtx *sca, unsigned scaSize, Scramble scramble) | |
RixRNG (RixRNG const *parent, SampleCtx *sca, unsigned scaSize, Scramble scramble, unsigned nsamps) | |
RixRNG (RixRNG const *parent, SampleCtx *sca, unsigned scaSize, Scramble scramble, unsigned sampleid, bool doDistrib) | |
RixRNG | GetSlice (SampleCtx *sca, unsigned index) const |
virtual | ~RixRNG () |
SampleCtx & | GetSampleCtx (unsigned i) |
float | GenerateSample1D (unsigned i) const |
RtFloat2 | GenerateSample2D (unsigned i) const |
RtFloat2 | GenerateScrambledSample2D (unsigned i) const |
RtFloat3 | GenerateSample3D (unsigned i) const |
float | GenerateSample1D (SampleCtx &c, unsigned i) const |
RtFloat2 | GenerateSample2D (SampleCtx &c, unsigned i) const |
RtFloat2 | GenerateScrambledSample2D (SampleCtx &c, unsigned i) const |
RtFloat3 | GenerateSample3D (SampleCtx &c, unsigned i) const |
void | GenerateSamples1D (float *xis) const |
void | GenerateSamples2D (RtFloat2 *xis) const |
void | GenerateScrambledSamples2D (RtFloat2 *xis) const |
void | GenerateSamples3D (RtFloat3 *xis) const |
float | DrawSample1D (unsigned i) const |
RtFloat2 | DrawSample2D (unsigned i) const |
RtFloat2 | DrawScrambledSample2D (unsigned i) const |
RtFloat3 | DrawSample3D (unsigned i) const |
float | DrawSample1D (const SampleCtx &c, unsigned i) const |
RtFloat2 | DrawSample2D (const SampleCtx &c, unsigned i) const |
RtFloat2 | DrawScrambledSample2D (const SampleCtx &c, unsigned i) const |
RtFloat3 | DrawSample3D (const SampleCtx &c, unsigned i) const |
void | DrawSamples1D (float *xis) const |
void | DrawSamples2D (RtFloat2 *xis) const |
void | DrawSamples3D (RtFloat3 *xis) const |
void | IncrementSampleIds () const |
SampleCtx | NewDomain (unsigned i, Scramble scramble) const |
SampleCtx | NewDomainDistrib (unsigned i, Scramble scramble, unsigned newsampleid) const |
SampleCtx | NewDomainSplit (unsigned i, Scramble scramble, unsigned newnumsamples) const |
void | NewDomains (Scramble scramble) const |
void | NewDomainsDistrib (Scramble scramble, unsigned newsampleid) const |
void | NewDomainsSplit (Scramble scramble, unsigned newnumsamples) const |
void | NewDomains (Scramble scramble, RixRNG *newRng) const |
void | NewDomainsDistrib (Scramble scramble, unsigned newsampleid, RixRNG *newRng) const |
void | NewDomainsSplit (Scramble scramble, unsigned newnumsamples, RixRNG *newRng) const |
Public Attributes | |
unsigned | numPts |
SampleCtx * | sampleCtxArray |
Generator const * | impl |
All-inlined interface for generating sample points for use by Monte Carlo integration and multiple-importance sampling.
Samples are distributed within an N-dimension domain characterized by the combination of patternid and sampleid, stratified in a progressive manner. Resulting samples reside within the [0,1)^N region.
The RixRNG class is a wrapper around an array of per-point sample contexts (RixRNG::SampleCtx). There is typically one SampleCtx for each point in a ray shading batch. The RixRNG wrapper class makes it convenient to generate sample points (or new sample domains) for an entire ray shading batch with just a single function call.
|
strong |
|
inline |
|
inline |
References NewDomains(), and numPts.
|
inline |
References NewDomainsSplit(), and numPts.
|
inline |
References NewDomains(), NewDomainsDistrib(), and numPts.
|
inlinevirtual |
|
inline |
References impl, RixRNG::Generator::Sample1D(), and sampleCtxArray.
|
inline |
References impl, and RixRNG::Generator::Sample1D().
|
inline |
References impl, RixRNG::Generator::Sample2D(), and sampleCtxArray.
|
inline |
References impl, and RixRNG::Generator::Sample2D().
|
inline |
References impl, RixRNG::Generator::Sample3D(), and sampleCtxArray.
|
inline |
References impl, and RixRNG::Generator::Sample3D().
|
inline |
References impl, RixRNG::Generator::MultiSample1D(), numPts, and sampleCtxArray.
|
inline |
References impl, RixRNG::Generator::MultiSample2D(), numPts, and sampleCtxArray.
|
inline |
References impl, RixRNG::Generator::MultiSample3D(), numPts, and sampleCtxArray.
|
inline |
References impl, sampleCtxArray, and RixRNG::Generator::ScrambledSample2D().
|
inline |
References impl, and RixRNG::Generator::ScrambledSample2D().
|
inline |
References impl, RixRNG::Generator::Sample1D(), sampleCtxArray, and RixRNG::SampleCtx::sampleid.
|
inline |
References impl, RixRNG::Generator::Sample1D(), and RixRNG::SampleCtx::sampleid.
|
inline |
References impl, RixRNG::Generator::Sample2D(), sampleCtxArray, and RixRNG::SampleCtx::sampleid.
|
inline |
References impl, RixRNG::Generator::Sample2D(), and RixRNG::SampleCtx::sampleid.
|
inline |
References impl, RixRNG::Generator::Sample3D(), sampleCtxArray, and RixRNG::SampleCtx::sampleid.
|
inline |
References impl, RixRNG::Generator::Sample3D(), and RixRNG::SampleCtx::sampleid.
|
inline |
References impl, IncrementSampleIds(), RixRNG::Generator::MultiSample1D(), numPts, and sampleCtxArray.
|
inline |
References impl, IncrementSampleIds(), RixRNG::Generator::MultiSample2D(), numPts, and sampleCtxArray.
|
inline |
References impl, IncrementSampleIds(), RixRNG::Generator::MultiSample3D(), numPts, and sampleCtxArray.
|
inline |
References impl, sampleCtxArray, RixRNG::SampleCtx::sampleid, and RixRNG::Generator::ScrambledSample2D().
|
inline |
References impl, RixRNG::SampleCtx::sampleid, and RixRNG::Generator::ScrambledSample2D().
|
inline |
References impl, IncrementSampleIds(), RixRNG::Generator::MultiScrambledSample2D(), numPts, and sampleCtxArray.
|
inline |
References sampleCtxArray.
References impl, numPts, and sampleCtxArray.
|
inline |
References numPts, and sampleCtxArray.
Referenced by GenerateSamples1D(), GenerateSamples2D(), GenerateSamples3D(), and GenerateScrambledSamples2D().
References RixRNG::SampleCtx::NewDomain(), and sampleCtxArray.
|
inline |
References RixRNG::SampleCtx::NewDomainDistrib(), and sampleCtxArray.
|
inline |
References RixRNG::SampleCtx::NewDomain(), numPts, and sampleCtxArray.
Referenced by RixRNG().
References RixRNG::SampleCtx::NewDomain(), numPts, and sampleCtxArray.
|
inline |
References RixRNG::SampleCtx::NewDomainDistrib(), numPts, and sampleCtxArray.
Referenced by RixRNG().
|
inline |
|
inline |
References RixRNG::SampleCtx::NewDomainSplit(), and sampleCtxArray.
|
inline |
References RixRNG::SampleCtx::NewDomainSplit(), numPts, and sampleCtxArray.
Referenced by RixRNG().
|
inline |
References numPts.
Generator const* RixRNG::impl |
Referenced by DrawSample1D(), DrawSample2D(), DrawSample3D(), DrawSamples1D(), DrawSamples2D(), DrawSamples3D(), DrawScrambledSample2D(), GenerateSample1D(), GenerateSample2D(), GenerateSample3D(), GenerateSamples1D(), GenerateSamples2D(), GenerateSamples3D(), GenerateScrambledSample2D(), GenerateScrambledSamples2D(), and GetSlice().
unsigned RixRNG::numPts |
SampleCtx* RixRNG::sampleCtxArray |
Referenced by DrawSample1D(), DrawSample2D(), DrawSample3D(), DrawSamples1D(), DrawSamples2D(), DrawSamples3D(), DrawScrambledSample2D(), GenerateSample1D(), GenerateSample2D(), GenerateSample3D(), GenerateSamples1D(), GenerateSamples2D(), GenerateSamples3D(), GenerateScrambledSample2D(), GenerateScrambledSamples2D(), GetSampleCtx(), GetSlice(), IncrementSampleIds(), NewDomain(), NewDomainDistrib(), NewDomains(), NewDomainsDistrib(), NewDomainSplit(), NewDomainsSplit(), RixRNG::ProgressiveSampler::Sample1D(), and RixRNG::ProgressiveSampler::ScrambledSample2D().