[Bf-blender-cvs] [ead83a4] master: Fix T40692, Checker Texture derivation on very large scales (1k).

Thomas Dinges noreply at git.blender.org
Fri Jun 20 09:03:40 CEST 2014


Commit: ead83a48f15c7677290fdedfde974ff3233e0441
Author: Thomas Dinges
Date:   Fri Jun 20 09:03:00 2014 +0200
https://developer.blender.org/rBead83a48f15c7677290fdedfde974ff3233e0441

Fix T40692, Checker Texture derivation on very large scales (1k).

It might still have a derivation on larger scales (10k or more), but we need some offset to avoid precision issues on unit coordinates.

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

M	intern/cycles/kernel/shaders/node_checker_texture.osl
M	intern/cycles/kernel/svm/svm_checker.h

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

diff --git a/intern/cycles/kernel/shaders/node_checker_texture.osl b/intern/cycles/kernel/shaders/node_checker_texture.osl
index 6723076..a6d21fd 100644
--- a/intern/cycles/kernel/shaders/node_checker_texture.osl
+++ b/intern/cycles/kernel/shaders/node_checker_texture.osl
@@ -21,9 +21,9 @@
 
 float checker(point p)
 {
-	p[0] = (p[0] + 0.00001) * 0.9999;
-	p[1] = (p[1] + 0.00001) * 0.9999;
-	p[2] = (p[2] + 0.00001) * 0.9999;
+	p[0] = (p[0] + 0.000001) * 0.999999;
+	p[1] = (p[1] + 0.000001) * 0.999999;
+	p[2] = (p[2] + 0.000001) * 0.999999;
 	
 	int xi = (int)fabs(floor(p[0]));
 	int yi = (int)fabs(floor(p[1]));
diff --git a/intern/cycles/kernel/svm/svm_checker.h b/intern/cycles/kernel/svm/svm_checker.h
index 8d1a1a4..e0408ad3 100644
--- a/intern/cycles/kernel/svm/svm_checker.h
+++ b/intern/cycles/kernel/svm/svm_checker.h
@@ -21,9 +21,9 @@ CCL_NAMESPACE_BEGIN
 ccl_device_noinline float svm_checker(float3 p)
 {
 	/* avoid precision issues on unit coordinates */
-	p.x = (p.x + 0.00001f)*0.9999f;
-	p.y = (p.y + 0.00001f)*0.9999f;
-	p.z = (p.z + 0.00001f)*0.9999f;
+	p.x = (p.x + 0.000001f)*0.999999f;
+	p.y = (p.y + 0.000001f)*0.999999f;
+	p.z = (p.z + 0.000001f)*0.999999f;
 
 	int xi = float_to_int(fabsf(floorf(p.x)));
 	int yi = float_to_int(fabsf(floorf(p.y)));




More information about the Bf-blender-cvs mailing list