Clayton Anderson

Procedural Terrain 7/10/16


This is the first of hopefully many procedural generation projects!

The essential idea here is to generate some [interesting] 3D noise from Perlin Noise, then apply a mesh to it using Marching Cubes. I was inspired to try this project by Nvidia's article, Generating Complex Procedural Terrains Using the GPU. I coded up this Mathematica version to gain a better understanding of the method explained in Nvidia's article. I've been working on porting over to a C++ / OpenGL version that utilizes the GPU to do all the noise sampling, hopefully more on that soon.

Marching Cubes is an algorithm that takes a density function, and outputs a mesh [of triangles] that represents the isosurface where the density function is zero.

I borrowed the Perlin Noise code from Adrian's Soapbox.