方法: ジオメトリ シェーダーをインスタンス設定する
ジオメトリ シェーダーのインスタンス化により、プリミティブごとに同じジオメトリ シェーダーの複数の実行を実行できます。 ジオメトリ シェーダーをインスタンス化するには、メイン シェーダー関数にインスタンス属性を追加し、シェーダー関数本体でインスタンス インデックス パラメーターを識別します。
ジオメトリ シェーダーをインスタンスするには:
インスタンス属性を メイン 関数に追加します。
[instance(24)]
これにより、各プリミティブに対して実行されるインスタンスの数 (最大 32 個) が定義されます。
SV_GSInstanceIDシステム値を、実行中のインスタンスの ID を追跡するために使用できる関数パラメーター リスト内の変数にアタッチします。
uint InstanceID : SV_GSInstanceID
他のジオメトリ シェーダーと同様に、シェーダーをコンパイルして作成します。
その他の詳細は次のとおりです。
- 最大インスタンス数は 32 です。
- 最大頂点数は、インスタンスごとの最大頂点数です。
- 各インスタンス呼び出し (任意のジオメトリ シェーダー呼び出しなど) は、呼び出し数を増やし、暗黙的な RestartStrip() を生成します。
関連トピック