ディスプレイスメントマッピングは、バンプ、ノーマル、パララックスマッピングとは対照的なコンピュータグラフィックスの代替手法であり、テクスチャまたはハイトマップを使用して、テクスチャ付きサーフェス上の点の実際の幾何学的位置が、多くの場合、サーフェスの局所法線に沿って、サーフェス上の各点でテクスチャ関数が評価する値に応じて変位する効果を生み出します。 [ 1 ]これにより、サーフェスに奥行きと詳細感が与えられ、特に自己遮蔽、自己影付け、シルエットが可能になります。一方で、大量の追加ジオメトリが必要となるため、この種の手法の中で最もコストがかかります。
長年にわたり、ディスプレイスメントマッピングはPhotoRealistic RenderManのようなハイエンドレンダリングシステムの特殊な機能であり、 OpenGLやDirectXといったリアルタイムAPIではようやくこの機能が使われるようになったばかりでした。その理由の一つは、ディスプレイスメントマッピングの初期実装では、画面上のピクセルサイズに一致するサイズのマイクロポリゴンを十分に得るために、サーフェスの適応的なテッセレーションが必要だったからです。
ディスプレイスメントマッピングには、テクスチャマップを使用してディスプレイスメントの強度を調整する「マッピング」という用語が含まれます。ディスプレイスメントの方向は通常、局所的なサーフェス法線です。今日では、多くのレンダラーがプログラマブルシェーディングをサポートしており、任意の高い周波数で高品質な(多次元の)プロシージャルテクスチャやパターンを作成できます。この場合、テクスチャマップは使用されないため、「マッピング」という用語の使用は議論の余地があります。そのため、今日では、テクスチャマップに基づくディスプレイスメントも含む包括的な概念を指すために、より広い意味での「ディスプレイスメント」という用語がよく使われます。
REYESアルゴリズム、あるいはマイクロポリゴンに基づく同様の手法を用いたレンダラーは、約20年前に登場して以来、任意の高周波数でのディスプレイスメントマッピングを可能にしてきた。
The first commercially available renderer to implement a micropolygon displacement mapping approach through REYES was Pixar's PhotoRealistic RenderMan. Micropolygon renderers commonly tessellate geometry themselves at a granularity suitable for the image being rendered. That is: the modeling application delivers high-level primitives to the renderer. Examples include true NURBS- or subdivision surfaces. The renderer then tessellates this geometry into micropolygons at render time using view-based constraints derived from the image being rendered.
Other renderers that require the modeling application to deliver objects pre-tessellated into arbitrary polygons or even triangles have defined the term displacement mapping as moving the vertices of these polygons. Often the displacement direction is also limited to the surface normal at the vertex. While conceptually similar, those polygons are usually a lot larger than micropolygons. The quality achieved from this approach is thus limited by the geometry's tessellation density a long time before the renderer gets access to it.
This difference between displacement mapping in micropolygon renderers vs. displacement mapping in a non-tessellating (macro)polygon renderers can often lead to confusion in conversations between people whose exposure to each technology or implementation is limited. Even more so, as in recent years, many non-micropolygon renderers have added the ability to do displacement mapping of a quality similar to that which a micropolygon renderer is able to deliver naturally. To distinguish between the crude pre-tessellation-based displacement these renderers did before, the term sub-pixel displacement was introduced to describe this feature.
Sub-pixel displacement commonly refers to finer re-tessellation of geometry that was already tessellated into polygons. This re-tessellation results in micropolygons or often microtriangles. The vertices of these then get moved along their normals to achieve the displacement mapping.
True micropolygon renderers have always been able to do what sub-pixel-displacement achieved only recently, but at a higher quality and in arbitrary displacement directions.
Recent developments seem to indicate that some of the renderers that use sub-pixel displacement move towards supporting higher level geometry too. As the vendors of these renderers are likely to keep using the term sub-pixel displacement, this will probably lead to more obfuscation of what displacement mapping really stands for, in 3D computer graphics.
In reference to Microsoft's proprietary High Level Shader Language, displacement mapping can be interpreted as a kind of "vertex-texture mapping" where the values of the texture map do not alter pixel colors (as is much more common), but instead change the position of vertices. Unlike bump, normal and parallax mapping, all of which can be said to "fake" the behavior of displacement mapping, in this way a genuinely rough surface can be produced from a texture. It has to be used in conjunction with adaptive tessellation techniques (that increases the number of rendered polygons according to current viewing settings) to produce highly detailed meshes.