Cycles: restore SOBOL_SKIP hack, for some cases where it helps still.

This commit is contained in:
2017-10-29 15:26:09 +01:00
parent 89eb05a890
commit bbc7eb8ae5

View File

@@ -31,10 +31,17 @@ CCL_NAMESPACE_BEGIN
#ifdef __SOBOL__
/* Skip initial numbers that for some dimensions have clear patterns that
* don't cover the entire sample space. Ideally we would have a better
* progressive pattern that doesn't suffer from this problem, because even
* with this offset some dimensions are quite poor.
*/
#define SOBOL_SKIP 64
ccl_device uint sobol_dimension(KernelGlobals *kg, int index, int dimension)
{
uint result = 0;
uint i = index;
uint i = index + SOBOL_SKIP;
for(uint j = 0; i; i >>= 1, j++) {
if(i & 1) {
result ^= kernel_tex_fetch(__sobol_directions, 32*dimension + j);