public UVPoint NextUV() { var i = ++_index; return(new UVPoint(QuasiRandom.RadicalInverseScrambled(i, 0, _dim0Perms), QuasiRandom.RadicalInverseScrambled(i, 1, _dim1Perms))); }
public QuasiRandomSampler(ulong index) { _index = index; _rInd = index; _dim0Perms = QuasiRandom.PermutationsForDimension(RadicalInversePermutations, 0).ToArray(); _dim1Perms = QuasiRandom.PermutationsForDimension(RadicalInversePermutations, 1).ToArray(); _dim2Perms = QuasiRandom.PermutationsForDimension(RadicalInversePermutations, 2).ToArray(); }
public float Random() => QuasiRandom.RadicalInverseScrambled(_rInd++, 2, _dim2Perms);