In this paper we present an algorithm capable of rendering a displacement mapped triangle mesh interactively on latest GPUs. The algorithm uses only pixel shaders and does not rely on adaptively adding geometry. All sampling of the displacement map takes place in the pixel shader and bi- or trilinear filtering can be applied to it, and at the same time as the calculations are done per pixel in the shader, the algorithm has automatic level of detail control. The triangles of the base mesh are extruded along the respective normal directions and then the resulting prisms are rendered by casting rays inside and intersecting them with the displaced surface. Two different implementations are discussed in detail.
Johannes Hirche, Alexander Ehlert, Michael C. Dogg