Procedural landscape with ribbed fractal noise

I implemented a bilinear interpolated white noise for procedural landscape creation.

I can get this result:

enter image description here

I would like to realize ribbed fractal noise to get a more realistic landscape, for example:

enter image description here

However, I cannot find a good tutorial for fractionated fractal noise. Can you explain to me how to do this?

+5
source share
1 answer

The rare perlin noise is actually quite easy to use - you just need to make ABS () either the final height map, or some subset of the noise layers (and then invert the resulting height map values โ€‹โ€‹to make sure the ridge is at a high level).

Example: enter image description here (base perlin noise with trilinear interpolation and then ABS and INVERT of the entire height field). (INVERT means "multiply by -1".)

I highly recommend experimenting with various fractal noise layer configurations and basic math / logic operations.

Another example: enter image description here (two different low-frequency perlin noise layers combined using the logical function MINIMUM INTERSECTION / mathematics)

However, no simple modification of the fractal noise algorithm will give you the details that seem to be "flowing down" (and make the landscape more realistic and attractive). To achieve this, you will need to add a kind of erosion modeling, which is a much more complex beast (both with an algorithm and a processor).

To get some information about this, I recommend these two articles (you can ignore part of the GPU, the algorithms work fine on the processor, although in my experience the simulation will take about a minute for a 1000x1000 px image):

EDIT:

Let me clarify what I mean by the word "apply ABS on the height field".

You just get the numerical value of the height in each pixel of the map and apply the ABS () function to it, discarding its sign.

The perlin noise generator is supposed to generate values โ€‹โ€‹in the range <-1.1> (or another range centered on 0). ~ 50% of the pixels are expected to have a value greater than 0 and ~ 50% are expected to have a value less than 0.

ABS causes the creation of sharp ridges where 0 is located, since all bilinear / trilinear interpolation will ensure that there is a smooth slope passing through the value 0.

Consider this image:

enter image description here

It shows two COS (x) functions, one of which was modulated by the ABS function (I added a slight offset so that both lines are visible separately). Now imagine that the purple line is inverted vertically - you end up with two mountains with sharp ridges and a valley between :)

+9
source

Source: https://habr.com/ru/post/1247730/


All Articles