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

  1. In the main Texture Tools window, click the Add Job button.

  2. From the dropdown menu, select Job: Normal From Height.

  3. 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, or Blue. If your height data is packed into the Alpha channel of another texture, select Alpha.

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

No blur applied

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.

Blur applied to soften the harsh noise

5. Generating the Normal Map

  1. Once you have provided your height map and configured the generation settings, ensure the Normal From Height job is selected in the job queue.

  2. Click the main Run Selected Job button.

  3. 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 correct CompressionSettings for the new normal map asset.

Last updated

Was this helpful?