181 float* xis)
const = 0;
239 assert(scaSize <= parent->
numPts);
256 assert(scaSize <= parent->
numPts);
277 assert(scaSize <= parent->
numPts);
454 for (
unsigned i = 0; i <
numPts; ++i)
465 unsigned newsampleid)
const 471 unsigned newnumsamples)
const 481 for (
unsigned i = 0; i <
numPts; i++) {
488 for (
unsigned i = 0; i <
numPts; i++) {
496 for (
unsigned i = 0; i <
numPts; i++) {
510 for (
unsigned i = 0; i < minNumPts; i++) {
513 newRng->
numPts = minNumPts;
520 for (
unsigned i = 0; i < minNumPts; i++) {
524 newRng->
numPts = minNumPts;
531 for (
unsigned i = 0; i < minNumPts; i++) {
535 newRng->
numPts = minNumPts;
All-inlined interface for generating sample points for use by Monte Carlo integration and multiple-im...
Definition: RixRNG.h:59
void GenerateScrambledSamples2D(RtFloat2 *xis) const
Definition: RixRNG.h:381
SampleCtx NewDomainSplit(unsigned i, Scramble scramble, unsigned newnumsamples) const
Definition: RixRNG.h:470
SampleCtx & GetSampleCtx(unsigned i)
Definition: RixRNG.h:303
void NewDomains(Scramble scramble, RixRNG *newRng) const
Definition: RixRNG.h:507
void NewDomainsSplit(Scramble scramble, unsigned newnumsamples) const
Definition: RixRNG.h:494
RixRNG GetSlice(SampleCtx *sca, unsigned index) const
Definition: RixRNG.h:288
void GenerateSamples2D(RtFloat2 *xis) const
Definition: RixRNG.h:375
virtual void MultiSample2D(unsigned n, const SampleCtx *rCtx, RtFloat2 *xis) const =0
void DrawSamples3D(RtFloat3 *xis) const
Definition: RixRNG.h:446
SampleCtx identifies a sample domain (an index into an arbitrary scheme of sample points)...
Definition: RixRNG.h:76
void NewDomainsDistrib(Scramble scramble, unsigned newsampleid) const
Definition: RixRNG.h:486
float DrawSample1D(const SampleCtx &c, unsigned i) const
Definition: RixRNG.h:415
RtFloat2 DrawSample2D(const SampleCtx &c, unsigned i) const
Definition: RixRNG.h:420
float GenerateSample1D(unsigned i) const
Definition: RixRNG.h:311
virtual void MultiSample3D(unsigned n, const SampleCtx *rCtx, RtFloat3 *xis) const =0
SampleCtx NewDomainDistrib(unsigned i, Scramble scramble, unsigned newsampleid) const
Definition: RixRNG.h:464
virtual void MultiScrambledSample2D(unsigned n, const SampleCtx *rCtx, RtFloat2 *xis) const =0
virtual float Sample1D(const SampleCtx &rCtx, unsigned i) const =0
virtual RtFloat3 Sample3D(const SampleCtx &rCtx, unsigned i) const =0
unsigned patternidEmit
Definition: RixRNG.h:79
RtFloat2 GenerateSample2D(SampleCtx &c, unsigned i) const
Definition: RixRNG.h:347
RtFloat2 GenerateScrambledSample2D(SampleCtx &c, unsigned i) const
Definition: RixRNG.h:354
SampleCtx * sampleCtxArray
Definition: RixRNG.h:300
SampleCtx NewDomainSplit(Scramble scramble, unsigned newnumsamples) const
Return a new SampleCtx domain based on this one, but with a scrambled pattern id based on the 'scramb...
Definition: RixRNG.h:145
unsigned numPts
Definition: RixRNG.h:299
Scramble
Definition: RixRNG.h:67
RtFloat3 GenerateSample3D(unsigned i) const
Definition: RixRNG.h:332
virtual void MultiSample1D(unsigned n, const SampleCtx *rCtx, float *xis) const =0
Definition: RiTypesHelper.h:82
Generator()
Definition: RixRNG.h:166
pxrcore::Float3 RtFloat3
Definition: RiTypesHelper.h:69
void GenerateSamples1D(float *xis) const
Definition: RixRNG.h:369
RixRNG(RixRNG const *parent, SampleCtx *sca, unsigned scaSize)
Definition: RixRNG.h:224
RtFloat2 GenerateScrambledSample2D(unsigned i) const
Definition: RixRNG.h:325
SampleCtx NewDomain(unsigned i, Scramble scramble) const
Definition: RixRNG.h:459
virtual ~RixRNG()
Definition: RixRNG.h:297
void DrawSamples1D(float *xis) const
Definition: RixRNG.h:436
float DrawSample1D(unsigned i) const
Definition: RixRNG.h:394
SampleCtx NewDomain(Scramble scramble) const
Return a new SampleCtx domain based on this one, but with a scrambled pattern id based on the 'scramb...
Definition: RixRNG.h:89
RixRNG(Generator const *imp, unsigned scaSize=0)
Definition: RixRNG.h:203
virtual RtFloat2 Sample2D(const SampleCtx &rCtx, unsigned i) const =0
RtFloat3 DrawSample3D(const SampleCtx &c, unsigned i) const
Definition: RixRNG.h:430
RtFloat2 GenerateSample2D(unsigned i) const
Definition: RixRNG.h:318
RtFloat2 DrawSample2D(unsigned i) const
Definition: RixRNG.h:399
SampleCtx NewDomainDistrib(Scramble scramble, unsigned newsampleid) const
Return a new SampleCtx domain based on this one, but with a scrambled pattern id based on the 'scramb...
Definition: RixRNG.h:118
RixRNG(RixRNG const *parent, SampleCtx *sca, unsigned scaSize, Scramble scramble, unsigned sampleid, bool doDistrib)
Definition: RixRNG.h:266
virtual ~Generator()
Definition: RixRNG.h:167
void GenerateSamples3D(RtFloat3 *xis) const
Definition: RixRNG.h:387
RtFloat2 DrawScrambledSample2D(unsigned i) const
Definition: RixRNG.h:404
RixRNG(RixRNG const *parent, SampleCtx *sca, unsigned scaSize, Scramble scramble, unsigned nsamps)
Definition: RixRNG.h:251
void IncrementSampleIds() const
Definition: RixRNG.h:452
void NewDomains(Scramble scramble) const
Definition: RixRNG.h:479
RixRNG(Generator const *imp, unsigned scaSize, SampleCtx *sca)
Definition: RixRNG.h:210
unsigned sampleid
Definition: RixRNG.h:80
Generator const * impl
Definition: RixRNG.h:301
RixRNG(RixRNG const *parent, unsigned scaSize, SampleCtx *sca)
Definition: RixRNG.h:217
RtFloat3 GenerateSample3D(SampleCtx &c, unsigned i) const
Definition: RixRNG.h:361
RtFloat2 DrawScrambledSample2D(const SampleCtx &c, unsigned i) const
Definition: RixRNG.h:425
void DrawSamples2D(RtFloat2 *xis) const
Definition: RixRNG.h:441
RtFloat3 DrawSample3D(unsigned i) const
Definition: RixRNG.h:409
float GenerateSample1D(SampleCtx &c, unsigned i) const
Definition: RixRNG.h:340
virtual RtFloat2 ScrambledSample2D(const SampleCtx &rCtx, unsigned i) const =0
RixRNG(RixRNG const *parent, SampleCtx *sca, unsigned scaSize, Scramble scramble)
Definition: RixRNG.h:234
PRMAN_INLINE unsigned shufflePattern(const unsigned pattern, const unsigned scramble1=0xb2182ef5, const unsigned scramble2=0x1e1897a7)
Definition: RixRNGInline.h:66
void NewDomainsSplit(Scramble scramble, unsigned newnumsamples, RixRNG *newRng) const
Definition: RixRNG.h:527
unsigned patternid
Definition: RixRNG.h:78