Share via


方法 :ジオメトリ シェーダーのインスタンス化

ジオメトリ シェーダーをインスタンス化することによって、プリミティブごとに同じジオメトリ シェーダーを複数実行できます。ジオメトリ シェーダーをインスタンス化するには、シェーダーの main 関数に instance 属性を追加し、シェーダー関数本体でインスタンス インデックス パラメーターを指定します。

ジオメトリ シェーダーをインスタンス化するには

  1. main 関数に instance 属性を追加します。

     [instance(24)] 
    

    それにより、プリミティブごとに実行するインスタンス数 (最大 32) を定義できます。

  2. 実行するインスタンスの ID の追跡に使用できる関数パラメーター リストの変数に SV_GSInstanceID システム値を割り当てます。

     uint InstanceID : SV_GSInstanceID 
    
  3. 他のジオメトリ シェーダーと同じように、シェーダーをコンパイルし、作成します。

その他の詳細は次のとおりです。

  • 最大インスタンス数は 32 です。
  • 最大頂点数はインスタンスごとの最大頂点数です。
  • (他のジオメトリ シェーダーの呼び出しと同様に) インスタンスの呼び出しごとに呼び出し数が増加し、暗黙的な RestartStrip() が生成されます。

関連項目

ジオメトリ シェーダーの機能