What Displacement Maps Do
A displacement map is a grayscale image that physically moves mesh vertices along their normals. White pixels push vertices outward, black pixels pull them inward. Unlike normal maps (which only fake surface detail through lighting), displacement maps create actual geometric detail. A flat plane with a cobblestone displacement map becomes a genuinely uneven surface with real silhouette variation.
Height Maps vs. Displacement Maps
The terms are often used interchangeably, but technically: a height map is the grayscale source image, and displacement is the rendering technique that uses it. In practice, any seamless texture’s grayscale conversion can serve as a height map. For stone walls, convert the albedo to grayscale — lighter stones protrude, mortar joints recede.
Parallax Occlusion Mapping
Parallax Occlusion Mapping (POM) simulates displacement without adding geometry. It ray-marches through the height map per pixel, shifting the UV coordinates based on view angle. The result looks like real displacement at moderate viewing angles but costs no extra vertices. POM works well on flat or gently curved surfaces like brick walls and bark surfaces.
Tessellation-Based Displacement
True displacement requires subdividing the mesh. Modern engines use hardware tessellation or virtual geometry (Nanite in UE5) to add vertices at render time. The displacement map then offsets these vertices. This creates correct silhouettes and self-shadowing but costs more in vertex processing. Use tessellation-based displacement for hero assets and close-up surfaces; use POM for everything else.
Performance Considerations
Displacement is expensive. Each additional subdivision level quadruples the vertex count. Use displacement only where silhouette changes are visible — ground surfaces viewed at grazing angles, close-up hero props, and VR environments where depth perception makes flat surfaces obvious. For distant surfaces, normal maps provide sufficient detail at a fraction of the cost.