描画パイプラインとテッセレーション
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/30 05:07 UTC 版)
「テッセレーション」の記事における「描画パイプラインとテッセレーション」の解説
以下では、(PC用グラフィックスの分野に限定するならば)実質的な標準の1つとなっているマイクロソフト社の"DirectX 11"でのテッセレーション機能について説明する。なおジオメトリシェーダーもまたディスプレースメントマッピングなどでテッセレーションに応用することができる が、マイクロソフトは(性能上の問題から)ジオメトリシェーダーをテッセレーションに使用することを推奨していない 。 DirectX 11ではレンダリングパイプラインの途中(頂点シェーダーとジオメトリシェーダーの間)に新たにテッセレーション機能を加えており、以下の3つのステージから構成される。 ハル シェーダー (hull shader) テッセレータ (tessellator) ドメイン シェーダー (domain shader) ハルシェーダーでは、パッチ (patch) 情報に基づいてポリゴンごとの曲面の制御点 (control points) の算出を行なう。ハルシェーダーはプログラマブルシェーダーであり、ポリゴンの分割数をすべて一様に与えることもできれば、稜線近くだけポリゴンの分割度 (Tess Factor) を増すような工夫も行なえる。 テッセレータでは、ハルシェーダーの指示に従ってポリゴンを実際に分割する。Direct3Dでは元のポリゴンとして3角形、4角形、線分が用いられる。 ドメインシェーダーでは、ハルシェーダーが計算した曲面生成用の制御点に沿ってテッセレータが分割したポリゴンごとの頂点座標を算出する。ドメインシェーダーはプログラマブルシェーダーであり、例えば凹凸データを与えることでディスプレースメントマッピング (Displacement Mapping) も可能である。 テッセレーション処理は描画パイプラインにおけるオプションであり、もしテッセレーションを行なわないならば、上記の3つのステージはスキップすればよい。 DirectX 11では、頂点シェーダーからデータを受け取り、テッセレーションを経て、ジオメトリシェーダーへと送られる構造になっている。 OpenGL 4では、ハルシェーダーに相当するものはテッセレーション制御シェーダー (tessellation control shader, TCS)、テッセレータに相当するものはテッセレーションプリミティブジェネレーター (tessellation primitive generator)、そしてドメインシェーダーに相当するものはテッセレーション評価シェーダー (tessellation evaluation shader, TES) と呼ばれる。
※この「描画パイプラインとテッセレーション」の解説は、「テッセレーション」の解説の一部です。
「描画パイプラインとテッセレーション」を含む「テッセレーション」の記事については、「テッセレーション」の概要を参照ください。
- 描画パイプラインとテッセレーションのページへのリンク