Tutorial: Normal From Height
This documentation is for update 2.0+, applied to 5.4+.
This guide provides a detailed walkthrough for using the Normal From Height job. This is an essential utility for any PBR texturing workflow, allowing you to create a detailed normal map from a simple grayscale height map.
1. What is a Normal Map?
A normal map is a special type of texture that tells the game engine how to simulate lighting on the surface of a 3D model. It adds the illusion of complex surface detail, like bumps, cracks, and crevices, without adding any extra polygons. Generating a normal map from a height map (a texture where white is high and black is low) is a standard technique for creating this data.
2. Setting Up the Job
In the main Texture Tools window, click the Add Job button.
From the dropdown menu, select Job: Normal From Height.
A new "Normal From Height" job will be added to the job queue. Select it to see its properties in the Details panel.

3. Providing the Input Height Map
The Normal From Height job operates on a single input texture.
In the Input viewport on the left, drag and drop your grayscale height map from the Content Browser into the INPUT HEIGHTMAP slot.
4. Configuring the Normal Map Generation
All the settings for this job are located in the Input Settings category in the Details panel.
Main Settings
Heightmap Channel: This dropdown lets you select which channel from your input texture contains the height information. If you are using a standard grayscale texture, you can leave this on
Red
,Green
, orBlue
. If your height data is packed into the Alpha channel of another texture, selectAlpha
.Use Derivative: This checkbox switches between two methods for calculating the normal map. The "Derivative" method is often faster and produces good results, while the standard method (when unchecked) gives you more manual control via the
Offset
parameter.Offset: (Only available when
Use Derivative
is unchecked). Controls the distance used to sample the height map when calculating the surface angle.Normal Intensity: This is a crucial setting that controls the "depth" or strength of the resulting normal map. Higher values will create the illusion of deeper bumps and crevices.

Blur Settings
This job includes an optional blur pass that can be used to soften the final normal map, which is useful for reducing harsh, noisy details.
Use Blur: Check this box to enable the blur pass.
Blur Distance: Controls the radius or "spread" of the blur effect.
Blur Distance Steps: The number of samples used for the main blur. Higher values create a smoother result.
Blur Radial Steps: The number of samples used for the rotational part of the blur.
Blur Radial Offset: Controls the tightness of the blur's spiral pattern.
Blur Kernal Power: Adjusts the intensity of the blur.

5. Generating the Normal Map
Once you have provided your height map and configured the generation settings, ensure the Normal From Height job is selected in the job queue.
Click the main Run Selected Job button.
The tool will process your height map and generate a new normal map. The new texture asset will be saved to the path specified in the Generate Settings category with the
_N
suffix. The tool will automatically set the correctCompressionSettings
for the new normal map asset.
Last updated
Was this helpful?