Displacement mapping takes a texture and uses it to relocate vertices on a mesh. This allows an image to be used to generate unique or shifting models from a simple mesh like a plane or subdivided cube. # Connections ## Height Mapping Fundamentally identical to a [[Height Mapping]] but can also be considered an extension of it. For example, a lot of people online say that displacement mapping is too expensive for real-time rendering, while [[Height Mapping]] has been used for decades for terrain. I think it is just that the ahead-of-time rendering people are more likely to use large subdivisions which generate a lot of extra vertices to smooth out the displacement map. But in real-time applications, a low amount of displacement will be combined with a normal map to produce a similar effect. ## Dynamic Geometry Displacement mapping can be used with [[Tessellation]] to generate additional geometry or LOD on-the-fly as needed. ## Higher Dimensions Also, I know that it is possible to displace is more directions than just straight out from the surface (which traditional [[Height Mapping]] is limited to) using a vertex shader, but I haven't seen a lot of people talking about this. It should be possible to use an encoding similar to [[Normal Mapping]] to displace vertices in all 3 dimensions rather than just one within a single RGB image. # References - https://gamedev.stackexchange.com/questions/65755/whats-the-difference-between-displacement-mapping-and-height-mapping - https://developer.nvidia.com/gpugems/gpugems2/part-i-geometric-complexity/chapter-7-adaptive-tessellation-subdivision-surfaces