Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2017-07-13 13:47:41 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2017-07-16 02:27:55 +0300
commit5c30bc285cd017daaccf4ccc7eb1d1d62cad94c9 (patch)
tree9d1898659c31d973a28d51d3deab22560c05e34d /source/blender/blenlib/intern/noise.c
parent49c29dc82f3c249f6fceb5df4ee55272c023b0c5 (diff)
Fix T52034: cell noise renders different.
Tweak the bias from the previous fix a bit to be more backwards compatible in some scene. In the end which way we round is quite arbitrary, but keeping the case where the texture coordinate is exactly zero the same seems better.
Diffstat (limited to 'source/blender/blenlib/intern/noise.c')
-rw-r--r--source/blender/blenlib/intern/noise.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/source/blender/blenlib/intern/noise.c b/source/blender/blenlib/intern/noise.c
index 347640aae0d..86c24307ae2 100644
--- a/source/blender/blenlib/intern/noise.c
+++ b/source/blender/blenlib/intern/noise.c
@@ -1395,9 +1395,9 @@ static float voronoi_CrS(float x, float y, float z)
static float cellNoiseU(float x, float y, float z)
{
/* avoid precision issues on unit coordinates */
- x = (x + 0.000001f)*0.999999f;
- y = (y + 0.000001f)*0.999999f;
- z = (z + 0.000001f)*0.999999f;
+ x = (x + 0.000001f)*1.00001f;
+ y = (y + 0.000001f)*1.00001f;
+ z = (z + 0.000001f)*1.00001f;
int xi = (int)(floor(x));
int yi = (int)(floor(y));
@@ -1417,9 +1417,9 @@ float cellNoise(float x, float y, float z)
void cellNoiseV(float x, float y, float z, float ca[3])
{
/* avoid precision issues on unit coordinates */
- x = (x + 0.000001f)*0.999999f;
- y = (y + 0.000001f)*0.999999f;
- z = (z + 0.000001f)*0.999999f;
+ x = (x + 0.000001f)*1.00001f;
+ y = (y + 0.000001f)*1.00001f;
+ z = (z + 0.000001f)*1.00001f;
int xi = (int)(floor(x));
int yi = (int)(floor(y));