Fractal Noise Using Perlin Noise
As a followup to my past revelation about Perlin noise, I wanted to show what fractal noise looked like using actual Perlin noise instead of value noise.
In my first post, I showed how multiple octaves of value noise could be combined to create fractal noise. The same method works with Perlin noise, however Perlin noise looks a little different.
./bin/fractal_noise --algorithm perlin --output-octaves
Combine the above octaves to get the following fractal noise:
Octaves
./bin/fractal_noise --algorithm perlin --octaves 5
./bin/fractal_noise --algorithm perlin --octaves 7
Persistence
./bin/fractal_noise --algorithm perlin --persistence 0.3
./bin/fractal_noise --algorithm perlin --persistence 0.9
In my second post, I showed how applying filters to fractal noise can vary the output. This time I’ll use Perlin noise.
./bin/fractal_noise -a perlin -w 256 -h 256 --octaves 8
Normalization
./bin/fractal_noise -a perlin -w 256 -h 256 --octaves 8 -n
Gamma Filter
./bin/fractal_noise -a perlin -w 256 -h 256 --octaves 8 -n -g 1.2
Median Filter
./bin/fractal_noise -a perlin -w 256 -h 256 --octaves 8 -n -g 1.2 -m 2
./bin/fractal_noise -a perlin -w 256 -h 256 --octaves 8 -n -g 1.2 -m 8
Interpolation
Unlike value noise, Perlin noise seems to work better with linear interpolation.
The first image uses linear interpolation. The second image uses cosine interpolation which causes obvious edges throughout the noise.
The resulting fractal noise, however, is less noticeably different.
My final post explained how particular sizes of fractal noise could be tiled. The same principle applies to fractal noise using Perlin noise.
./bin/fractal_noise -a perlin --seed 42 --octaves 7 -h 128 -w 128 -n
./bin/terrain -a perlin --seed 42 --octaves 7 -h 128 -w 128
Terrain generation with Perlin noise ends up looking fairly similar to value noise.