Upgrade to Pro — share decks privately, control downloads, hide ads and more …

レイトレ時代のゲームグラフィックス Vol.2 - ハイエンドタイトル制作向けゲーム実行環境と...

レイトレ時代のゲームグラフィックス Vol.2 - ハイエンドタイトル制作向けゲーム実行環境とつながる制作環境の取り組み紹介

CEDEC2023の講演資料です。

講演タイトル:レイトレ時代のゲームグラフィックス Vol.2 - ハイエンドタイトル制作向けゲーム実行環境とつながる制作環境の取り組み紹介
講演者:森重 伸也

セッションの内容:
本セッションでは、次世代のハイエンドゲーム制作を見据えて開発しているレイトレベースのゲーム実行環境と制作環境の取り組みを紹介します。

前回の講演、CEDEC 2020年 レイトレ時代のゲームグラフィックスVol. 1 でNVIDIA Falcor を使ったリファレンス環境構築を紹介しました。
今回は、リファレンス環境からゲーム実行環境の構築に進みました。その過程をご紹介します。
簡単な技術デモも予定しています。
具体的には、下記2点について説明します。

1. ゲーム実行環境
NVIDIA Falcor からレイトレベースのゲーム実行環境へ
リアルタイムレイトレの利点と課題
ReSTIR ベースの綺麗な光と影を生み出すリアルタイム大域照明

2. つながる制作環境
USD ベースのつながるゲーム制作環境
NVIDIA Omniverse を活用したグラフィックスデザインとレベルデザインの並行開発

Bandai Namco Studios Inc.

December 15, 2023
Tweet

More Decks by Bandai Namco Studios Inc.

Other Decks in Technology

Transcript

  1. 講演者紹介 • 森重 伸也 / SHINYA MORISHIGE • 2019年バンダイナムコスタジオ入社。主にゲームエンジンのリアルタイム ライティング、リアルタイムレイトレーシングを担当。

    • 最近はハイエンドグラフィックスデモ制作、グラフィックスでAI 活用の社 内推進に協力。ファミリーベーシックでプログラミングに触れ、パターン 認識を専攻し、60fps 必須な家庭用ゲーム制作等を経て現職。最近パリと南 仏に行き、 Pont du Gard など、現実の古くて新しい美を体験して、ゲーム ではまだやることがあると実感 MORISHIGE 2023 https://cedil.cesa.or.jp/cedil_sessions/view/2509 最近の社外向けアウトプット NVIDIA RTX 5000 Ada GPU プロモーション リアルタイムパストレを使ったTEKKEN 8 画像提供 最近の講演 CEDEC 2021 レイトレ時代のゲームグラフィックス、地に足をつけて備えよう - NVIDIA Falcor で次世代品質のリアルタイム物理ベース照明を手軽に素早く検証する - MORISHIGE 2023
  2. 制作環境 feat. Omniverse コンセプト デザイン ゲーム実行環境 社内 Omniverse ove.bns.jp USD

    で蓄積 デザイナとアーティストは USD Composer 、エディタ で編集とリファレンス確認 ゲーム実行環境 内製ゲーム実行環境 “M” 商用ゲームエンジンランタイム デザイン制作環境 各種エディタ
  3. 開発環境 項目 デスクトップPC ノートPC Omniverse サーバPC CPU Xeon, 8 cores

    Core-i 9, 14 cores Xeon, 8 cores GPU RTX 3090 RTX 5000 Ada RTX 3080 Ti RTX 5000 Ada RTX A6000 VRAM 24 GB 16 GB 32 GB RAM 32 GB 64 GB 32 GB SSD 1 TB 2 TB 1 TB OS Windows 11 Enterprise 22H1 Windows 11 Enterprise 22H1 Ubuntu 20.04.6 LTS Linux DirectX 12.1 12.1 - DXR 1.1 1.1 -
  4. • • • • USD – Universal Scene Description 出典:Developing

    Northlight: OpenUSD content workflows - Remedy (remedygames.com) 出典:Pixar 社のUSD パイプライン https://indyzone.co.jp/archives/1715
  5. • – • – • • • • – •

    – – 動機 ファラデーケージ https://en.wikipedia.org/wiki/Faraday_cage
  6. 今回の制作環境 – 一貫性のある並行開発 社内 Omniverse ove.bns.jp ゲーム実行環境 内製ゲーム実行環境 “M” デザイン制作環境

    各種エディタ ・USD でデータの一貫性を確保 ・レイトレで見た目の一貫性を確保しながらリファレンスとゲームのイテレーションを高速に回す
  7. • • – • – • • デザインとエンジニアリングの因数分解 社内 Omniverse

    ゲーム実行環境 内製ゲーム実行環境 “M” デザイン制作環境 各種エディタ
  8. USD ベースのワークフロー • • • • • • • 出典:Pixar

    社のUSD パイプライン https://indyzone.co.jp/archives/1715
  9. • – – – – • • • – –

    NVIDIA Omniverse 活用
  10. • • – – • – • – – •

    – コンセプトを決める MORISHIGE 2023 MORISHIGE 2023 MORISHIGE 2023
  11. システムの考え方 - メインループ 1.たくさんのモノがゲーム物理法則に従い、いろいろなコトが起きる 2.そのモノコトにプレイヤーがインタラクションできて遊びが生まれる 3.その世界に居続けたくなるほどの圧倒的で美しい景観と自然環境 ゲームのメインループは1秒間に60回(120回) 実行している → 映画は24回、最近はそれ以上

    モノコトのデータは、メモリ上にある Input Render Update | 0 | 1 | 2 | 3 | 4 | ……… 1,000 …… | 10,000 | …… | 10^6 |… メモリ たくさんのモノの位置や状態について、 CPU とGPU が高速に読み書き出来るデータ構造が必要 メモリは有限なので、データストリーミングが必要 たくさんのコトをうまく調停できる仕組みが必要 風が吹けば桶屋だけでなく、酒屋も儲かる 60回ループ/秒
  12. システムの考え方 - たくさんのモノを動かす たくさんのモノの位置や状態について、 CPU とGPU が高速に読み書き出来るデータ構造が必要 例:世界にある100体のモノの位置を更新したい → 位置データがあるメモリを読み取って、必要なら書き換える

    → メモリの読み書きは、連続した場所にデータがまとまっていると高速にできる 位置を読み取る 描画判定 位置を書き換える | 0 | 1 | 2 | 3 | 4 | ……… 1,000 …… | 10,000 | …… | 10^6 |… メモリ 100回ループ Input Render Update 60回ループ/ 秒 16.66.. ms/ループ 1体の読み書き 0.1 ms 60 x 100 x 0.1 = 600 ms → 間に合わない 1体の読み書き 0.001 ms 60 x 100 x 0.001 = 6 ms → OK, 6 < 16.66.. → 何事も余裕が必要 → なるべく短縮したい
  13. たくさんのモノを動かす - データ指向設計 CPU とGPU が高速に読み書き出来るデータ構造が必要 メモリの読み書きは、連続した場所にデータがまとまっていると高速にできる → 位置だけを読み書きしたいのに、他のデータにもアクセスすることになり、無駄が生じている まずは、データ指向設計でメモリ読み書きに適したデータ構造に変えよう

    ・名前 ・位置 ・速度 ・メッシュ ・マテリアル メモリ(従来) ゲームオブジェクト [0] 名前 位置 速度 メッシュ マテリアル … [1] 名前 位置 速度 メッシュ マテリアル [99] 名前 位置 速度 メッシュ マテリアル [50] 名前 位置 速度 メッシュ マテリアル … メモリ(データ指向) 位置を読み取る 描画判定 位置を書き換える [0] 位置 [1] 位置 … [50] 位置 100回ループ … [99] 位置 [0] メッシュ [1] メッシュ … [50] メッシュ … [99] メッシュ
  14. たくさんのコトが起きる – ジョブ指向設計 たくさんのコトをうまく調停できる仕組みが必要 風が吹けば桶屋だけでなく、酒屋も儲かる ジョブ(Job)指向でジョブ同士をつなげて実現する ジョブとは、1つの仕事(処理)を実行する最小単位(Thread : Job =

    1 : N) コンピューター上では、同期、非同期で実行できる Input Render Update 60回ループ/秒 Job コントローラ入 力 Job AI 入力 位置の更新 モノ カメラなど 環境の更新 草木、岩 骨の更 新 物理シ ム AI Navi 描画準備 レイトレ メッシュ 描画 ポストプロセ ス、HDR エフェクト 描画 テクスチャ ストリーミン グ 地形や草木 ストリーミン グ
  15. • • • • ゲーム実行環境 M RHI Renderer World Core

    Physics Animation Graphics VFX Sound Game AI Module Framework Omniverse Plugin Test World Graph Application
  16. • データ構造 - USD と BVH の対応付け 項目 USD ゲーム実行環境

    Mesh UsdGeomMesh 1 BLAS Sub Mesh UsdGeomSubset 1 VB, BLAS Instance Instance Point Instancer (Prototype) 1 BLAS Instance Material UsdShade Material / MDL Skeleton UsdSkel Node Graph Physics Collision Physics Rigidbody UsdCollision UsdRigidbody JoltPhysics CollisionShape JoltPhysics Rigidbody
  17. • • info:mdl:sourceAsset:subIdentifier で判定 • TraceRay で実装。Inline Ray Tracing はShader

    Table が使えないので マテリアル、シェーダー 項目 USD ゲーム実行環 境 Material UsdShadeMaterial class Material PreviewSurface UsdShader class Shader OmniSurface aiStandardSurface UsdShader Class OmniSurface OmniPBR UsdShader Class OmniPBR
  18. これまでは、 大量の光源を ”一部だけ” リアルタイムに扱えたけど、陰影ができなかった 従来: 面光源の影をレイトレースすることができない 影とAmbient Occlusion について、複数の手法を組み合わせて対処 →

    アーティストが調整するのがとっても時間がかかる ReSTIR: 最大数百万個のダイナミックなライトをリアルタイムで表示 1つの手法で、ゲーム内のあらゆるオブジェクトが発光し、ダイ ナミックな影とAmbient Occlusion を落とすことができる 出典: https://developer.nvidia.com/rtxdi ReSTIR – Spatiotemporal reservoir resampling 出典: Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting | ACM Transactions on Graphics
  19. ReSTIR GI – Global Illumination 出典:https://benedikt-bitterli.me/resources/ 出典:https://research.nvidia.com/publication/2021-06_restir-gi-path-resampling-real-time-path-tracing OFF (BRDF Sample)

    ReSTIR GI ON 間接照明に対して良質なライトサンプル生成 一次反射のBRDF で見つかった全ての物体表面をライトサンプルとして生成
  20. • • – – – – • 利点と課題 出典:Part 1:

    Rendering Games With Millions of Ray Traced Lights https://www.youtube.com/watch?v=QWsfohf0Bqk 緑枠で囲んだ低周波の領域 完全に照明されている広い領域 完全に影になっている広い領域 共通ではない、個別の例は、 赤枠で囲んだ高周波の可視性による影
  21. 良い点 1. USD レイヤーで担当ごとに非破壊の作業ができること 2. デザイナは、Maya、Omniverse のUSD Composer(エディタ)で確認、エンジニアはゲーム実行環 境で再現の並行作業ができること 3.

    USD はグラフィックスアセットだけでなく、物理、サウンド、AI、ゲームロジックなどいろいろな ものを入れることができる 悪い点 1. 開発中のため、マテリアル対応は検証が必要(e.g., Arnold Standard Surface 互換は今回は自作) 2. USD を取り扱うには、基礎概念の理解が必要で、アーティスト(デザイナ)向けの布教が必須 まとめ – USD ベースワークフローの良い点と悪い点