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

Function SampleCMJ2D

SHTest/SampleFramework12/v1.04/Graphics/Sampling.cpp:423–432  ·  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

421
422 // Returns a 2D sample from a particular pattern using correlated multi-jittered sampling [Kensler 2013]
423Float2 SampleCMJ2D(uint32 sampleIdx, uint32 numSamplesX, uint32 numSamplesY, uint32 pattern)
424{
425 uint32 N = numSamplesX * numSamplesY;
426 sampleIdx = CMJPermute(sampleIdx, N, pattern * 0x51633e2d);
427 uint32 sx = CMJPermute(sampleIdx % numSamplesX, numSamplesX, pattern * 0x68bc21eb);
428 uint32 sy = CMJPermute(sampleIdx / numSamplesX, numSamplesY, pattern * 0x02e5be93);
429 float jx = CMJRandFloat(sampleIdx, pattern * 0x967a889b);
430 float jy = CMJRandFloat(sampleIdx, pattern * 0x368cc8b7);
431 return Float2((sx + (sy + jx) / numSamplesY) / numSamplesX, (sampleIdx + jy) / N);
432}
433
434void GenerateRandomSamples2D(Float2* samples, uint64 numSamples, Random& randomGenerator)
435{

Callers 1

GenerateCMJSamples2DFunction · 0.85

Calls 3

CMJPermuteFunction · 0.85
CMJRandFloatFunction · 0.85
Float2Class · 0.85

Tested by

no test coverage detected