RenderManAPI
24.0

SampleCtx identifies a sample domain (an index into an arbitrary scheme of sample points). More...
#include <RixRNG.h>
Public Member Functions  
SampleCtx  NewDomain (Scramble scramble) const 
Return a new SampleCtx domain based on this one, but with a scrambled pattern id based on the 'scramble' parameter (a bit pattern characterizing a sampling domain – e.g. More...  
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 'scramble' parameter (a bit pattern characterizing a sampling domain – e.g. More...  
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 'scramble' parameter (a bit pattern characterizing a sampling domain – e.g. More...  
Public Attributes  
unsigned  patternid 
unsigned  patternidEmit 
unsigned  sampleid 
SampleCtx identifies a sample domain (an index into an arbitrary scheme of sample points).
It represents a point of consumption for sample points – e.g. picking a direction and picking a position might be two distinct domains which both want independent streams of decorrelated sample points. A SampleCtx domain may be used to pick a sample point or to derive a new SampleCtx domain.
Return a new SampleCtx domain based on this one, but with a scrambled pattern id based on the 'scramble' parameter (a bit pattern characterizing a sampling domain – e.g.
a number based on brdf 'lobe') and inherited pattern id. The new sample id is inherited from this sampleCtx. To utilize tiled blue noise sample tables, the sequence id (stored in the top 16 bits) has to be preserved when a new domain is created.
References patternid, and RixRNGUtils::shufflePattern().
Referenced by RixRNG::NewDomain(), RixRNG::NewDomains(), and RixRNG::ProgressiveSampler::Sample1D().

inline 
Return a new SampleCtx domain based on this one, but with a scrambled pattern id based on the 'scramble' parameter (a bit pattern characterizing a sampling domain – e.g.
a number based on brdf 'lobe'), the inherited pattern id, and the sample id. Including the sample id in the creation of a new pattern id ensures that there is a new, independent sample distribution for every iteration. This form should be preferred where the new domain's expected number of samples differs from that of the parent and repeated visits may nor may not have the same sample count or may consume differing numbers of samples: distribution sampling. To utilize tiled blue noise sample tables, the sequence id (stored in the top 16 bits) has to be preserved when a new domain is created.
References patternid, sampleid, and RixRNGUtils::shufflePattern().
Referenced by RixRNG::NewDomainDistrib(), and RixRNG::NewDomainsDistrib().

inline 
Return a new SampleCtx domain based on this one, but with a scrambled pattern id based on the 'scramble' parameter (a bit pattern characterizing a sampling domain – e.g.
a number based on brdf 'lobe') and inherited pattern id, and a new number of samples. This form should be preferred where every visit will consume the same number of samples, and it is expected that all sibling visits will also always result in the drawing of a new domain – thus exploring the full space. Uses trajectory splitting. If newnumsamples is 1 this is the same as just NewDomain(scramble). To utilize tiled blue noise sample tables, the sequence id (stored in the top 16 bits) has to be preserved when a new domain is created.
References patternid, sampleid, and RixRNGUtils::shufflePattern().
Referenced by RixRNG::NewDomainSplit(), RixRNG::NewDomainsSplit(), and RixRNG::ProgressiveSampler::Sample3D().
unsigned RixRNG::SampleCtx::patternid 
Referenced by NewDomain(), NewDomainDistrib(), and NewDomainSplit().
unsigned RixRNG::SampleCtx::patternidEmit 
unsigned RixRNG::SampleCtx::sampleid 