A normal map fakes detail under light. A height map can move the mesh. Same folder of PBR maps, different socket, and most people leave the height unused because Node Wrangler never wires it.
twirl always writes a height with the albedo, normal, roughness, and metallic. Here is how to use it in Blender without exploding the surface.
Bump vs real displacement
Bump (or a normal) only changes shading. The silhouette stays flat. Fine for mid-distance walls, props, and anything in Eevee.
Real displacement moves vertices. Grazing angles show depth. It needs Cycles, subdivision, and a low scale. Use it when the camera is close enough that a flat edge reads as wrong: cobble, cracked concrete, carved wood, wet brick.
You can run both: material set to Displacement and Bump, height driving a Displacement node, normal still in the Principled. That is the usual setup.
Wire the height
In the Shader Editor, add an Image Texture for the height map. Color Space: Non-Color. Add a Displacement node (Vector → Displacement). Height Color into Displacement Height. Displacement output into Material Output → Displacement.
Leave Midlevel at 0.5 unless your map is biased. Start Scale around 0.02 to 0.1. If the mesh turns into spikes, the scale is too high, not the map.
In Material Properties → Settings → Surface, set Displacement to Displacement and Bump (Cycles). Bump Only keeps the silhouette flat no matter what you plug in.
Adaptive subdivision
A flat plane will not displace usefully. Add a Subdivision Surface modifier, set it to Simple, and enable Adaptive Subdivision. Render engine must be Cycles. On current Blender builds adaptive lives on the modifier; older ones also need Feature Set → Experimental.
Dicing Rate around 1.0 is a sane start. Lower for close-ups, higher if memory climbs. Optional: set a Dicing Camera so distant floors stay cheap.
Eevee will not give you true displacement from this path. Preview in Cycles rendered view or you will think nothing happened.
Color space and tiling
Height is data. Non-Color, same as roughness and metallic. Shared Texture Coordinate → Mapping into every image texture so albedo, normal, roughness, metallic, and height tile together. If only the height is scaled differently, the depth fights the normal.
Quads help. Huge n-gons under adaptive subdivision dice into messy strips and the silhouette looks jagged even with a clean height. Loop cuts aligned with the pattern fix more than cranking dicing.
When to skip it
Skip real displacement for tiny props, mobile scenes, and anything that will never get a close camera. Keep the height file anyway; you can still feed a weak bump or parallax later. Unreal and Unity have their own height / parallax / tessellation paths, and the same map works there after you flip the normal green for DirectX.
Generate a set with height included. Wire it once, save the node group, reuse it.
