noiseperlin-noisenoise-generator

Perlin Noise input values


I... don't know if I'm in the right place, but I don't know where else to go. There's a game called Worlds, and basically you create your own textures for your own blocks, your own noise generators, and generator rules. But one thing I have no idea about is the Perlin module in libnoise. What do the 5 input values mean in layman's terms?

Perlin(frequency, lacunarity, persistence, octaves, quality)


Solution

  • As a layman's translation, I can see the validity of the question. Especially as I recognize four of these five parameters from the multi-pass noise technically referred to as "fBm" (fracional Brownian motion) that is popularly called Perlin noise by graphical design even though it doesn't need to be based on Perlin's actual noise implementations.

    So, to explain:

    Frequency will be a base spatial scale for the underlying noise. How far apart the closest main features can be, approximately. In a texture generator like NeoTexEdit, it will be measured as number of features across the image (which I suspect your case is) rather than actual spatial distance like a terrain map generator would use.

    Lacunarity is referring to the scale multiple factor between each pass. Since the default is 2.0 the passes are called 'octaves'. Changing this affects the visual feel, though I've not seen a good reference to describe it either. Higher values tend to get small features sticking out of the smooth general pattern, like Martian boulders, while lower values make everything really smooth.

    Persistence values of less than 1.0 are used to shrink the contribution of further passes so you'll get a major noise pattern with minor features and deviations added to it. The smaller it gets, the less later octaves matter, and the more simple an image is created.

    Octaves is short for Number of Octaves - literally the number of passes to be summing. Again, fewer makes more simplicity. But the persistence places a soft limit on how many layers can be seen contributing, so high values quickly end up being wasted processing time.

    I have no idea what the quality parameter does. But the developer calls it that for a reason. Probably a sampling rate (resolution of raster grid), or maybe some specific keyword / keyvalue flags for the type of noise being generated under the hood. shrug