Share via


方法: ジオメトリ シェーダーをインスタンス設定する

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

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

  1. インスタンス属性を メイン 関数に追加します。

    [instance(24)]
    

    これにより、各プリミティブに対して実行されるインスタンスの数 (最大 32 個) が定義されます。

  2. SV_GSInstanceIDシステム値を、実行中のインスタンスの ID を追跡するために使用できる関数パラメーター リスト内の変数にアタッチします。

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

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

  • 最大インスタンス数は 32 です。
  • 最大頂点数は、インスタンスごとの最大頂点数です。
  • 各インスタンス呼び出し (任意のジオメトリ シェーダー呼び出しなど) は、呼び出し数を増やし、暗黙的な RestartStrip() を生成します。

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