Houdini 20.0 Nodes Geometry nodes

HeightField Layer Properties geometry node

Sets the border voxel and compression policies on a height field volume.

Since 16.0

Each height field layer has a property controlling how operations should affect voxels at the edge of the volume. This node lets you set the property for a given layer.

This is important when tiling height fields into a larger height field map, or merging a smaller height field into a larger height field.

Compression can be used to reduce the footprint memory and on disk (when saved as .bgeo.sc) of heightfield layers. Note that heightfields are internally broken into 16×16 tiles that are compressed independently, so these tiles may show up with very coarse compression tolerances.

Parameters

Layer

The name of the layer to set the border property on, usually height.

Adjust Border

Actually change the border property. If this is off the node does nothing.

Border Type

Constant

Act as if grid points outside the volume are set to the value in Border value below.

Repeat

Act as if grid points outside the volume repeat (tile) values inside the volume.

Streak

Act as if the values at each border point continue outward outside the volume.

SDF

Not useful for height fields.

Border Value

When Border type is “constant”, the value to use for grid points outside the volume.

Adjust Compression

Enable the adjustment of compression settings.

Compression Preset

Provides some quick presets for compression levels. For layers where one does not know the active range, float 16 is a good choice. The integer choices set the tolerance for an equivalently quantized sized integer in the 0..1 range. But because each tile will create its own range, the heightfield may still retain more precision than requested.

Compression Tolerance

Voxels that are this far apart before compression should remain different. Voxels that are within this distance of each other before compression may be snapped to the same value. This is not quantization, however, so areas of little change may retain higher accuracy than suggested by this. For example, if a 16×16 subtile all has values within this range, it will be replaced by a single constant tile, converting to a blocky tile-based look.

Use 16bit Float

While 32 bit floats are still used for computation, whenever they are stored in the volume they are reduced to 16 bit floats. This cuts memory consumption in half at the cost of slightly higher computation costs and reduced precision of the floats.

Dithering

When voxels are quantized to a lower bit depth some of the lost information can be recovered by adding noise to the pre-quantized voxels. This can be thought of as trading bit depth in the voxel with spatial resolution.

Dithering avoids banding in the resulting heightfield in exchange for noise.

Setting dithering to none will just do a pure thresholding operation. Dithering of ordered will use a constant dither matrix over each tile.

Geometry nodes