Why reconstruction is ambiguous

Normals describe local direction, not absolute elevation. Different surfaces can share similar normal directions, seams can accumulate error, and tangent-space orientation must be known. For precise displacement, keep the original height source whenever possible.

Current recommended workflow

Load the original albedo or height source, shape the Height controls, inspect the displaced plane in 3D, then export 16-bit height. Direct normal integration is planned for a dedicated numerical solver rather than a misleading one-click approximation.

Why normal integration needs more than channel conversion

A tangent-space normal map stores a direction at each texel. Height reconstruction must integrate those local slopes across the entire image while deciding on an arbitrary baseline. Small inconsistencies can accumulate into broad waves or drift, and texture seams create competing boundary conditions. Flipping or extracting one RGB channel therefore does not produce a reliable displacement map.

The source convention also matters. OpenGL and DirectX encode opposite tangent-space Y directions, and an unknown or incorrectly interpreted convention reverses one set of slopes. Object-space normals, tangent-space normals and normals baked for a particular mesh are different inputs and should not be treated as interchangeable height data.

When reconstruction can be useful

Approximate reconstruction can help recover broad relief when the original height source is lost and the normal map is clean, seamless and consistently oriented. It is less suitable for overlapping forms, undercuts, deep displacement or surfaces whose normals were hand-painted without an integrable height field. Even a good solver recovers relative shape rather than absolute scale.

Use the reconstructed result as a mask or starting surface, remove low-frequency drift, repair seams and compare it with the normal map under the same lighting. Keep the original normal texture for final shading unless the reconstructed height has been reviewed and rebaked against the target geometry.

Export height for displacement carefully

Choose 16-bit height when the map will deform geometry because the additional levels reduce visible stepping. Confirm the destination application's midpoint and displacement scale, subdivide the target mesh sufficiently and test silhouettes rather than judging only a flat preview. For parallax or bump workflows, an 8-bit map may be adequate when the relief is shallow.