This is just a simplistic description of Perlin Noise. However while implementing the algorithm this is not the way to go. Because it's very very slow -- the author has simply taken non-coherent noise and smoothened it and this is computationally very expensive.
And also Ken Perlin has made an improved version to his original with some speedups and a reference implementation in Java can be found here: http://mrl.nyu.edu/~perlin/noise/
They are generated randomly. Ken Perlin has described it in his book Texturing, Modeling A Procedural Approach. If I remember correctly the numbers have to be such that every direction should have an equal chance. Even distribution I think.
"... I first started to think seriously about procedural textures when I was working on TRON at MAGI in Elmsford, NY, in 1981. ..." ~ http://www.noisemachine.com/talk1/4.html
According to https://secure.wikimedia.org/wikipedia/en/wiki/Value_noise (which cites this), this page actually describes value noise, not Perlin. I emailed the author, who told me he no longer has access to the site, so unfortunately, people will be fooled for years to come.
I wrote a Python extension based on the original Ken Perlin's algorithm. Just found it on my hard drive and uploaded it to github: http://github.com/ii/perlin
A never-released (3d space mmorpg wing-commander-esque) game my friends worked on for a while used this for texturing their worlds: http://www.cocommand.com/
Wow, 2 Ken Perlin related posts in an hour! I met Ken Perlin once very briefly and randomly and was a bit in shock when I realized who I was talking to. He was in shock that I was in shock. Nice (and very smart) guy.
14 comments
[ 0.22 ms ] story [ 45.0 ms ] threadAnd also Ken Perlin has made an improved version to his original with some speedups and a reference implementation in Java can be found here: http://mrl.nyu.edu/~perlin/noise/
there is another site Perlin has explaining how, "Making Noise" ~ http://www.noisemachine.com/talk1/
perlinNoise() is the function to look at. I implemented it based on http://web.archive.org/web/20070706003038/http://www.cs.cmu.... but the images are missing in the web archive :(