Skip to content
Go back

Efficient rendering in The Division 2

· Updated:

slides web

拙訳(一部抜粋)

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