[Bf-blender-cvs] [bbc7eb8ae53] master: Cycles: restore SOBOL_SKIP hack, for some cases where it helps still.

Brecht Van Lommel noreply at git.blender.org
Sun Oct 29 16:44:52 CET 2017


Commit: bbc7eb8ae5386aae5aaa58df76f701bc7f0dddbf
Author: Brecht Van Lommel
Date:   Sun Oct 29 15:26:09 2017 +0100
Branches: master
https://developer.blender.org/rBbbc7eb8ae5386aae5aaa58df76f701bc7f0dddbf

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

===================================================================

M	intern/cycles/kernel/kernel_random.h

===================================================================

diff --git a/intern/cycles/kernel/kernel_random.h b/intern/cycles/kernel/kernel_random.h
index e7a6134b8eb..7a96806edac 100644
--- a/intern/cycles/kernel/kernel_random.h
+++ b/intern/cycles/kernel/kernel_random.h
@@ -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);



More information about the Bf-blender-cvs mailing list