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