A reliable workflow
Height values need an external scale
A height map is scalar data: brightness orders relative elevation, but does not define real-world millimetres without an external scale.
Choose Scharr or Sobel deliberately
Scharr gives more rotationally balanced 3×3 gradients; Sobel remains useful when matching an established asset pipeline.
Clamp and wrap solve different boundaries
Clamp sampling repeats border pixels. Wrap sampling reads the opposite edge and is appropriate only when the height source is intended to tile.
A practical height map to normal map procedure
Start the height map to normal map conversion with a source that has one clear meaning: lighter pixels are higher, or darker pixels are higher. Use Invert Height to correct that interpretation before changing vector channels. Begin with modest strength and compare Sobel with Scharr on diagonal as well as horizontal details. Clamp is appropriate for a non-repeating asset; Wrap is appropriate only when both pairs of height-map edges are intended to meet. A clean conversion should keep flat areas close to neutral blue while slopes change smoothly.
Judge the conversion in its final material
The browser can show whether the height map to normal map calculation is internally consistent, but the destination still controls UV scale, tangent basis, texture decoding, compression, and material strength. Import the PNG as non-color normal data, apply it to the mesh and UV set it was prepared for, and move one directional light across both axes. If the relief reverses only vertically, check the green-channel convention. If it breaks at UV islands, investigate tangents and seams before regenerating the height map to normal map output.