
The reason I want to make this explicit is that some people may think about calculating noise in terms of pixels being affected by neighbor pixels, which really isn't the correct way to think about Perlin noise. The gray, amorphous, lumpy fog that you see in most pictures is just one of the possible graphical representations of said function. Hopefully, people who read this tutorial won't have to struggle any more! Noise Is a Functionīefore we go any further, I want to make sure a simple, but very important point is understood: noise is a mathematical function, just like the sine or the exponent. I've even stumbled upon some articles presenting blurred white noise as perlin noise, which is not the case!Īnd that's why I decided to try and write a more beginner-friendly article on the subject, that starts from a simple and easy to understand case, and builds up towards a more advanced one. I think that a lot of articles on the subject don't provide enough context, jump into too much detail too quickly and use scary terminology like "surflets". However, in my opinion, a beginner will have a hard time figuring out how it really works. If you google "perlin noise", you will get a trove of articles and code. Perlin noise was invented in the eighties and has since been used countless times to generate natural-looking visual effects in films and games. By the end of it, we'll procedurally generate 2D terrain and water with GLSL. This post is going to be the Perlin noise tutorial that I've always wanted to see.
