Skip to content
Go back

拙訳「Efficient rendering in The Division 2」

· Updated:

[Lejdfors and Aguaviva 2019Lejdfors, C. and Aguaviva, R. 2019. Efficient rendering in The Division 2. Game Developers Conference. https://gpuopen.com/download/gdc-2019-agtd1-efficient-rendering-in-the-division-2.pdf.]

slides web

  • render contexts
    • D3D11のようなバインディングベースのAPI
  • render queueはレンダリングするオブジェクトを詰め込んだもの
    • ソート戦略でテンプレート化される
    • 入れるキューは、カリング結果のビットマスクとオブジェクト自身のフラグを組み合わせて選択
    • 仕上げに:
      • キュー全体でステートを組み上げる
      • インスタンスごとに16バイトのデータを用意して、キューごとにまとめてアップロード
      • インスタンスグループごとにステートをセットしてDrawIndexedInstanced
  • transientなデータはステージングを経由してローカルにコピーする
    • シェーダではリードオンリー
    • 速度よりフレームの安定性を重視した結果
  • Queue Manager
    • コマンドリストのReset, Close, Execをまとめて面倒を見る
    • 各API呼び出しによるストールを非同期化により隠蔽する
  • Async compute