Building Terrain with Height Fields in Houdini
Download Houdini File: Height Fields for Beginners.hiplc
Houdini has a set of tools named Height Fields used for building terrains and landscape for your scenes and games. When we hear about terrains in the 3D world we often think of World Machine. There are also new players coming out with terrain generation software like Glyph Geo or GAEA. All procedural.
That’s because Height Fields are a relatively new set of tools that were added to Houdini 16 (at the time of writing this, Houdini 17.5 is the latest version). It hasn’t been around as long as the other players, but in terms of features and functionality it is very powerful. I think the best thing I love about SideFX’s Height Fields is that it’s integrated inside Houdini so everything can be done in one software package. This makes things incredibly convenient to use, without needing a new learning curve for new software every step of the way.
Houdini’s Seamless Integration with Height Fields
Height Fields fit in very nicely with the rest of Houdini’s infamous simulation tools. I find the most convenient thing is to create a random test terrain within a minute and then use it for fracturing in a destruction simulation right away.
The Height Field wrangle node is probably the most powerful Height Field node in that bundle, but because Height Fields are so nicely integrated inside the Houdini package, you can also use Volume VOP’s to manipulate the Height Fields to endless possibilities. This can really push the Height Fields to a whole new level. So I would say Volume VOP is the most powerful tool for Height Fields, but it’s not specifically labelled as a Height Field tool.
Workflow
I have even used Houdini’s simulations to help model some of the Height Fields as a back and forth workflow between different functionalities, which is the best thing I love about this seamless integration.
I would create a basic terrain from Height Fields, convert it to a polygon, feed it into a destruction sim, and then choose a frame that I’m happy with and merge it all together into a whole solid geometry. The results is a slightly fractured ground or cliff with cracks all over the terrain.
On the right is a terrain I made in Houdini with Height Fields and then shattered with Voronoi fracturing. I then used it in a destruction sim where I drop an animated ball onto the terrain.
The ball animation tweet on the right is using a different ground then the above screenshots. I couldn’t find the original file to take some screenshots of the original terrain in the animation.
Downside
The only downside I have experienced from working with Height Fields in Houdini is trying to keep the data generated by the Erosion node after converted it into anything other than a polygon. The water, cliffs, debris, sediment, or mask volume primitives that are given by the Erosion node is hard to maintain once converted to anything other than a polygon. So if you convert the Height Field to a VDB or anything else that is NOT a polygon, you basically lose all that data, which is essential in building the material for rendering.
However there are ways to get the data back, but it requires a bit of tricks and/or unique method for every scenario. Makes you work for it every time!