Skip to content
Go back

Porting Detroit: Become Human from PlayStation® 4 to PC – Part 1

· Updated:

web

拙訳

  • 似たようなパイプラインを最後の方にソートされるようにする
    • ステートが少し違うだけのパイプラインステートは内部的に同一のものになる可能性がある
    • 同じものを同時に生成しようとするときにロックが発生するかもしれない
  • VK_EXT_descriptor_indexingを使う
    • 2Dテクスチャ、3Dテクスチャ、キューブテクスチャ、マテリアルバッファを配列1つずつで保持する
    • ドローコールごとに変化する値はメインバッファに格納する
      • リングバッファで実装する
      • マテリアルバッファと行列バッファへのインデックスを保持する
    • マテリアルバッファはテクスチャのインデックスを保持する
  • リソースの可視不可視を追跡して、デスクリプタセットのインクリメンタル更新を実装する
    • 現フレーム用と前フレーム用の2つのリストを用意する
      • 引き続き可視のリソースをコピーする
      • 残りのリソースで可視性の変化を特定する
    • 計算結果の差分を4フレーム分保持する
      • skinnedオブジェクトのモーションベクトルを計算するのに必要
  • DrawIndirectを使う
    • InstanceIDにメインバッファのインデックスを入れる