Wednesday, 18 September 2013

Why does simplex noise seem to have *more* artifacts than classic Perlin noise?

Why does simplex noise seem to have *more* artifacts than classic Perlin
noise?

I read Stefan Gustavson's excellent paper on simplex noise, in which I was
promised that:
Simplex noise has no noticeable directional artifacts
in contrast with "classic" Perlin noise. I excitedly implemented it to
find out that the opposite appeared to be true. I do see artifacts in
classic noise, but I see at least as many artifacts in simplex noise,
aligned at 45 degrees to the main axes. They're especially noticeable when
you map the noise to a step function.
To ensure it wasn't a problem with my implementation, I used someone
else's JavaScript implementation. Compare some images:
Classic noise vs simplex noise
Classic noise step vs simplex noise step
And here's a gallery with all of them. In that last image, look for
borders that are aligned at 45 degrees from horizontal/vertical. They're
all over the place. I can highlight some of them if need be, but they seem
really obvious to me. (And again, I see them in the classic noise image as
well.)
Is this a problem with the simplex noise algorithm? Is it something that
can be fixed? Or am I the only one who sees this as a problem?

No comments:

Post a Comment