I found the cause of the side effect:
In GradientCoherentNoise3D there is an initialization block:
  int x0 = (x > 0.0? (int)x: (int)x - 1);
  int x1 = x0 + 1;
  int y0 = (y > 0.0? (int)y: (int)y - 1);
  int y1 = y0 + 1;
  int z0 = (z > 0.0? (int)z: (int)z - 1);
  int z1 = z0 + 1;

These values sometimes cause the distance from X to X0 or from X to X1 to
be greater than 1, and fixing GradientNoise3D causes
GradientCoherentNoise3D to jump out of bounds.

I believe this qualifies as a new bug, but the effect of this bug will only
appear if Bug#1093642 is fixed.

Reply via email to