MCPcopy Create free account
hub / github.com/TheRealMJP/DeferredTexturing / SampleCMJ2D

Function SampleCMJ2D

SampleFramework12/v1.00/Graphics/Sampling.cpp:372–381  ·  view source on GitHub ↗

Returns a 2D sample from a particular pattern using correlated multi-jittered sampling [Kensler 2013]

Source from the content-addressed store, hash-verified

370
371 // Returns a 2D sample from a particular pattern using correlated multi-jittered sampling [Kensler 2013]
372Float2 SampleCMJ2D(int32 sampleIdx, int32 numSamplesX, int32 numSamplesY, int32 pattern)
373{
374 int32 N = numSamplesX * numSamplesY;
375 sampleIdx = CMJPermute(sampleIdx, N, pattern * 0x51633e2d);
376 int32 sx = CMJPermute(sampleIdx % numSamplesX, numSamplesX, pattern * 0x68bc21eb);
377 int32 sy = CMJPermute(sampleIdx / numSamplesX, numSamplesY, pattern * 0x02e5be93);
378 float jx = CMJRandFloat(sampleIdx, pattern * 0x967a889b);
379 float jy = CMJRandFloat(sampleIdx, pattern * 0x368cc8b7);
380 return Float2((sx + (sy + jx) / numSamplesY) / numSamplesX, (sampleIdx + jy) / N);
381}
382
383void GenerateRandomSamples2D(Float2* samples, uint64 numSamples, Random& randomGenerator)
384{

Callers 1

GenerateCMJSamples2DFunction · 0.85

Calls 3

CMJPermuteFunction · 0.85
CMJRandFloatFunction · 0.85
Float2Class · 0.85

Tested by

no test coverage detected