What am I meant to do with my height map? Why does Unreal not support height maps?
There’s no heightmap node because there’s not just one thing the PBR process does with a height map.
You could use it to power:
- Pixel depth offset
- World position offset on tesselated meshes
- Displacement
- Parallax occlusion, either via the simple BumpMap node or the fancier ParallaxOcclusionMapping node
These choices are nonobvious and have tradeoffs, which are all good reasons for there to not be a simple heightmap node.
There’s probably an infinite number of youtube tutorials where there is a displacement node, but that was ditched with the end of version 4, because displacement wasn’t compatible with Nanite.
There are now various methods for displacing meshes, all of which are suited to different uses, but no single method.
Are there any good tutorials for doing any of those things? None of them are obvious.
Here’s one for parallax occlusion mapping: https://www.youtube.com/watch?v=jrJP__JRjEY
Here’s a blueprint I’ve found on the internet that uses the Height map:
The main problem is that there are times the height map Texture Sample turns into a Float 3, so its RGB won’t connect to the Height Map part of the NormalFromHeightmap node. Maybe someone has an idea on how to fix this part.
Great question—and yes, Unreal does support height maps, but not through a dedicated “Height” input like some other engines (e.g., Unity’s HDRP or Marmoset).
In Unreal Engine, height maps are typically used through:
- 
World Position Offset (WPO) – For actual displacement/parallax movement of vertices or pixel shading. - 
You can plug your height map into WPO to create simple surface deformation or fake depth. 
- 
Combine it with a vertex shader setup or use with tesselation (in older rendering paths). 
 
- 
- 
Pixel Depth Offset (PDO) – Helps blend or fade material edges based on screen depth. - Height maps can be remapped and used here for subtle per-pixel blending effects.
 
- 
Virtual Heightfield Mesh (Nanite/Lumen setups) – If you’re using UE5+, height maps can also drive displacement in virtualized terrain setups (like runtime Virtual Heightfield Mesh). 
Note: UE5 dropped support for tessellation in the default renderer, so traditional real-time displacement via height map is more limited unless you’re working in Custom branches or using RVTs.
Let me know your goal—are you trying to create visual depth, terrain displacement, or blending? Happy to help based on use case.
All the best and kind regards,
SFDEMIR
The heightmap can substitute for displacement/WPO, the heightmap for a heightlerp, or for a bump-offset node too. In a pinch you could use it as an AO map but it’s not-really the same thing.
Otherwise you could use it in your logics any way you want.

