143 virtual float Sample1D(
const SampleCtx& rCtx,
unsigned i)
const = 0;
148 virtual void MultiSample1D(
151 float* xis)
const = 0;
152 virtual void MultiSample2D(
156 virtual void MultiSample3D(
205 assert(scaSize <= parent->
numPts);
222 assert(scaSize <= parent->
numPts);
243 assert(scaSize <= parent->
numPts);
279 float f = impl->
Sample1D(sampleCtxArray[i], i);
342 return impl->
Sample1D(sampleCtxArray[i], i);
347 return impl->
Sample2D(sampleCtxArray[i], i);
352 return impl->
Sample3D(sampleCtxArray[i], i);
390 for (
unsigned i = 0; i <
numPts; ++i)
391 sampleCtxArray[i].sampleid++;
397 return sampleCtxArray[i].
NewDomain(scramble);
401 unsigned newsampleid)
const 407 unsigned newnumsamples)
const 417 for (
unsigned i = 0; i <
numPts; i++) {
418 sampleCtxArray[i] = sampleCtxArray[i].
NewDomain(scramble);
424 for (
unsigned i = 0; i <
numPts; i++) {
432 for (
unsigned i = 0; i <
numPts; i++) {
444 for (
unsigned i = 0; i <
numPts; i++) {
453 for (
unsigned i = 0; i <
numPts; i++) {
463 for (
unsigned i = 0; i <
numPts; i++) {
void NewDomains(Scramble scramble) const
virtual float Sample1D(const SampleCtx &rCtx, unsigned i) const =0
void DrawSamples3D(RtFloat3 *xis) const
virtual void MultiSample1D(unsigned n, const SampleCtx *rCtx, float *xis) const =0
void GenerateSamples1D(float *xis) const
RixRNG(RixRNG const *parent, SampleCtx *sca, unsigned scaSize, Scramble scramble, unsigned sampleid, bool doDistrib)
void GenerateSamples2D(RtFloat2 *xis) const
RtFloat3 GenerateSample3D(SampleCtx &c, unsigned i) const
RixRNG(Generator const *imp, unsigned scaSize, SampleCtx *sca)
void DrawSamples1D(float *xis) const
SampleCtx * sampleCtxArray
RtFloat2 GenerateSample2D(SampleCtx &c, unsigned i) const
RixRNG(Generator const *imp, unsigned scaSize=0)
RtFloat3 DrawSample3D(const SampleCtx &c, unsigned i) const
RtFloat2 GenerateSample2D(unsigned i) const
virtual void MultiSample3D(unsigned n, const SampleCtx *rCtx, RtFloat3 *xis) const =0
void NewDomainsDistrib(Scramble scramble, unsigned newsampleid, RixRNG *newRng) const
virtual RtFloat2 Sample2D(const SampleCtx &rCtx, unsigned i) const =0
RtFloat3 GenerateSample3D(unsigned i) const
float GenerateSample1D(SampleCtx &c, unsigned i) const
virtual void MultiSample2D(unsigned n, const SampleCtx *rCtx, RtFloat2 *xis) const =0
void NewDomainsSplit(Scramble scramble, unsigned newnumsamples) const
RixRNG(RixRNG const *parent, unsigned scaSize, SampleCtx *sca)
SampleCtx NewDomainDistrib(unsigned i, Scramble scramble, unsigned newsampleid) const
float DrawSample1D(const SampleCtx &c, unsigned i) const
virtual RtFloat3 Sample3D(const SampleCtx &rCtx, unsigned i) const =0
SampleCtx NewDomain(Scramble scramble) const
float DrawSample1D(unsigned i) const
RixRNG(RixRNG const *parent, SampleCtx *sca, unsigned scaSize, Scramble scramble, unsigned nsamps)
RixRNG(RixRNG const *parent, SampleCtx *sca, unsigned scaSize, Scramble scramble)
RixRNG(RixRNG const *parent, SampleCtx *sca, unsigned scaSize)
SampleCtx NewDomain(unsigned i, Scramble scramble) const
RtFloat2 DrawSample2D(unsigned i) const
SampleCtx NewDomainDistrib(Scramble scramble, unsigned newsampleid) const
void NewDomains(Scramble scramble, RixRNG *newRng) const
float GenerateSample1D(unsigned i) const
void NewDomainsDistrib(Scramble scramble, unsigned newsampleid) const
void GenerateSamples3D(RtFloat3 *xis) const
RixRNG GetSlice(SampleCtx *sca, unsigned index) const
RtFloat3 DrawSample3D(unsigned i) const
SampleCtx & GetSampleCtx(unsigned i)
SampleCtx NewDomainSplit(unsigned i, Scramble scramble, unsigned newnumsamples) const
void DrawSamples2D(RtFloat2 *xis) const
void NewDomainsSplit(Scramble scramble, unsigned newnumsamples, RixRNG *newRng) const
PRMAN_INLINE unsigned shufflePattern(const unsigned pattern, const unsigned scramble1=0xb2182ef5, const unsigned scramble2=0x1e1897a7)
void IncrementSampleIds() const
RtFloat2 DrawSample2D(const SampleCtx &c, unsigned i) const
SampleCtx NewDomainSplit(Scramble scramble, unsigned newnumsamples) const