大量描画・実装基盤 · 3 / 10

インダイレクト描画

GPUバッファの引数から描画数を決める。

動くデモで比較する

増減する破片

同じ時刻で比較
A比較対象
CPUで個数を渡すモデル

CPUで個数を渡すモデル

Bインダイレクト描画100%
GPU側で描画数を決められる

GPU側で描画数を決められる

デモを読み込み中…

時間を動かすと停止して観察できます。変化量 0% で A と同じ状態、100% で B の効果を表示します。8 秒で繰り返します。

見るポイント:GPUバッファから個数を読む → 生存数だけ描く。

用途と変化を理解するための簡略化した動作モデルです。元のアルゴリズムや描画方式を完全に実装したものではなく、表示する処理数は実測性能ではありません。

コマ送りで解説を読む

例: 増減する破片

  1. 1. 開始

    描画数が変わる

  2. 2. 変化

    GPUバッファから個数を読む

  3. 3. 結果

    生存数だけ描く

GPU側で描画数を決められる。時間変化を示す模式図です。実際の描画結果や処理速度を再現したものではありません。

技法のしくみ

  1. 1. 入力

    GPU 側の描画引数

  2. 2. 処理

    バッファから引数を読む

  3. 3. 結果

    CPU が数を渡さず描画

インダイレクト描画のしくみを示す模式図。入力・処理・結果の関係を表し、実際の数値や描画結果は実装によって異なります。

さらに調べる

Unity ComputeShader ↗

この分野の参考資料です。個々の項目を直接説明する資料とは限りません。