I've finally managed to write a working Lua version of Perlin's improved noise for Love 2D. However, when I run it, i get this:

Which is just fine, I guess. But I would like something that looks more like this:

How can I achieve this?

  • \$\begingroup\$ The latter image looks more like diamond-squares algorithm.. \$\endgroup\$ Apr 25, 2016 at 18:27
  • \$\begingroup\$ No, it's Perlin Noise, only with multiple octaves \$\endgroup\$ Apr 25, 2016 at 18:43
  • \$\begingroup\$ Ok, but to phrase it differently - maybe you might want to look into DS-algorithm and compare? \$\endgroup\$ Apr 25, 2016 at 19:26
  • \$\begingroup\$ Oh, don't worry, I solved my problem \$\endgroup\$ Apr 25, 2016 at 19:48

1 Answer 1


You will need to learn how the terms Octave, Persistence, Frequency, and Lacunarity are used. What you have is a good first step, it looks just like noise should.

The basic idea is that you need to combine multiple noise sources into one result to achieve the final look. This combination can be something simple like addition, but you can take many mathematical operations.

In the end a typical example for your grainy clouds looks like this: Map = Map1 + (Map2 / 2) + (Map3 / 4) + (Map4 / 8)

For reference and examples: Start here

  • \$\begingroup\$ Thanks man. I tought octaves, frequency and amplitude were a unique feature of "False" Perlin noise (value noise) just like gradients only are in "True" Perlin noise. \$\endgroup\$ Apr 23, 2016 at 20:44
  • 2
    \$\begingroup\$ Definitely going to read that article. \$\endgroup\$ Apr 23, 2016 at 20:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .