In the paper Efficient Multidimensional Sampling the authors describe a technique they call Random Digit Scrambling (RDS). Has someone more implementation details on this algorithm? The paper gives source code for three different radical inverse functions that can be used to implement RDS but I don't understand how they should be applied.
I especially don't understand how they jump from Hammersley samples to RDS.
func Hammersley(i, numSamples uint32) Vector2 {
return MakeVector2(float32(i) / float32(numSamples), radicalInverse_vdC(i))
}
Can the above snippet easily be changed to something that generates RDS?