New mountains for Goblinson Crusoe
Posted by JTippetts, 09 October 2012 · 941 views
Goblinson Crusoe isometric hex rpg procedural
Spent a little time today working up some new procedural mountains for Goblinson Crusoe. Used Blender Cycles to render these, and it made a bit of a difference in the pipeline.
For reference, here are the old mountains:
The way I generated the original mountains was I wrote a script for the Accidental Noise Library that would generate a perturbed sphere heightmap, an alpha blend map and a diffuse color map, then import all into Blender and render. The process now is pretty much the same; however, instead of generating an alpha blend map I simply use node materials to fade out the base parts of the mountains to blend them with the ground, and nodes to control the distribution of snow across horizontal-facing slopes and elevation. Basically, all I need to do is feed it a heightmap. Also, instead of generating a diffuse map, I use the tri-planar texture mapping I discussed in an earlier post, to eliminate any stretching. (Some of those peaks are scaled pretty tall, and there would have been plenty of stretch.)
For the heightmaps, instead of perturbing a sphere I used a sphere (or fuzzy disk) multiplied with a single layer of F2-F1 cellular noise, then perturbed that result in X and Y using a couple FBM fractals, exporting the result to a heightmap. To render a new mountain, I just generate a new heightmap, reload the texture in Blender and hit render. No post-processing needed. The node material even pre-multiplies the alpha, so I don't need to do the post-process pass to pre-multiply alpha as I did before.
I kind of like the new result, even though I didn't hate the old. The older ones are a tad more "cartoony", but the new ones just sort of strike a vibe for me. I might re-generate a few of the taller, more angular snow-covered peaks, though.
Been dipping into the code, trying to re-acquaint myself with it. Made a few tweaks, and am working with some ideas I've had in the past couple weeks.