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

UE4でNSight Graphicsを使ったプロファイリング【Online Game-Tech LT 2020】

0cff2c2b515b69a7687f0901132d4f4d?s=47 ai
November 01, 2020

UE4でNSight Graphicsを使ったプロファイリング【Online Game-Tech LT 2020】

Online Game-Tech LT 2020で発表した資料です。
※補足資料: UE4でNVIDIA NSight Graphicsを使ったGPUプロファイリングをしてみる https://ai-gaminglife.hatenablog.com/entry/2020/10/31/212119

0cff2c2b515b69a7687f0901132d4f4d?s=128

ai

November 01, 2020
Tweet

Transcript

  1. UE4でNSight Graphicsを 使ったプロファイリング Online Game-Tech LT 2020

  2. 自己紹介 • ai (@ai_9684_dct) • 新卒一年目のゲームプログラマー • 某コンソール機向けのゲームを開発してます • 主催に誘われたので参加しました

  3. 今日話すこと 「NVIDIA NSight Graphics 」について

  4. NVIDIA NSight Graphicsとは? • NVIDIAが開発したグラフィックアプリケーションのデバッグ・ プロファイリング用解析ツール • OpenGL、DX11・12、Vulkan、DXR etc に対応

    そもそもプロファイリングとは? • アプリケーションのパフォーマンスを測り、ボトルネックを特定すること • あるメッシュの描画にどんなコマンドが発行されているのか、 どのテクスチャを使っているのか、その処理に何msかかるのか……などを調べる
  5. NSight Graphicsの画面

  6. NSightのここがすごい • GPUユニットごとの詳細な稼働率が分かる • シェーダーコードをプロファイラ上で書き換えられる • 信頼と実績のNVIDIA製ソフト

  7. 対抗ソフト • RenderDoc • 超有名。大体これを使っておけばなんとかなる • DXRには対応してない(らしい) • PIX •

    Microsoft製のプロファイラ • DXRに対応している(らしい) • 周りはNSightよりPIX使っている人の方が多い気がする
  8. UE4でNSight Graphics使ってみた • Epicが無料配布している「工場 環境コレクション」を使用 • 導入方法は「私のブログ」に 書いたので後で見てください

  9. テストシーン • 改変して重くなった シーンのボトルネックを プロファイルで特定する 19.46fps

  10. プロファイリング (1/3) • EventViewに表示されるドローコールを「GPUの稼働時間(GPUms)」 に並び替える EventView

  11. プロファイリング(2/3) • Translucency(半透明) の描画に27.3msかかる • 60fps = 1フレーム16.7ms • 30fps

    = 1フレーム33.3ms • 8.2msかけて右図の ポリゴンを描画している ⇒ この正体は?
  12. プロファイリング(3/3) • 最終的な表示と見比べてみる • 煙パーティクルの描画に必要以上のビルボードを使っていた! ⇒ 煙パーティクルの調整で負荷を下げられる

  13. プロファイリング(おまけ) • 今回は非常にわかりやすい例だったが、実際の業務ではひと目では判断 つかないようなボトルネックが沢山見つかった • 見た目以上に頂点数が多いメッシュ • 無駄な計算のせいで負荷になっていたマテリアル • 不必要に多い動的ライティング

    • カリングがほとんど効いてないメッシュ • etc…… ⇒ プロファイラを使って早い内に問題に気づける!
  14. GPUプロファイラのすゝめ • とはいえ学生規模の作品でプロファイラに頼ることは少ない • しかしプロファイラは一度使って見てほしい • UE4やUnityが実際にどのような手続きで描画しているのかがざっくり 理解できる • 将来仕事で使うためのデモンストレーションになる

    • プロファイラを使える学生はレア(たぶんね)
  15. GPUプロファイラのすゝめ • とはいえ学生規模の作品でプロファイラに頼ることは少ない • しかしプロファイラは一度使って見てほしい • UE4やUnityが実際にどのような手続きで描画しているのかがざっくり 理解できる • 将来仕事で使うためのデモンストレーションになる

    • プロファイラを使える学生はレア(たぶんね) • まずは「RenderDoc」を使ってLet’s プロファイル! (だってRenderDocが一番環境構築楽だし……)
  16. 参考資料 • 60fpsアクションを実現する秘訣を伝授 解析編 [Unreal Fest 2020] https://www.slideshare.net/EpicGamesJapan/ue4-festeast2019- 60fpsanalysis •

    ハイパフォーマンスなコア部分の開発手法 〜プロファイル駆動開発のス スメ〜 [CEDEC 2020] https://cedil.cesa.or.jp/cedil_sessions/view/2253