top of page
x

HOUDINI - TERRAIN DESIGN & ROCK SCATTER
 

Let me show you how I created this custom high altitude terrain using Houdini and other tools.

terrain.jpg

This terrain is based on the real geographical data extracted from the sources available on the internet.

I tried two different approaches to achieve the best results- 


RenderDoc + Google Earth + Blender
Open Topography + Zbrush 


RenderDoc method is cumbersome and you'll get some neat live results from Google Earth including it's textures, however, the model isn't that great. It can only act like a good placeholder for proportions for production purposes.

Open Topography gave me better results. How it works is, you collect high-resolution topographic data, particularly lidar datasets from their website. We search for an area, specify the area coverage using the latitude and longitude values from Google Maps and render out different topography maps which we can use to generate models in any software you want.

hillshade map

slope map

roughness map

hillshade color map

hillshade relief map

I used Zbrush to generate the base model for Houdini. I imported the hillshade map into Terrain Tools in Zbrush, exported an .obj, which I then imported into Maya to create a basic layout with other bigger environment elements for variations.

In Houdini, the first thing I did was to project the .obj I exported from Maya when I had a basic layout of the environment ready.

The env was HUGE in houdini, so I used the transform node 
to reduce the overall scale of the asset, all driven through height field containers.

For this project, I wanted the terrain to have more wear, tear and erosions,
giving it that aged look.

As I progress, I add resampling nodes to subdivide the terrain so that I can accommodate more refined details using several other Noise and Distort nodes. I combine masking techniques such as Mask by Feature, Noise, AO, etc to create different kinds of break-ups on the terrain surface until I reached to a point where I was happy with the result.

You can see all the different stages in the screengrabs below - 

SCATTERING

For the bigger rocks, I used a Megascan asset and the smaller ones were generated within Houdini.

Simple node graph - plugged the rock asset into the heightfield scatter node and fed it through a custom height field paint mask.

For smaller rocks, I created a cube and deformed it first. Then I unpacked them into VDB polygons to increase the file efficiency. I then reduced the polycount further since there are thousands of them and are not significant as compared to the whole environment. I drove this through an AO map in a way that the scatter only happens along the baselines of the small peaks, terrain and along the river lines.

big rocks

smaller rock clumping

RIVER BED

I created the river bank using another Height Field Paint node. Masked the area on the terrain, blurred it a bit to get faded edges and applied a noise to push it down words. I then fed the flatten node to straighten out the undulated surface, so that it leaves good enough room for flip simulations. We can however, add another noise node here to granulate the flattened areas if necessary.

bottom of page