コンピューターグラフィックスのテッセレーションとは


16

最近のゲームでは、テッセレーションと呼ばれるものに気づきました。これをオンにすると、フレームレートが破壊されます。

オンにすると、アンチエイリアシングのように見えることに気付きました。

GPUの正確な機能に関する詳細情報を教えてください。


2
親愛なる、2つの答えと彼らのベストの画像コンピューターグラフィックスなし。
-joojaa

回答:


25

テセレーションは、グラフィックスカード上でプリミティブ(三角形、線、点など)を生成できる技術です。具体的には、現在のジオメトリをより細かいメッシュに繰り返し細分化できます。

これにより、グラフィックカードに比較的粗いメッシュをロードし、より多くの頂点と三角形を動的に生成し、画面上にメッシュをより滑らかに表示できます。

テセレーションの例

ほとんどの場合、このテッセレーションは各単一フレームで新たに行われます。これは、これを有効にするとフレームレートが低下する理由です。

テッセレーションは複数の段階で行われ、頂点シェーダーの後に行われます。

ステージ

各ステージの用語は、APIによって異なります。DirectXでは、ハルシェーダー、ハードウェアテッセレーション、およびドメインシェーダーです。OpenGLでは、これらはテッセレーションコントロールシェーダー、テッセレーションプリミティブ生成、およびテッセレーション評価シェーダーと呼ばれます。

最初と最後の段階はプログラム可能で、実際のテセレーションは固定機能段階のハードウェアによって行われます。

テセレーションコントロールシェーダーで、サブディビジョンのタイプと数を設定します。

次に、ハードウェアテッセレータは、コントロールシェーダーに従ってジオメトリを分割します。

最後に、新しく生成された頂点ごとにテッセレーション評価シェーダーが呼び出されます。このシェーダーでは、生成するプリミティブのタイプ、頂点の間隔、その他多くのことを設定します。このシェーダーは、頂点シェーダーのように、あらゆる種類の頂点ごとの計算にも使用できます。生成された各頂点に対して少なくとも1回呼び出されることが保証されています。

プリミティブでさらに作業を行う場合は、Geometryシェーダーを追加できます。


1
@Nicolありがとう。それに応じて答えを編集しました。
-Dragonseel

7

パイプラインの3つのステージをアクティブにします。

1つはテッセレーションコントロールシェーダー(D3Dのハルシェーダー)で、頂点のセットを調べて、それを別々の三角形に分割する方法を出力します。

2番目は、要求された三角形を生成する固定機能ステージです。

3番目のステージは、生成された頂点ごとに実行され、生成された頂点の重心座標に基づいて正しい場所に配置されるテッセレーション評価シェーダー(D3Dのドメインシェーダー)です。

これは、メッシュがカメラに近いときに、より多くの三角形を生成するために詳細レベルに使用されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.