I come from an audio background and my hobby is figuring out noise formulas for mountains.

you can make your own 2d perlin noise with specific wave shapes, and you can multiple 2 1d perlin noises pnoise(x,y) in unity is already cool.

in audio, you have waveshapes like:

abs(sin(x))

1-abs(sin)

(sin*.5+.5) sinh callit, puts it above zero and it reacts well to powers, squareroots etc,

you can have

sinh^3,

sqrt sin,

1-sinh^3

there are some other basic waveshape mashups…

ideally you make perlin noise using those in 2d, or you can multiply the perlin noise using those functions when it’s already done, and you can change x y z proportions that go in and out of the formula.

if you want to learn about perlin noise, here is 3d:

http://forum.unity3d.com/threads/code-version-of-mathf-perlinnoise-and-fast-perlin-noise-2d-3d.261094/

you can derive 2d and 1d (1d same as unity) from this:

obviously never use sin on cpu or cos, its slow, use a cyclic x*x function to do a curve, its 10 times less heavy on processor…

and i like the perlin noise DLL Nevermind released for unity, it’s free now i dunno where you can get it. here it is in attachement…

this is for the attached dll, to access noise:

https://dl.dropboxusercontent.com/u/114667999/Plugins.rar

```
function simplex (a: float, b: float,c: float ): float// very erratic natural mountains
{
var noises: SimplexNoiseGenerator = GetComponent(SimplexNoiseGenerator);
var n = noises.noise(a,b,c);
return n;
}
function ng2 (a: float,c: float ): float// gradient noise 2d
{
var n = new CoherentNoise.Generation.GradientNoise2D(213321);
var k = n.GetValue(a,c,1);
return k;
}
function nvn (a: float, b: float,c: float ): float//3d function like Perlin
{
var n = new CoherentNoise.Generation.ValueNoise(213321);
var k = n.GetValue(a,b,c);
return k;
}
function nv2 (a: float,c: float ): float//2D,similar to Perlin noise, straighter, faster
{
var n = new CoherentNoise.Generation.ValueNoise2D(213321);
var k = n.GetValue(a,c,1);
return k;
}
function nvr (a: float,c: float ): float//lags it's slow, it's some pointy mountains with circular valleys
{
var n = new CoherentNoise.Generation.Voronoi.VoronoiPits2D(466);
var k = n.GetValue(a,c,c);
return k;
}
```