Perlin's Noise Algorithm

(blog.jaysmito.dev)

27 points | by ibobev 2 hours ago

3 comments

  • jlhawn 42 minutes ago
    y'know what's cooler than Perlin Noise? Simplex Noise [1]! This is what is hinted at at the end of this article. Also invented by the same person to address issues in the original Perlin Noise function. It's not as popularly known because it was restricted by patent issues for so long but as of 2022 the patent has expired!

    1. https://en.wikipedia.org/wiki/Simplex_noise

  • vintagedave 1 hour ago
    I did not know that there were two versions of the algorithm:

    > ...the algorithm we discussed here is the original algorithm given by Ken Perlin. But after a few years of giving this algorithm, he improved this in some ways, like he changed the smoothing curve, the way gradients are calculated, etc. And that will be the topic of our next article.

    ...and that next article doesn't exist. But:

    * The 2002 paper improving it (this was likely after I first encountered Perlin noise, so I would have implemented v1!) https://mrl.cs.nyu.edu/~perlin/paper445.pdf

    * A really good article explaining the v2 algorithm: https://adrianb.io/2014/08/09/perlinnoise.html

  • badpun 18 minutes ago
    I've implemented 3D perlin noise recently and was surprised that the lighting was always off on the created model around the grid lattice (the model itself was continuous there, just the light was not correct). After a delightful couple of days debugging it, I finally learned that Perlin noise's derivative is not continuous around grid lattice, which makes normals not continous there (as normals are orthogonal to a tangent, and tangent is based on derivative). It's possible to improve it by cleverly changing Perlin's wavelet function, which makes the noise C(1) (derivative is continuous, second derivative is not) - this makes the visual artifacts smaller, but they don't go away.