Shortly after my last post, I realised my Voronoi basis had a problem: only the distance was taken into account for each cell. This has been corrected, with each cell now assigned a random base value, to which the distance is added.
At the same time, I noticed that the voronoi basis wasn’t much use on its own – polygons are an unusual shape in nature. This lead to the addition of a Turbulence module, which perturbs the input coordinates according to another generator.
Together these additions allow for some striking images, and adding these to a few octaves of simplex noise lends itself well to terrain – the bottom image makes for a quite convincing height map, though improvements can obviously still be made.
I am also testing the inclusion of an additional diamond-square generation technique, but it doesn’t play very well with other approaches. Unfortunately, diamond-square generation can only be used for square images with power-of-two dimensions, must be generated an entire image at a time (which pretty much precludes mixing it with other noise types), and only works with basis generators which have a gaussian distribution (i.e. not voronoi). Diamond-square does however offer very fast generation, so I think it will be included in the library – specifically for those applications that need extremely fast generation of fBm-like textures.