Terrain Generation Basis Functions

Having established a good start on hydraulic erosion, I moved to another area necessary for any good terrain toolkit – establishing a set of basis functions, from which you can achieve a the natural complexity needed by mixing various basis functions based on criteria such as latitude, slope, height, other fractals etc. Each basis function has it’s own character and “look” so to get a good heterogeneous result it’s valuable to be able to draw from a number of different functions. For example, here is a set of simple spheres deformed by a compound in which I use ICE’s excellent worley noise as a basis, which is then iterated through over a user-defined number of octaves, some of which are further modulated by a simplex fractal. You can see the character of the worley noise clearly, but where the simplex modulation comes into play you get a much more interesting result:



Less “terrain-like” is this output from a reticulation compound, which uses as it’s basis the “computational” noise described by Stephen Gustafson et al:


Interestingly, I approached this project having not read Ken Musgrave’s various writing on the subject of terrain generation outside of white papers. Once I did, I found that much of what I have discovered anecdotally he thought through in detail long ago. This is awesome, because it shows that my thinking has validity (after all, there are few who have spent more time and energy on the subject than he) and also because it gives me more threads to pull. I now have a series of compounds at my disposal that do various “terrain stuff,” now I can take a step back and decide how to assemble those experimental compounds into a more user-friendly and extensible set of ICE building blocks…