Houdini 20.5 Nodes Copernicus nodes

Height to Normal Copernicus node

Converts a height layer to a normal layer.

On this page

This operation converts a Mono layer that represents a nominal height to an RGB layer that represents the normal of the height map. Because height maps are rarely to scale, usually this requires explicit scaling to get the expected steepness of the normals.

Parameters

Normal Type

There are two possible ways to store normals. The natural way in geometry is to use signed numbers 1 to 0. However, as texturemaps usually lack support for negative numbers, normal maps are often defined with offset normals 0 to 1.

Signed

Output signed normals, compatible with geometry attributes.

Offset

Output offset normals, compatible with normal maps.

Height Scale

Global scale to the height prior to computing normals. Higher nubmers will create steeper normals.

Derivatives

Read Pixels outside Image

Determine if derivatives at the boundary should read outside the image or restrict to the image range. Reading outside is useful for building seamless textures with wrap-mode. But restricting to the image range avoids artificial flattening of the derivative at the boundary in clamp modes, as it acts more like an extrapolation.

Kernel Size

Usually a derivative is computed with adjacent pixels, but if the values are slowly varying there may not be enough bit-detph to get smooth derivatives. This will expand the distance, in buffer elements, to compute the derivative, possibly removing stepping artifacts from the derivative.

Inputs

height

A Mono layer representing a height map.

Outputs

normals

An RGB layer storing the normals of the height map, in either Signed or Offset format.

See also

Copernicus nodes