Displacement Mapping

Displacement maps are similar to texture maps but are accessed by the vertex engine.

Block Diagram

An additional sampler stage is present in the early part of the vertex pipe, which can sample a displacement map to provide vertex displacement data.

Tessellator block diagram

The displacement map sampler state can be set by the IDirect3DDevice9::SetSamplerState using stage number 256, which is a new stage number. The displacement map texture is set by IDirect3DDevice9::SetTexture.

The map can be presampled or not, which means that it can be ordered in a way that enables the lookup of the displacement values without filtering.

Pre-Sampled Displacement Mapping

These are the API changes that support displacement mapping.