回答:
テセレーションは、グラフィックスカード上でプリミティブ(三角形、線、点など)を生成できる技術です。具体的には、現在のジオメトリをより細かいメッシュに繰り返し細分化できます。
これにより、グラフィックカードに比較的粗いメッシュをロードし、より多くの頂点と三角形を動的に生成し、画面上にメッシュをより滑らかに表示できます。
ほとんどの場合、このテッセレーションは各単一フレームで新たに行われます。これは、これを有効にするとフレームレートが低下する理由です。
テッセレーションは複数の段階で行われ、頂点シェーダーの後に行われます。
各ステージの用語は、APIによって異なります。DirectXでは、ハルシェーダー、ハードウェアテッセレーション、およびドメインシェーダーです。OpenGLでは、これらはテッセレーションコントロールシェーダー、テッセレーションプリミティブ生成、およびテッセレーション評価シェーダーと呼ばれます。
最初と最後の段階はプログラム可能で、実際のテセレーションは固定機能段階のハードウェアによって行われます。
テセレーションコントロールシェーダーで、サブディビジョンのタイプと数を設定します。
次に、ハードウェアテッセレータは、コントロールシェーダーに従ってジオメトリを分割します。
最後に、新しく生成された頂点ごとにテッセレーション評価シェーダーが呼び出されます。このシェーダーでは、生成するプリミティブのタイプ、頂点の間隔、その他多くのことを設定します。このシェーダーは、頂点シェーダーのように、あらゆる種類の頂点ごとの計算にも使用できます。生成された各頂点に対して少なくとも1回呼び出されることが保証されています。
プリミティブでさらに作業を行う場合は、Geometryシェーダーを追加できます。