Jim Cameron’s Avatar is on everyone’s lips these days, as are countless articles on the CGI and performance capture technologies developed to awe-inspiring affect. I was particularly enamoured by the terrain and flora and fauna developed for Pandora. So yes, I decided to create my own little rocky universe, with lots of green luscious floating mounds and dramatic drop-offs, hanging vines, and whatever else I could pull off on my meagre budget. Personally, I think procedural generation of terrain is the way to go if you have a large complex terrain to work with. Some of you who regularly dwell in game development will recall Ryan Geiss’s Cascades demo back in 2008. Ryan, who at the time was employed at nVidia, developed a procedural model for a terrain, which he streamed out of a Geforce 8 graphics card using brute-force marching cubes on the GPU. The resulting geometry was rendered in real-time with tri-planar texturing, user-positioned waterfalls (really!), flying insects, and more. The only hitch was tweaking or changing the scalar field that defined the terrain surface. This was actually the reason I developed Acropora, to develop complex, organic terrain that I could export to a shader and stream out on a GPU card. Things kinda got more complicated after that.
Anyway, back to the focus of this segment. I decided on creating a terrain with the vaulting cliffs, a deep canyon and some floating rock islands. First up, the base terrain. Using Acropora I started with a flat plane and applied the River/Canyon modifier. Adjusting the major and minor frequencies I opted for a single deep canyon. You can control the depth of the canyon by adjusting the strength of the modifier. Enabling the 3D surface property you get jutting overhangs and other interesting terrain. The 3D effect has its own strength property so you can tweak the amount of overhang you need.
Adjusting the seed property in the canyon/river modifier will generate a unique surface:
Eventually I settled on the following:
Here are the properties for the Canyon/River modifier:
The next stage involved creating the vaulting cliffs. This I did by instantiating a region over one side of the canyon and applying a Ridged Fractal modifier.
NOTE: Use cloning of regions to create large swaths of cliff-like terrain.
In the end I added 3-4 regions, each containing a fractal (or badlands) modifier which when blended created interesting terrain.
Being satisfied with the base terrain I moved the mesh into the repository. In the repository meshes are no longer contained in voxel space. You can, at any time, reload the modifiers and reconstruct the surface.
Creating the floating islands I took a different approach. I used both superimposed spheres and cubes as base surfaces. In the case of spheres I created 3-4 spheres, offset them (but remaining contact) and applied a fractal modifier.
The resulting rock:
Using a cube volume as base geometry coupled with a ridged fractal operator yielded the following:
Putting it all together:
Exporting to MAX, texturing, planting groves of palms and vines:
Project files: rf_1.zip