I am trying to implement cartoon style terrain generation in Unity with perlin noise.

I want to create 3D rolling hills for my game like in mario enter image description here

The low frequency perlin noise I leverage always gives me realistic rolling hills, but I want that very cartoony edge between elevations and the flat tops. Any ideas how this may be acheived? I suspect it may have to do with playing with some easing function between neighbouring points (non-linear quantization?).

to expand, could something like this wrapped around a sphere work (my world will be spherical with displacement). enter image description here I would setup a biome etc. but if the aforementioned would work, how would i go about generating the height map texture like the image ?

  • \$\begingroup\$ Do you want the hills to all be the same width (as shown in the example) or do you need variable width? \$\endgroup\$
    – Pikalek
    Jul 15, 2017 at 3:58
  • \$\begingroup\$ @Pikalek i want them to be variable width \$\endgroup\$
    – user101118
    Jul 15, 2017 at 5:35

2 Answers 2


Looking at the image, it looks to me like you would want to use cylinders with hemispherical end caps on the top to produce something similar. It looks like the cylinders are x units wide and spaced 1/2 x units apart. So I would take your Perlin noise and use that for the heights of the cylinders.

  • \$\begingroup\$ i dont want the cyinder to all have the same radius, more so, it is acceptable for me to have a few overlapping cylinders \$\endgroup\$
    – user101118
    Jul 15, 2017 at 5:40

Well for each chunk, spawn hills (varying paramter like size and height) at random location using a relaxed grid sampling, they will overlap and give the desired features automatically.


You must log in to answer this question.

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