Documentation
Normal From Height
VFX Loom 1.1.0 reference for the Normal From Height node.
processing.normalFromHeight
Overview
Converts a height image into an encoded tangent-space normal image for downstream lighting or surface-detail workflows.
Central-difference normal generation from the selected height channel. A flat height field produces the encoded flat normal (.5,.5,1); height alpha is preserved.
- Category
- Material
- Internal ID
processing.normalFromHeight- Version
- Current audited reference
Inputs
| Input | Type | Required | Default | Meaning |
|---|---|---|---|---|
| height | Image | Required | — | The image whose selected channel is interpreted as height. |
Properties
| Property | Type | Default | Animatable | Range / options | Effect |
|---|---|---|---|---|---|
| Strength | Scalar | 1 | Yes | Hard 0..16 · UI range: soft · Step .1 | Scales the slope of the generated normal; higher values make relief appear steeper. |
| Distance | Scalar | 1 | Yes | Hard .25..8 · UI range: soft · Step .25 | Sets the sample separation used by the central difference; larger values broaden the height comparison. |
| Sample Distance | Scalar | .0078125 | Yes | Hard .0005..25 · UI range: soft · Step .0005 | Sets the current sample separation used by the central difference. |
| Source Channel | Enum | Luminance | Not declared | Luminance · Alpha · Red · Green · Blue | Chooses Luminance, Alpha, Red, Green, or Blue as the height signal. |
| Invert | Bool | false | Not declared | — | Flips the generated normal response. |
| Invert X | Bool | false | Not declared | — | Flips the generated normal's X direction. |
| Invert Y | Bool | false | Not declared | — | Flips the generated normal's Y direction. |
| Edges | Enum | Clamp | Not declared | Clamp · Repeat · Mirror · Black | Chooses how neighbouring height samples are read beyond the image boundary. |
Outputs
| Output | Type | Meaning |
|---|---|---|
| normal | Image | The production node output described by the overview. |
Usage
In practice
- Feed a grayscale height field into Height. Choose Source Channel deliberately when the height signal is carried by alpha or a specific colour channel.
- Increase Strength for steeper apparent relief; use Sample Distance to compare samples farther apart. Distance remains as a legacy control for older saved graphs. Use Invert, Invert X, or Invert Y when the normal convention of the consuming material is reversed.
- Choose Repeat for seamless tiled height maps, Clamp for ordinary bounded images, or Mirror when reflected edge sampling is preferable.
Worked example: Noise → Normal From Height
Turn procedural grayscale structure into a tangent-space normal map that can drive a later material or lighting stage.
- Connect Noise or another height image to Height and select the channel carrying the relief.
- Start with Strength 1 and Distance 1. Increase Strength for stronger relief before changing the source texture itself.
- Use Repeat for a tileable source and verify the X/Y convention against the node that consumes the normal image.
Examples
These examples show Normal From Height in supplied VFX Loom graph setups. Each graph link opens the corresponding node reference; the explanation below the media is specific to this node's role in that setup.
Material surface maps
A compact Material graph turns procedural noise into colour, roughness, normal, and cavity inputs for Material Output.
How Normal From Height contributes
Normal From Height derives a tangent-space normal map from the source height signal.
Material maps and masked detail
A Material graph combines procedural colour, mesh-derived curvature and occlusion, roughness, normal detail, and a layered composite.
How Normal From Height contributes
Notes / limitations
- A flat height field produces the encoded flat normal (.5, .5, 1); the height alpha is preserved in the output.
- Sample Distance is the current spacing control. Distance is retained as a legacy parameter for compatibility with older saved graphs.