方法 :テッセレータ ステージの初期化

テッセレーションでは通常、コンパクトなユーザー定義のパッチ モデルを、プログラム可能な量の詳細を含むジオメトリに拡張します。一般にジオメトリは、詳細なサーフェス ジオメトリを表す三角形のセットになります。

テッセレータ ステージは、サーフェスをテッセレーションまたはタイル化する 3 つのステージの 2 つ目です。最初のステージは、ハル シェーダー ステージです。このステージは、パッチごとに 1 回動作し、次のステージ (固定機能テッセレータ) の動作を構成します。また、ハル シェーダーは、テッセレータを迂回して直接 3 つ目のステージ (ドメイン シェーダー ステージ) に送られる出力コントロール ポイントやパッチ定数などのユーザー定義の出力を生成します。ドメイン シェーダーは、テッセレータ ステージ ポイントごとに 1 回呼び出され、サーフェス位置を評価します。

テッセレータ ステージは、固定機能ステージです。生成するシェーダーおよび設定するステートはありません。テッセレータ ステージは、ハル シェーダー ステージからセットアップ ステートをすべて受け取ります。ハル シェーダー ステージが初期化されたら、テッセレータ ステージは自動的に初期化されます。

テッセレータ ステージを初期化するには

  1. ID3D11DeviceContext::HSSetShader を使用して、ハル シェーダー ステージを初期化します。

     void HSSetShader(   ID3D11HullShader *pHullShader,     ID3D11ClassInstance *const *ppClassInstances,   UINT NumClassInstances ); 
    

    ppClassInstances は、ID3D11ClassInstance ポインターによって表されるシェーダー インターフェイスの配列、NumClassInstances によって表されるインスタンス数です。使用されない場合、これらのパラメーターは、それぞれ NULL および 0 に設定できます。

ハル シェーダー ステージが初期化されたら、ドメイン シェーダー ステージも初期化する必要があります。

関連項目

テッセレーションの概要