Latest news
Creating Architectural Details with Blender Curves: Ribbons, Tubes and DeformationGemini Enterprise agent announced to handle work tasks in one interfaceArray Along a Curve in Rhino 8: Using ArrayCrv and SurfacesTerrain Generation in Houdini: A Guide to Heightfields, Masks, and ScatterBlender Mesh Cleanup: 8 Practical Editing Steps for Architectural ModelsArchitectural Image Generation with Nano Banana: API, Prompts and EditingRizomUV 2027.0 released: map-based UV control and batch processingUnreal Engine World Partition and Level Instancing: A Guide for Large ScenesUnreal Engine Pixel Streaming Setup: A Local Network Guide for Architectural PresentationsBoolean Master Creates Cuts in Blender in Two Clicks
Tips & GuidesHoudini

Terrain Generation in Houdini: A Guide to Heightfields, Masks, and Scatter

Houdini’s heightfield tools let you control terrain through layers, masks, and scatter points. This guide explains the core workflow for architectural environments and visualization scenes.

Contemporary building and orderly clusters of plants on sloping terrainAI image
Representative image, generated with AI.Image: 3dsınıfı / FCA AI

In brief

  1. A heightfield stores elevation on a two-dimensional grid; layers let you edit terrain features separately.
  2. Mask by Feature can select areas based on slope, elevation, curvature, direction, and occlusion.
  3. HeightField Scatter generates points in masked areas based on coverage, density, or a total point count.
  4. 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

  1. Open the Tab menu at Houdini’s obj level and create a Geometry OBJ. Dive inside it to start working in the SOP network.

  2. Add a HeightField SOP. This node creates a flat terrain base centered at the scene origin and extending across the XZ plane.

  3. Set the scale with Size and the resolution with Grid 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.

  4. Add a HeightField Noise SOP and connect its first input to the heightfield. Amplitude sets the scale of elevation changes, while Element Size determines the size of the noise pattern. A smaller Element Size creates finer, sharper details; larger values produce a smoother surface. Adjust Roughness in 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

  1. 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 SOP between the HeightField SOP and HeightField 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.

  2. 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.

  3. When combining a mask with an existing one, choose Combine with Existing according to your needs. Replace replaces the old mask; Add, Subtract, Multiply, Maximum, and Minimum combine them in different ways. In Blend mode, 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

  1. In the HeightField Scatter node, enter the name of the mask to use in the Mask Layer field. Choose a distribution method to suit your needs: Coverage sets how much of the masked area is covered by points; Density sets the number of points per square meter; and Total Point Count sets the exact total number of points to generate.

  2. You can use Relax Points to reduce clustering. Increasing Iterations can produce a more even distribution, but may slow down processing, and additional iterations may not help once the distribution is adequate. Max Points is designed as a safety limit; it does not guarantee a specific number of points. If you need an exact count, use Total Point Count.

  3. Geometry to be placed on the terrain can be connected to the third input; when Instance on New Points is 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 the Global Seed value fixed; according to the documentation, the same seed produces the same scatter result.

SettingSuggested valueEffect
HeightField SizeDocumented default: 1000 × 1000 mSets the overall dimensions of the terrain base.
Grid SpacingDocumented standard: 2 mProduces 500 × 500 cells at this spacing; defines the resolution.
Roughness adjustmentSmall steps of 0.05Helps change noise detail in a controlled way.
Mask Blend0.5Blends 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 Points as 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 Layer name 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 sources
S
sidefx.comsidefx.com/docs/houdini/heightfields
Summary
S
sidefx.comsidefx.com/docs/houdini/nodes/sop/heightfield_maskbyfeature.html
Summary
S
sidefx.comsidefx.com/docs/houdini/nodes/sop/heightfield_scatter.html
Summary

Source texts are not republished; short quotes are marked, everything else is our own summary and commentary.

3dsınıfı’s take
3dEditor’s assessment

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.

Comments and the forum are in Turkish.Join the discussion
+

Related news