In brief
- A heightfield stores elevation on a two-dimensional grid; layers let you edit terrain features separately.
- Mask by Feature can select areas based on slope, elevation, curvature, direction, and occlusion.
- HeightField Scatter generates points in masked areas based on coverage, density, or a total point count.
- The Heightfield Mask by Feature documentation lists the tool as available since Houdini 16.0, while the HeightField Scatter documentation lists it as available since 17.0.
Houdini’s official heightfield documentation presents terrain generation as a workflow that starts with a basic heightfield and adds detail with masks and scatter. This approach can help you create topography, planting areas, and terrain distributions with separate controls for architectural environments. The documentation states that the Heightfield Mask by Feature node has been available since Houdini 16.0, and HeightField Scatter since 17.0. The steps below are based on the documented functions of these nodes.
1. Create a basic heightfield
Open the Tab menu at Houdini’s
objlevel and create aGeometry OBJ. Dive inside it to start working in the SOP network.Add a
HeightField SOP. This node creates a flat terrain base centered at the scene origin and extending across the XZ plane.Set the scale with
Sizeand the resolution withGrid Spacing. The documented default size is 1000 by 1000 meters. A standard grid spacing of 2 meters produces 500 by 500 cells. A tighter spacing can provide more detail; however, the documentation says this setting determines terrain resolution and does not provide a specific performance measurement.Add a
HeightField Noise SOPand connect its first input to the heightfield.Amplitudesets the scale of elevation changes, whileElement Sizedetermines the size of the noise pattern. A smallerElement Sizecreates finer, sharper details; larger values produce a smoother surface. AdjustRoughnessin small increments: the documentation recommends steps of 0.05 and notes that this parameter is sensitive.
A heightfield does not work like a traditional polygon mesh; elevation data is stored on a two-dimensional grid. Layers let you edit the base terrain and added features separately, temporarily hide them, or add new layers to the grid. The base layer is usually named height, while a mask layer is usually named mask.
2. Define terrain areas with masks
Create a mask to apply effects only to specific areas. The method shown in the official general guide is to place a
HeightField Mask Noise SOPbetween theHeightField SOPandHeightField Noise SOP. Connect the mask node’s output to the noise node’s second input. The mask’s red areas show where the noise effect will be applied.For more meaningful terrain criteria, use
HeightField Mask by Feature. This node lets you enable slope, elevation, curvature, direction, and occlusion criteria separately. For example, selecting areas above a certain slope or within a specific elevation range determines which parts of the surface are affected. If multiple criteria are enabled, the result is the intersection of their masks.When combining a mask with an existing one, choose
Combine with Existingaccording to your needs.Replacereplaces the old mask;Add,Subtract,Multiply,Maximum, andMinimumcombine them in different ways. InBlendmode, 0 keeps the old mask, 1 uses the new mask, and 0.5 blends the two equally. Note that if no criteria are enabled, the node fills the mask with 1.
3. Turn the mask into a distribution with scatter
In the
HeightField Scatternode, enter the name of the mask to use in theMask Layerfield. Choose a distribution method to suit your needs:Coveragesets how much of the masked area is covered by points;Densitysets the number of points per square meter; andTotal Point Countsets the exact total number of points to generate.You can use
Relax Pointsto reduce clustering. IncreasingIterationscan produce a more even distribution, but may slow down processing, and additional iterations may not help once the distribution is adequate.Max Pointsis designed as a safety limit; it does not guarantee a specific number of points. If you need an exact count, useTotal Point Count.Geometry to be placed on the terrain can be connected to the third input; when
Instance on New Pointsis enabled, the node places this geometry on the generated points. Orientation options let points follow terrain normals or rotate according to slope. To preserve the same random distribution, keep theGlobal Seedvalue fixed; according to the documentation, the same seed produces the same scatter result.
| Setting | Suggested value | Effect |
|---|---|---|
HeightField Size | Documented default: 1000 × 1000 m | Sets the overall dimensions of the terrain base. |
Grid Spacing | Documented standard: 2 m | Produces 500 × 500 cells at this spacing; defines the resolution. |
Roughness adjustment | Small steps of 0.05 | Helps change noise detail in a controlled way. |
Mask Blend | 0.5 | Blends the old and new masks equally. |
These are default or example values given in the documentation; they should not be considered final recommended settings for every project.
Impact on architectural and visualization workflows
This method is useful for architects, interior designers, and archviz artists who want to build terrain as controllable areas and distributions rather than as a single surface. Slope or elevation masks help select which areas to detail in a scene, while scatter enables point-based placement in those areas. However, the documentation does not provide values for specific plant models, render times, or hardware requirements.
Because heightfields are based on a two-dimensional grid, they have limitations when working with vertical surfaces. For detail on vertical sections, the documentation lists eroding the terrain or converting it to actual geometry as options. Karma CPU and Karma XPU support heightfields. Although automatic conversion can occur when importing them into Solaris, manual conversion provides more control in cases such as baking color and layers into the terrain.
Common mistakes
Expecting a result without enabling any criteria in
HeightField Mask by Feature: in that case, the mask is filled with 1.Treating
Max Pointsas an exact scatter count: the documentation says it is only an upper limit, and the actual number may be lower.Calling the mask by the wrong layer name: the
Mask Layername used by the scatter node must match a layer in the heightfield.Assuming a heightfield can represent vertical surfaces in detail: it stores elevation data on a 2D grid and is limited in vertical areas.
Version note: the documentation lists “Since 16.0” for Heightfield Mask by Feature and “Since 17.0” for HeightField Scatter. The general heightfields page does not specify a version number, so no version claim has been added for the other nodes.
Sources
3 sourcesSource texts are not republished; short quotes are marked, everything else is our own summary and commentary.
For architecture and visualization offices in Turkey, the main benefit of this workflow is the ability to divide terrain into areas based on criteria instead of editing it by hand. Controlling distribution with slope, elevation, and masks can make it easier to revise the same network when a project changes.
That said, it is worth testing on a small area before generating a dense grid and a large number of scatter points. Since the documentation does not provide hardware requirements or performance measurements, you need to test values that suit the scale of your scene. In particular, not mistaking `Max Points` for an exact count and accounting for the limitations on vertical surfaces early can help avoid unnecessary rework.
Frequently asked questions
What is a heightfield in Houdini?
A heightfield is a structure that stores terrain elevation on a two-dimensional grid. Layers and masks let you process different areas separately.
Can HeightField Scatter generate an exact number of points?
Yes. The documentation includes the `Total Point Count` method for specifying an exact total. `Max Points` is used to set an upper limit, not an exact count.
Can a heightfield create detail on vertical surfaces?
A heightfield’s 2D grid structure is limited in vertical areas. The documentation lists eroding the terrain or converting it to actual geometry as options for adding detail to these sections.



