Let’s talk about fun things.
Houdini is clearly capable of some powerful and pretty stuff when it comes to terrain. I found several examples of that. This looks a lot like what I have in mind for my mountains:
This is more of a closeup, with plenty of detail and nice randomization happening:
And here’s a test showing a big chunk of land created, similar to the size of what I’m hoping to make:
I conclude that it’s all doable.
When I looked into methods of building terrain in Houdini, I found several different approaches, ranging in technical level and amount of proceduralism. Go Procedural, Side Effects’ own Vimeo page of demos and tutorials, gives a very thorough outline of how to go about it:
According to this workflow, straight from he software specials, terrain building can be broken down into several simple steps:
- Generate procedural base terrain
- Customize it with masses, details, and set dressing
- Convert the entire scene to polygons for rendering.
The first two steps, in turn, can be done in a variety of ways. Generating the base terrain can start straight from 3D, in the cases of:
- Sculpting the geometry
- Creating custom masses (for separate rocks)
Or you can start off with 2D data and convert it to 3D mesh, such as with:
- 2D topographical curves (height map)
- 2D DEM maps
- 2D fractals and other patterns
I tried sculpting first. Sculpting is fun, always. And in Houdini, sculpting is easy. Reminded me of Mudbox. Nondestructive, easily modified on any level, just add a new subdivision node and a new sculpt node on top and keep going.
Houdini also did a good job of reducing the mesh while maintaining detail.
But this can barely count as “procedural.” However, sculpting on top of a preexisting base mesh would be a good way to add custom detail with precision and a lot of control. Note to self.
Next I tried the height map method, which also turned out to be very customizable. Sure, you can go find a real height map online and use that, but you can also draw you own:
I like this idea, because this way I can create my landscape exactly how I want it. Control over everything. The only drawback – it would be fairly time consuming. After converting the 2D curves into a 3D mesh with some attribute coding, this is what I ended up with:
It doesn’t look very detailed because I didn’t have a lot of curves to start with. Still, I liked the results. With some tweaking, extra details, and sculpting on top, this method would work for my project.
One more thing the tutorial I used talked about: the topology curves method separates the input data from the geometry generators. Generators – groups of nodes doing one function in a scene – can become digital assets. Houdini makes good use of “digital assets,” and makes it easy to save them, export them, customize them, and reuse them. Much like your own presets. Digital assets increase productivity through such reuse. Modularity!
The next approach I tried used DEM maps – digital elevation models. They are similar to height maps, but instead of curves, there are gradients. And gradients can be powerful when they drive the right things. Using Houdini’s compositor, which behaves very similar to Nuke, I took a DEM image I found online and made its luminosity drive the height of a grid:
The results of this are most realistic, but least customizable.
Also, better watch the pure white and pure black areas – those will need some exposure adjustments on the 2D composite, or 3D detailing on top.
However, there is a way to change this to a degree. The 2D map can be turned into a composite image with other details on top. For example, this screenshot shows two areas of elevation that were added with curves and assigned heights, and integrated into the rest of the terrain:
In addition to all the terrain building, I tried some procedural set dressing, and learned a new word. “Scree” is a mass of small loose stones that cover the slope of a mountain. And I’ve generated some scree on my landscape.
These points are being driven by a snippet of code that determines the slope of the geometry and places points within a certain range. In other words, the points are being generated where the landmass is the flattest. They are then randomized (scattered) a bit, and assigned a piece of geometry – in this case, just a box.
If the red boxes were rocks, and then if a different slope range controlled bigger (or smaller) rocks, and another slope range controlled more rocks – I’d have a nice, natural-looking rocky landscape. Also, this method would work great for trees, when I need to place them just on the flat areas of a landmass.
In conclusion of this part of terrain building, I have a pretty good idea of how I’ll model my mountains later this week. I’ll use a combination of all three methods – a DEM map with some adjustments for the background mountains, a unique height map for the foreground mountains, and sculpting on top for close up details and camera details. Plus, rocks and trees.
To be continued with more terrain-building methods, soon…