# Links on Perlin noise 2005

I have found the links below to be interesting, either as
background or further information on topics covered in the course.

I recommended them all for reading, as they give better or at least alternative presentations of difficult topics in the book.

### Comments to the links above:

**Ken Perlin**
presents his latest noise research in two recent articles. Neither of
them have had any impact on the noise() implementations in most
graphics software, which is sad, because the new versions are really a
lot better looking, faster and/or more hardware friendly. Please check
it out. My own explanation of Simplex Noise was a public attempt
to make it more popular, but it has not made much difference yet.

**Matt Zucker** presents (at the end of his article) a way of making
noise periodic, so that it repeats
seamlessly over a given distance. That particular section
should be disregarded. Contrary to the first part of his article, this is bad,
even wrong.
His method is prohibitively expensive, and it also gives fairly evident visual
artefacts in the resulting image. The fact that the value and derivatives of a
periodic function match up at the boundaries does *not* imply that the
pattern *looks*
the same over the entire interval. (Try it and you will
see what I mean. At the edges, you have one single noise() instance,
while towards
the middle, you take a weighted average of two noise() instances.
Statistically and visually, these are two different things. The
proposed method works for white noise with a normal distribution, but
Perlin noise is very far from that.)

The *correct* way of doing periodic noise is this: Instead of treating
noise() as a fixed function, look at its implementation.
In the standard implementation, the gradient directions are arbitrarily
chosen to repeat after
256 integer steps. You can easily change this to any integer period,
although powers of 2 will be most efficient to implement.
So, no need at all to interpolate like Matt suggests, just change the
way the gradients are picked for the lattice points! (Non-integer
periods are tricky to implement, and should be avoided.)

**Hugo Elias** presents interesting notes on *value noise*, which as you know is
very different from *gradient noise*. Perlin noise is a gradient noise,
not a value noise. Apart from that, his article is fine and clearly written, so just replace every
occurrence of the term "Perlin noise" with the correct term "low-pass filtered
or interpolated value noise", and you will be OK.