Reading in heightmaps (Made with world machine) is a piece of cake in Houdini. Although you'd most likely do that in a displacement shader, a VOP Point SOP is a fun and quick way to experiment.
All you need is a displace by normal and a texture op.
Looks like an album cover!
At first. a simple elevation gradient. A neat trick is to fuzz the ramp lookup with a noise function, so it won't totally look like Y=Position on color ramp.
A lot can be achieved by carefully crafting a gradient which mimicks your vegetation. There are even companies selling satellite-derived gradient data for world machine.
The next significant steps to improve the looks is slope-dependent distribution (more or less for free) and the usage of maps sourced from the by-product of the erosion operator in world machine.
A note on obtaining elevation data:
The DLR has processed data from the NASA SRTM project, 1-3 arcseconds resolution. It is available for free here:
dt2 (military elevation data) can then be converted to tif using gdal (install via package manager/brew):
for t in *.dt2 do ; gdal_translate -of GTiff $t $t.tif ; done
Base shading algorithm:
I went for an 3-Layer approach:
- A base gradient that defines the vegetation
- Slope-based "rocks" (steep slopes have less vegetation) - those have some extra displacement and coloring to spice up the elevation model
- If desired: snow on top, controllable via ramp, only where terrain is not too steep
Up-rezzing / LOD
The higher the base grid, the higher the detail. Images below are real-time openGL viewport renders.
Resolution as above, offline rendered with one HDR:
Up until now, these results are fully procedural without computed maps from Worldmachine.
The HDR is available at
and made by Greg Zaal, (blender) cycles developer, with full dynamic range of the sun, giving nice sharp shadows. He has a very technical and good approach to creating HDR, so you should definitely check out and support his work.
Displacement has been moved into the shader now:
Some early forest growth.