[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
-
Upload
-epic-games-japan -
Category
Software
-
view
5.999 -
download
2
Transcript of [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
![Page 1: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/1.jpg)
#UE4CEDEC
UE4 プロファイリングツール総おさらい(グラフィクス編)
Nori Shinoyama Senior Support Engineer @ Epic Games Japan
![Page 2: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/2.jpg)
#UE4CEDEC
はじめに最適化の前にプロファイル
![Page 3: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/3.jpg)
#UE4CEDEC
本日の内容
UE4のプロファイリングツールを俯瞰で眺めながら、
UE4上でどのように
プロファイルしていくのかを見ていきます
![Page 4: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/4.jpg)
#UE4CEDEC
なぜプロファイル?
どうしてそんな狭く地味な範囲を?
最適化じゃないの?
![Page 5: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/5.jpg)
#UE4CEDEC
なぜプロファイル?あるあるCase.1
ありがたいことに、コミュニティやライセンシ様のおかげで、ネット上に沢山の最適化Tipsが出てくるようになりました。
Tips1
Tips2
Tips3
Optimization
![Page 6: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/6.jpg)
#UE4CEDEC
なぜプロファイル?あるあるCase.1
でも、こんなときはどうしましょう?
「今週中にこのシーン60fpsで安定させて。まだ20fpsしか出ないけど」
Tips1
Tips2
Tips3
Optimization一つしかできないなら。。どれ?
??
??
??
![Page 7: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/7.jpg)
#UE4CEDEC
なぜプロファイル?あるあるCase.1
でも、こんなときはどうしましょう?
「今週中にこのシーン60fpsで安定させて。まだ20fpsしか出ないけど」
Tips1
Tips2
Tips3
Optimization
Profiling
どれが一番効果的?
![Page 8: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/8.jpg)
#UE4CEDEC
なぜプロファイル?あるあるCase.2
Tips1
Tips2
Tips3
Optimization。。本当に必要?
全部やりました!!
![Page 9: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/9.jpg)
#UE4CEDEC
なぜプロファイル?あるあるCase.2
半透明は重いらしいので、エフェクトは減らしました!
すべてのテクスチャ解像度を512に落としました!
DrawCall増えると怖いのでオブジェクトをまとめました!
とりあえずライトはMovableをやめて全部Stationaryに!
![Page 10: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/10.jpg)
#UE4CEDEC
なぜプロファイル?あるあるCase.2
Tips1
Tips2
Tips3
Optimization
Profiling
どれはやらなくていい?
![Page 11: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/11.jpg)
#UE4CEDEC
どちらも極端な例ですが、
実際の制作現場でよくあることだと思います。
![Page 12: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/12.jpg)
#UE4CEDEC
プロファイルしない最適化は危険
中身を知らずにとりあえずその設定を試したり。。
ボトルネックと違うところを最適化したり。。
最適化に時間や労力をかけても、
パフォーマンスは上がらず、
クオリティだけ下がってしまったり。。
![Page 13: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/13.jpg)
#UE4CEDEC
なぜプロファイル?
最適化の前に、
開発初期から、日常的に、
プロファイルする癖を
ボトルネックの予測精度を上げて。。。
ボトルネック部分 -> 短時間で効率的な最適化を
ボトルネックじゃない部分 -> 贅沢に使いクオリティアップに
![Page 14: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/14.jpg)
#UE4CEDEC
UE4の充実したプロファイリングツール
![Page 15: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/15.jpg)
#UE4CEDEC
本日の内容 (再掲)
UE4のプロファイリングツールを俯瞰で眺めながら、
UE4上でどのように
プロファイルしていくのかを見ていきます
![Page 16: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/16.jpg)
#UE4CEDEC
本講演の対象者
UE4を触って頂いている
技術寄りのアーティストやデザイナの方がメインです
(触っていない方は、UE4はこんな機能があるのか~と眺めて頂ければ)
![Page 17: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/17.jpg)
#UE4CEDEC
本講演で話さないこと
• コリジョン、ネットワーク、アニメーションなどのプロファイル手法
• モバイルやVRに特化した内容
• きれいな絵作りする方法
• プラットフォーム固有の話
![Page 18: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/18.jpg)
#UE4CEDEC
備考
• Twitter等での情報拡散にご協力ください。– #UE4CEDEC
• 本資料はすぐにネットにアップされます。
• エディタは英語版を使います。
• UE4.17をベースにします。
• 質疑応答は時間があまれば。。
![Page 19: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/19.jpg)
#UE4CEDEC
本講演の目次
1. はじめに2. 基本のプロファイリングツール 13. プロファイルの流れ4. 基本のプロファイリングツール 25. Showcase6. まとめ&おまけ
![Page 20: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/20.jpg)
#UE4CEDEC
本講演の目次
1. はじめに2. 基本のプロファイリングツール 13. プロファイルの流れ4. 基本のプロファイリングツール 25. Showcase6. まとめ&おまけ
![Page 21: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/21.jpg)
#UE4CEDEC
基本のプロファイリングツール 1Console Command & CVars
![Page 22: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/22.jpg)
#UE4CEDEC
Console Command &
Console Variables (CVars)
![Page 23: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/23.jpg)
#UE4CEDEC
Console Command & Variables (CVars)
コマンドによって、ゲーム内の挙動を変えたり情報を出力する方法(大文字小文字の区別はありません)
![Page 24: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/24.jpg)
#UE4CEDEC
Console Command & Console Variables (CVars)一覧表の作成
Help -> “Console Variables”を選ぶ事によって、全コマンドのHTMLヘルプを出力
![Page 25: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/25.jpg)
#UE4CEDEC
Console Command & Console Variables (CVars)一覧表
.htmlファイルで、各コマンドとそのヘルプを出力してくれる
![Page 26: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/26.jpg)
#UE4CEDEC
Command入力方法
![Page 27: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/27.jpg)
#UE4CEDEC
Command / CVar の送り方 1
開発機にキーボードを指して、コンソールウィンドウを立ち上げる(Editorでももちろん可能。Output Windowからも入力できる。)
![Page 28: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/28.jpg)
#UE4CEDEC
Console Windowを立ち上げショートカットの指定
Project Settings/
Input
の一番下に
“Console Keys”
という設定があり、
そこで指定できます。
![Page 29: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/29.jpg)
#UE4CEDEC
Command / CVar の送り方 2
Blueprintで送る“Execute Console Command” ノード
![Page 30: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/30.jpg)
#UE4CEDEC
Command / CVar の送り方 3
SessionFrontendを使って、PC上から実機で動いているアプリケーションに対してコマンドを送る
![Page 31: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/31.jpg)
#UE4CEDEC
Command / CVar の送り方 4
起動時引数で送る–execmds=“コマンドA, コマンドB”
”,” で複数コマンドを区切る
![Page 32: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/32.jpg)
#UE4CEDEC
では、プロファイルに使えるコマンドを見ていきます
![Page 33: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/33.jpg)
#UE4CEDEC
Stat fps / unit / unitgraph
![Page 34: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/34.jpg)
#UE4CEDEC
Console Commandstat fps / stat unit / stat unitgraph
Stat unitgraph
Stat fps
Stat unit
CPUやGPUの負荷を表示する基本コマンド
![Page 35: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/35.jpg)
#UE4CEDEC
レンダリングから見た Game / Draw / GPU
Game Draw GPU
CPU GPU
世界のアップデート
時計の針を進めてキャラクタの動き物理などを確定
Gameから来たシーンを解釈してGPU描画命令(DrawCallなど)に変換する
GPUが実際に頂点やピクセルを計算して絵をつくる
![Page 36: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/36.jpg)
#UE4CEDEC
Game Draw GPU
合計がそのフレームの処理時間じゃないの??
![Page 37: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/37.jpg)
#UE4CEDEC
Game / Draw / GPUの並列処理
Game
Draw
GPU
1
1
1
Display 10
VSync VSync VSync
2
2
2
2
各処理が並行で進んでいるため、Game/Draw/GPUの最大がそのフレームの処理時間になる。
この図はあくまで概要です。実際のスレッドの流れは、プラットフォームやレンダリング手法で異なります。
![Page 38: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/38.jpg)
#UE4CEDEC
本日はDrawとGPUのプロファイルがメイン
Game Draw GPU
CPU GPU
![Page 39: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/39.jpg)
#UE4CEDEC
Game Draw GPU
CPU GPU
GPUの処理負荷を見てみる
![Page 40: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/40.jpg)
#UE4CEDEC
GPUの処理負荷を見てみる
![Page 41: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/41.jpg)
#UE4CEDEC
GPUの処理負荷を階層的に出すConsole Command“ProfileGPU” (Default shortcut: “Ctrl + Shift + ,”)
![Page 42: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/42.jpg)
#UE4CEDEC
コンソールなどの実機では、ウインドウは出ずに出力ウィンドウにテキストで表示できます。
![Page 43: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/43.jpg)
#UE4CEDEC
Tips (Advanced)BasePass内部で、各メッシュ単位の負荷を出さない機種もある
Editor Console
![Page 44: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/44.jpg)
#UE4CEDEC
Tips (Advanced)実機でBasePassのメッシュ単位の処理負荷を出力する方法
• r.ShowMaterialDrawEvents– ただし、RHIThreadがOffじゃないと動作しない。
• r.RHISetGPUCaptureOptions– 一括設定コマンド
– 自動でRHIThreadをOffに
• ※DrawThreadの負荷が跳ね上がります。
– 計測するときにOnにして、それ以外ではOffに。
![Page 45: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/45.jpg)
#UE4CEDEC
Console Command
Stat GPU
ProfileGPUのリアルタイム表示版
![Page 46: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/46.jpg)
#UE4CEDEC
レンダリングの流れは去年のCEDECで講演させていただきましたSlideShareにUpしてあるので、良ければご参考にしてください
![Page 47: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/47.jpg)
#UE4CEDEC
Game Draw GPU
CPU GPU
profilegpu
stat gpu
![Page 48: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/48.jpg)
#UE4CEDEC
Game Draw GPU
CPU GPU
Drawの処理負荷を見てみるまえに。。。
![Page 49: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/49.jpg)
#UE4CEDEC
Game Draw GPU
CPU GPU
CPU側の処理負荷確認方法
![Page 50: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/50.jpg)
#UE4CEDEC
ConsoleCommandStat dumpframe
1フレームのCPU処理フローの階層表示
![Page 51: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/51.jpg)
#UE4CEDEC
ConsoleCommandStat dumpframe
1フレームのCPU処理フローの階層表示
17.773ms ( 27) - Thread_12a6c_0 - RenderThread16.084ms ( 1) - RenderViewFamily
7.650ms ( 1) - DeferredShadingSceneRenderer Lighting 7.258ms ( 1) - Lighting drawing
2.104ms ( 1) - Base pass drawing 1.946ms ( 1) - StaticDrawList drawing
1.368ms ( 1) - InitViews
例: Dumpされた部分のRenderThread部分
![Page 52: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/52.jpg)
#UE4CEDEC
Stat dumpframeオプションで見やすい形に調整可能
例: Drawの処理負荷を計測する方法
stat dumpframe -root=renderthread –depth=5 -ms=.1
どの処理から下を表示するか?例: GamethreadRenderthreadInitviews
何階層深くまで表示するか
何ms以上の処理だけ記載するか
![Page 53: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/53.jpg)
#UE4CEDEC
Console Commandstat startfile / stopfile
複数フレームをキャプチャして、後々にエディタで処理負荷をチェックする
![Page 54: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/54.jpg)
#UE4CEDEC
stat startfile / stopfile使い方
Stat stopfileと打ち込むと、プロファイルデータを出力する
書き出し先はログ(LogStats)に出る
![Page 55: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/55.jpg)
#UE4CEDEC
stat startfile / stopfile使い方
Session Frontendを立ち上げる
Profiler Tabからファイルを読み込む
![Page 56: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/56.jpg)
#UE4CEDEC
例えば、各アクターのTickがどれだけかかっているか?などがわかるようになります。
注意点: 処理順番ではありません。処理負荷順や名前順でソートを変えたりできます。
![Page 57: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/57.jpg)
#UE4CEDEC
Game Draw GPU
CPU GPU
CPU側の処理負荷確認方法Stat dumpframe
Stat startfile/stopfile
![Page 58: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/58.jpg)
#UE4CEDEC
Game Draw GPU
CPU GPU
Stat dumpframe
Stat startfile/stopfile
Drawの処理負荷を見てみる
![Page 59: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/59.jpg)
#UE4CEDEC
Drawの処理負荷を見てみる
![Page 60: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/60.jpg)
#UE4CEDEC
Base Pass
Drawの主な役割
GPUDraw
②GPUに描画命令を発行する
Transparency
Z Prepass
![Page 61: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/61.jpg)
#UE4CEDEC
Base Pass
Drawの主な役割
GPUDraw
②GPUに描画命令を発行する
Transparency
Z Prepass
どのオブジェクトを?リストないの??
![Page 62: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/62.jpg)
#UE4CEDEC
Base Pass
Drawの主な役割
Init Views
GPUDraw
②GPUに描画命令を発行する
Transparency
Z Prepass
①渡すオブジェクトを選定しそれぞれのパスのリストを作る
![Page 63: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/63.jpg)
#UE4CEDEC
InitViewsで行われるカリング
Init Views
①渡すオブジェクトを選定しそれぞれのパスのリストを作る
選定方法1: Frustum Culling
選定方法2: Occlusion Culling
![Page 64: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/64.jpg)
#UE4CEDEC
(CPU) Frustum Culling
Object
Object
見えない!見える
オブジェクトのバウンディングボックスを調べ、画面外のオブジェクトをGPUに計算させない機能
Object
見える
Object
見えない!
![Page 65: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/65.jpg)
#UE4CEDEC
Occlusion Culling
Object
前面のオブジェクトに隠れて見えないオブジェクトを描画リストから外す(1フレーム前のDepthを用いて行います)
Object
Object
見えない!
見える
![Page 66: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/66.jpg)
#UE4CEDEC
FreezeRendering コマンドで、その時点でのカメラのカリング結果を止めることができる。
![Page 67: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/67.jpg)
#UE4CEDEC
Base Pass
Drawの主な役割
Init Views
GPUDraw
②GPUに描画命令を発行する
Transparency
Z Prepass
①渡すオブジェクトを選定しそれぞれのパスのリストを作る
![Page 68: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/68.jpg)
#UE4CEDEC
Console Commandstat SceneRendering
レンダリング(Draw)の全体の処理内訳をリアルタイムで表示
![Page 69: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/69.jpg)
#UE4CEDEC
Stat scenerendeing注意点
(表示内容はフラットですが、) 処理内容は階層的です
RenderViewFamiliy- InitViews- BasePass drawing-- StaticDrawList drawing-- Dynamic Primitive drawing
![Page 70: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/70.jpg)
#UE4CEDEC
Stat scenerendeing
Stat SceneRenderingで見える負荷はDrawの負荷です。GPUの処理ではありません!
Draw が重たい場合は真っ先に参照してみてください
![Page 71: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/71.jpg)
#UE4CEDEC
ConsoleCommandstat InitViews
Culling処理にかかった時間やプリミティブ数などをリアルタイムで確認
![Page 72: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/72.jpg)
#UE4CEDEC
ConsoleCommandstat InitViews
• InitViewsは何の処理をしてる??– 画面に見えないオブジェクトを省く処理
• Frustum Culling
• Occlusion Culling
– レンダリングオブジェクトをソートしたり
– シャドウ計算に寄与するオブジェクトもここで算出している
![Page 73: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/73.jpg)
#UE4CEDEC
stat InitViewsでよく見るところ
処理時間Frustum CullOcclusion Cull
Processed Primitives: 投入された全オブジェクト数Frustum Culled primitives: カリングされたオブジェクト数Occluded Culled Primitives: オクルージョンカリングされたPrimitive数
生き残ったPrimitiveたちVisible Static Mesh ElementsVisible Dynamic Mesh Elements
![Page 74: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/74.jpg)
#UE4CEDEC
Stat initviews
Culling処理はCPU負荷をあげますが、GPU負荷を下げるために必ず必要な処理です。
Culling負荷が高い場合、遠くのオブジェクトや目に見えないオブジェクトを自前でVisibilityをOffにしたりなどが効果があります。
また、不要なオブジェクトがGPUに投入されていないか確認するために、FreezeRenderingコマンドも用いて下さい。
![Page 75: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/75.jpg)
#UE4CEDEC
備考: Precomputed Visibilityについて
• Precomputed VisibilityはStaticなオブジェクトに対して、シーンのある視点から見えるオブジェクトを事前計算しリストを作成しておく手法です。
• メモリやデータサイズが増えますが、InitViewsの負荷削減につながりますので、静的オブジェクトが多い方は参考にしてください。
• 英語ですが、以下のスレッドに使い方がとても丁寧に説明されています。– http://timhobsonue4.snappages.com/culling-precomputed-visibility-
volumes
![Page 76: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/76.jpg)
#UE4CEDEC
備考: 全体のDrawCall数を把握したい場合Stat RHI
“Draw primitive Calls”でシーン内の全DrawCall数を確認
![Page 77: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/77.jpg)
#UE4CEDEC
Game Draw GPU
CPU GPU
Stat dumpframe
Stat startfile/stopfile
Stat SceneRendering
Stat InitViews
Stat RHI
![Page 78: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/78.jpg)
#UE4CEDEC
ここまででどの箇所が重たいのかだいたいわかるようになってきた
profilegpustat gpu
Stat scenerederingStat dumpframe
Stat unit, unitgraph
Game GPUDraw
? ? ?
Light? Particle? Static Mesh? Post Process?
?? ? ?
次は、なぜその処理が重たいのだろう??
![Page 79: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/79.jpg)
#UE4CEDEC
各アセットやレンダリング手法の詳細
![Page 80: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/80.jpg)
#UE4CEDEC
各処理内容に特化したStat
Stat XXXXXX100種類以上の項目がある
![Page 81: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/81.jpg)
#UE4CEDEC
各処理内容専用のコマンドや変数
レンダリング関連の設定コマンドr.XXXXXX700種類以上
その中の影の設定コマンドr.shadow.XXXXXX50種類以上
![Page 82: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/82.jpg)
#UE4CEDEC
Game GPU
profilegpustat gpu
Stat scenerederingStat dumpframe
Draw
Light? Particle? Static Mesh? Post Process?
Stat unit, unitgraph
? ? ?
?? ? ?
各処理の専用コマンドで理由を調査stat LightRendering, Foliage, Particle, r.XXXXX,
![Page 83: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/83.jpg)
#UE4CEDEC
プロファイリング補助コマンド
![Page 84: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/84.jpg)
#UE4CEDEC
Console CommandShow
オブジェクトや機能のOn/Off
![Page 85: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/85.jpg)
#UE4CEDEC
Console CommandFreezeRendering
現時点のカメラのカリングをフリーズする
![Page 86: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/86.jpg)
#UE4CEDEC
Console CommandToggleDebugCamera
プレイヤーのカメラから離れ、自由に視点を変えられる
![Page 87: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/87.jpg)
#UE4CEDEC
プロファイリングツール1まとめ
![Page 88: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/88.jpg)
#UE4CEDEC
グラフィクスプロファイル全体の流れ
show, freezerendering, toggledebugcamera, etc.
stat LightRendering, Foliage,,,, r.XXXXX,etc.
Game GPU
Stat unit / stat unit graph
Draw
Step.1Game? Draw? GPU?
Step.2どの部分が重たい?
Step.3各処理のコマンドを使って理由を調査
profilegpustat gpu
ScenerederingInitviews, rhi
Dumpframe, startfile
Light? Particle? Static Mesh? Post Process?
Stat
補助コマンド
![Page 89: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/89.jpg)
#UE4CEDEC
なぜ、Console Commandから???
![Page 90: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/90.jpg)
#UE4CEDEC
実機確認できるから!
![Page 91: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/91.jpg)
#UE4CEDEC
実機で確認しなきゃだめ?
![Page 92: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/92.jpg)
#UE4CEDEC
本講演の目次
1. はじめに2. 基本のプロファイリングツール 13. プロファイルの流れ4. 基本のプロファイリングツール 25. Showcase6. まとめ&おまけ
![Page 93: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/93.jpg)
#UE4CEDEC
プロファイルの流れ
![Page 94: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/94.jpg)
#UE4CEDEC
Console
オススメしない運用PCでゲームデザインしてから、コンソールで最適化
Editor 1
ゲームプレイを作り上げる
2
コンソール向けに最適化!!
問題点• 弱: 修正するアセットが大量になる。• 強: 実機では実現不可能
対策1: 仕様を満たすために著しくクオリティを下げる対策2: ゲームの仕様を再考する
敵が100万体同時に出て来るゲームだぜ!
あれ。。。1fpsしか出ない。
![Page 95: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/95.jpg)
#UE4CEDEC
Console
オススメする運用PCでゲームデザイン&実機プロファイリングを並行して行う
Editor 1
ゲームプレイを作り上げる
利点• 修正アセット(手戻り)の削減• 実現可能なゲームデザイン
全体で見れば、製品開発スピードは前者よりも速くなります。(断言)
夢と現実のすり合わせ
ゲームプレイに必要なパフォーマンス検証
1
![Page 96: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/96.jpg)
#UE4CEDEC
備考: (おすすめしない運用2) コンソールと同程度のスペックのPCによる開発
残念ながら全然あてになりません。
OS,ドライバがそもそも違う
ハードウェア構成が厳密には違う
SDK APIがそもそも違う
UE4のコードが全然違う!
同スペックのPCとコンソールの違い
各機種専用の最適化を行っている。。
![Page 97: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/97.jpg)
#UE4CEDEC
プロファイルの流れまとめ
![Page 98: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/98.jpg)
#UE4CEDEC
なぜプロファイル? (再掲)
最適化の前に、開発初期から、日常的に、
実機でプロファイルする癖を
![Page 99: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/99.jpg)
#UE4CEDEC
備考 だけど 重要各ビルドコンフィギュレーションによる設定の差
CPU Stat (CVars) GPU
Development 検証コードあり 全機能使える
ほぼ同じTest検証コードなし
Stat unit ぐらい
Shipping 無効
各ビルドコンフィギュレーションによる設定の差
CPU本来の負荷は Testビルドで計測するようにしてください。日頃Developmentビルドで計測し、重たい部分などは実際のTestビルドで。どれだけの差が出るかを定期的に調べて下さい。
![Page 100: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/100.jpg)
#UE4CEDEC
本講演の目次
1. はじめに2. 基本のプロファイリングツール 13. プロファイルの流れ4. 基本のプロファイリングツール 25. Showcase6. まとめ&おまけ
![Page 101: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/101.jpg)
#UE4CEDEC
基本のプロファイリングツール 2Editorのデバッグ機能
![Page 102: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/102.jpg)
#UE4CEDEC
今回紹介する3つのEditor機能
Viewmode Show Statistics
![Page 103: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/103.jpg)
#UE4CEDEC
ViewMode中間バッファやデバッグ用表示へ切り替える機能
![Page 104: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/104.jpg)
#UE4CEDEC
ViewMode
EditorのViewModeから選択可能見れる一覧は公式ドキュメントで詳細に説明があります。
Link: 公式ドキュメント ViewMode
一部ViewmodeはViewmode コマンドで実機でも見ることが可能
![Page 105: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/105.jpg)
#UE4CEDEC
Optimization ViewModes
![Page 106: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/106.jpg)
#UE4CEDEC
Light Complexity
![Page 107: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/107.jpg)
#UE4CEDEC
Light Complexity
動的ライティングがどれだけされているかを視覚化
気づかずに、大きなライティングをしている際などは要注意。
5以上になると紫になっていきます
![Page 108: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/108.jpg)
#UE4CEDEC
Console Commandtogglelight 文字列
文字列を含むライトをOn/Offにすることができる。
![Page 109: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/109.jpg)
#UE4CEDEC
Deferred Lightingは影がなければ動的ライト沢山おいても軽い?
![Page 110: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/110.jpg)
#UE4CEDEC
範囲の小さいMovable Lightを100個
範囲の大きいMovable Lightを8個VS
![Page 111: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/111.jpg)
#UE4CEDEC
範囲の小さいMovable Lightを100個
範囲の大きいMovable Lightを8個VS
Light Complexityでの比較
![Page 112: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/112.jpg)
#UE4CEDEC
範囲の小さいMovable Lightを100個
範囲の大きいMovable Lightを8個VS
処理負荷確認方法ProfileGPU / stat GPUのLightsにGPU負荷がでます
![Page 113: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/113.jpg)
#UE4CEDEC
Q: Deferred Lightingならライトを沢山おいていいのか?
ライトを沢山を”置けます”が、
ライトが触れるピクセルが増えれば増えるほど処理負荷は増えます。
簡易的に、Light Complexityという機能があるので、
そちらで高負荷なライティングの場所を探りましょう。
![Page 114: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/114.jpg)
#UE4CEDEC
Lightmap Density
![Page 115: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/115.jpg)
#UE4CEDEC
Lightmap Density
Lightmap 密度を視覚的に表示
![Page 116: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/116.jpg)
#UE4CEDEC
Lightmap Density
ライトマップの密度は
処理負荷にも影響はしますが
それよりも
メモリ(テクスチャストリーミング)
ロード時間に影響します
事例があるので紹介させてください
![Page 117: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/117.jpg)
#UE4CEDEC
![Page 118: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/118.jpg)
#UE4CEDEC
![Page 119: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/119.jpg)
#UE4CEDEC
![Page 120: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/120.jpg)
#UE4CEDEC
![Page 121: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/121.jpg)
#UE4CEDEC
![Page 122: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/122.jpg)
#UE4CEDEC
![Page 123: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/123.jpg)
#UE4CEDEC
![Page 124: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/124.jpg)
#UE4CEDEC
![Page 125: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/125.jpg)
#UE4CEDEC
![Page 126: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/126.jpg)
#UE4CEDEC
![Page 127: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/127.jpg)
#UE4CEDEC
![Page 128: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/128.jpg)
#UE4CEDEC
![Page 129: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/129.jpg)
#UE4CEDEC
![Page 130: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/130.jpg)
#UE4CEDEC
![Page 132: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/132.jpg)
#UE4CEDEC
Stationary Light Overlap
![Page 133: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/133.jpg)
#UE4CEDEC
Stationary Lightのメインの制約
影付きStationary Lightを5つ以上重ねると、5つ目以降のライトが”自動的に”MovableなLightになる。
![Page 134: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/134.jpg)
#UE4CEDEC
Stationary Lightのメインの制約
![Page 135: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/135.jpg)
#UE4CEDEC
Stationary Lightの影については、上記ブログが参考になります
http://darakemonodarake.hatenablog.jp/entry/2015/12/16/UE4/Stationary
![Page 136: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/136.jpg)
#UE4CEDEC
オーバラップしたStationary Lightのランタイム負荷
• Movable Lightとして動的シャドウを生成することになるので。。
– Draw, GPUともに負荷がかかります。
![Page 137: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/137.jpg)
#UE4CEDEC
Stationary Lightのメインの制約
特に良いことは何もないので、原則禁止が良いかと思います
![Page 138: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/138.jpg)
#UE4CEDEC
Shader Complexity
![Page 139: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/139.jpg)
#UE4CEDEC
Shader Complexity
各ピクセルのシェーダの命令数の合算を表示する
(赤い部分の殆どは、半透明描画の重ね合わせ)
![Page 140: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/140.jpg)
#UE4CEDEC
Shaderの命令数の見方Material EditorのStat Window
Stat WindowにPC版での大まかなシェーダ命令数を出してくれます
![Page 141: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/141.jpg)
#UE4CEDEC
Shader Complexityの仕組み
不透明
不透明ポリゴンのシェーダ命令数のみ
半透明のシェーダ命令は加算されていく
不透明
![Page 142: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/142.jpg)
#UE4CEDEC
Shader Complexityの見方
キャラクタのシェーダ命令数が多い
半透明描画が重なってる
多分どっちも
![Page 143: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/143.jpg)
#UE4CEDEC
Shader Complexityが赤いのは直さなきゃ駄目?
![Page 144: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/144.jpg)
#UE4CEDEC
注意点
シェーダの命令数 ≠ シェーダの重たさ
(大雑把に見れば=でもいいけど。。。)
(Cycle数と言おうか。。)
![Page 145: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/145.jpg)
#UE4CEDEC
命令数と処理負荷の違い:1
1命令の重たさの違い
パスワード変更しといて
GDCでアテンドしてきて
どちらも同じ1行(命令)だけれども、タスク量(Cycle数)が違う。
![Page 146: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/146.jpg)
#UE4CEDEC
命令数と処理負荷の違い:2
命令の仕方の違い
命令数: 50
ビールで乾杯;
もう一杯;
もう一杯;
もう一杯;
…
もう一杯;
命令数: 1
50杯ビール飲む;
50行
1行
※あくまでイメージです。コンパイラは賢く処理するし、実際にForLoopが1命令になるわけではありません。
![Page 147: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/147.jpg)
#UE4CEDEC
命令数と処理負荷の違い:3
同じシェーダでも処理負荷がランタイムで変わる
コンパイラは賢い。 アルファテストのあるシェーダを
アルファテスト -> 色と計算するようにしたりする。(Early Exit)
色の計算
アルファテスト透明部分の処理負荷
アルファテスト不透明部分の処理負荷
![Page 148: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/148.jpg)
#UE4CEDEC
シェーダの命令数とシェーダの重たさの違う例1
悪意をもってマテリアルを作ると。。。スフィアに貼り付けただけで、
39命令のシェーダでも、
20msの処理負荷に
![Page 149: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/149.jpg)
#UE4CEDEC
シェーダの命令数とシェーダの重たさの違う例2
悪意をもってマテリアルを作ると。。。スフィアに貼り付けただけで、
2533命令のシェーダでも、
0.04msの処理負荷で済む。
![Page 150: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/150.jpg)
#UE4CEDEC
注意点
シェーダの命令数 ≠ シェーダの重たさ
(大雑把に見れば=でもいいけど。。。)
(Cycle数と言おうか。。)
![Page 151: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/151.jpg)
#UE4CEDEC
このように、処理負荷は命令数だけでは厳密にはわかりません。
一番怖いのは、効果の少ない最適化をしてしまうこと
Q. Shader Complexityで赤いのは直さなきゃ駄目?
Shader Complexityが真っ赤だからといって、必死に命令数を減らしても効果がないかもしれません。
ダメな例: テクスチャの参照回数がネックなのに、
キャラの重要な強調表現の計算量を減らす
![Page 152: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/152.jpg)
#UE4CEDEC
Shader Complexityのおすすめの使い方 1キャラクタなどの不透明オブジェクト
赤や白の場合。。。
マテリアルに問題ないかエンジニアに一度ご相談
プロファイル例: キャラクタを単純なマテリアルに差し替えて差分計測
![Page 153: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/153.jpg)
#UE4CEDEC
Shader Complexityのおすすめの使い方 2半透明やMaskedマテリアル
赤や白の場合。。。
透明部分を小さくできないか検討
プロファイル例Show Particlesなどを使ってエフェクトをOn/Offにしてみる
![Page 154: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/154.jpg)
#UE4CEDEC
ということで、個人的にはShader Complexity は透明物の重なり具合にのみ使っています。。。
Shader Complexity View
![Page 155: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/155.jpg)
#UE4CEDEC
それって。。。Quad Overdrawと同じじゃ。。
Shader Complexity View Quad Over Draw
![Page 156: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/156.jpg)
#UE4CEDEC
Quad Overdraw
![Page 157: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/157.jpg)
#UE4CEDEC
Quad Overdraw
同一Quadで何回描画計算が走ったかを表示
Quad = 2 * 2 PixelGPUはQuad単位で描画している。
Quad Over Draw
![Page 158: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/158.jpg)
#UE4CEDEC
LOD Coloration
![Page 159: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/159.jpg)
#UE4CEDEC
LOD Coloration
0 7
どのLODモデルを表示しているかを色で表示
![Page 160: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/160.jpg)
#UE4CEDEC
LODの処理負荷確認方法
LODを使わない場合、GPU描画負荷の様々な箇所で負荷としてできてます。
処理負荷確認方法BasePass、Prepass, Shadowなどの処理が重たい際に、そのオブジェクトがどれくらいの処理負荷になってるいるか確認する。
r.staticmeshLODDistanceScaleでおおざっぱにLODの範囲を全体で変えて、どれぐらいの処理軽減になるか見積もれる。
![Page 161: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/161.jpg)
#UE4CEDEC
Console Commandr.staticmeshLODDistanceScale
コマンドでLODのスケールを一括で変更(大雑把に、LODを強くしたらどれだけ処理負荷が下がるかの見積もりとして)
![Page 162: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/162.jpg)
#UE4CEDEC
Optimization ViewModes を見てきました。。。
![Page 163: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/163.jpg)
#UE4CEDEC
今回紹介する3つのEditor機能
Viewmode Show Statistics
![Page 164: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/164.jpg)
#UE4CEDEC
Tips: 実機でViewModeの変更Console Command: ViewMode XXXX
• コンソールが対応していないViewMode– Unlit
– StationaryLightOverlap
– Lit_DetailLighting
– ReflectionOverride
• r.ForceDebugViewModesを1にすると。。– ShaderComplexityも可能
![Page 165: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/165.jpg)
#UE4CEDEC
ConsoleCommandViewMode “HOGEHOGE” 一覧
• case VMI_BrushWireframe:return TEXT("BrushWireframe");• case VMI_Wireframe:return TEXT("Wireframe");• case VMI_Unlit:return TEXT("Unlit");• case VMI_Lit:return TEXT("Lit");• case VMI_Lit_DetailLighting:return TEXT("Lit_DetailLighting");• case VMI_LightingOnly:return TEXT("LightingOnly");• case VMI_LightComplexity:return TEXT("LightComplexity");• case VMI_ShaderComplexity:return TEXT("ShaderComplexity");• case VMI_QuadOverdraw:return TEXT("QuadOverdraw");• case VMI_ShaderComplexityWithQuadOverdraw: return TEXT("ShaderComplexityWithQuadOverdraw");• case VMI_PrimitiveDistanceAccuracy:return TEXT("PrimitiveDistanceAccuracy");• case VMI_MeshUVDensityAccuracy:return TEXT("MeshUVDensityAccuracy");• case VMI_MaterialTextureScaleAccuracy: return TEXT("MaterialTexturecaleAccuracy");• case VMI_RequiredTextureResolution: return TEXT("RequiredTextureResolution");• case VMI_StationaryLightOverlap:return TEXT("StationaryLightOverlap");• case VMI_LightmapDensity:return TEXT("LightmapDensity");• case VMI_LitLightmapDensity:return TEXT("LitLightmapDensity");• case VMI_ReflectionOverride:return TEXT("ReflectionOverride");• case VMI_VisualizeBuffer:return TEXT("VisualizeBuffer");• case VMI_CollisionPawn:return TEXT("CollisionPawn");• case VMI_CollisionVisibility:return TEXT("CollisionVis");• case VMI_LODColoration:return TEXT("LODColoration");• case VMI_HLODColoration:return TEXT("HLODColoration");
![Page 166: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/166.jpg)
#UE4CEDEC
Show
Console Command Show のエディタ設定版
![Page 167: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/167.jpg)
#UE4CEDEC
今回紹介する3つのEditor機能
Viewmode Show Statistics
![Page 168: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/168.jpg)
#UE4CEDEC
Statistics
シーンにおいてあるメッシュやテクスチャの情報を表で出してくれる
![Page 169: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/169.jpg)
#UE4CEDEC
Statistics
![Page 170: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/170.jpg)
#UE4CEDEC
StatisticsPrimitive Stats
何個シーンにある? そのメッシュのポリゴン数は?
そのメッシュのシーン内の大きさは?
シーンのメッシュの統計情報を表示
![Page 171: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/171.jpg)
#UE4CEDEC
StatisticsTexture Stats
シーン内に読み込まれているテクスチャの統計情報を表示
![Page 172: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/172.jpg)
#UE4CEDEC
Statistics (Primitive Stats) の半径を見て不要に小さなオブジェクトがないかを探す
![Page 173: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/173.jpg)
#UE4CEDEC
Robがいるこのシーン、RobのメッシュをPrimitive Statsで見てみる
あきらかに小さいRobがいる。
![Page 174: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/174.jpg)
#UE4CEDEC
草むらに小さなロブが沢山いた
![Page 175: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/175.jpg)
#UE4CEDEC
3つのEditor機能を紹介してきました
Viewmode Show Statistics
![Page 176: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/176.jpg)
#UE4CEDEC
RenderDoc
![Page 177: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/177.jpg)
#UE4CEDEC
UE4.16から標準プラグインに
![Page 178: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/178.jpg)
#UE4CEDEC
RenderDocで何ができる?
![Page 179: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/179.jpg)
#UE4CEDEC
GPUのレンダリング工程をまるはだかにできる!
※Windows限定
![Page 180: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/180.jpg)
#UE4CEDEC
EditorからのCaptureボタンひとつでCaptureを取ることができます
![Page 181: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/181.jpg)
#UE4CEDEC
Runtimeからのキャプチャrenderdoc.CaptureFrameでCaptureしてくれます。
![Page 182: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/182.jpg)
#UE4CEDEC
RenderDoc の画面
![Page 183: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/183.jpg)
#UE4CEDEC
Event Browser
• 呼び出された命令を階層表示してくれる。
• このBrowserでDrawCallを選ぶ
• この後説明するエディタで、選んだDrawCallの詳細がわかる
![Page 184: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/184.jpg)
#UE4CEDEC
Texture Viewer
• Input– そのDrawCallが使用
したテクスチャ一覧が
• Output– そのDrawCallで出力
されたRenderTargetの一覧
![Page 185: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/185.jpg)
#UE4CEDEC
Texture Viewer
選択したDrawCallまで描画してくれるので、Event ViewerでDrawCallを選択していくことによって、描画の流れを理解することができる。
EID: 3536
EID: 3559
次のDrawCall
![Page 186: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/186.jpg)
#UE4CEDEC
Texture Viewer選んだRenderTargetのピクセルの描画履歴を追うことが可能。RenderTargetのみたいあたりに、右ボタンクリックで、Pixel Contextのズーム画面に。更に正確には PixelContext画面で矢印キーで、ピクセルを選択
![Page 187: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/187.jpg)
#UE4CEDEC
Mesh Output
そのDrawCallで呼び出されたメッシュを描画してくれる
VS Input VS Output
そのメッシュが、画像のどのあたりにレンダリングされるのかも描画してくれる
Texture Viewerと比較
![Page 188: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/188.jpg)
#UE4CEDEC
Pipeline State
• そのDrawCallの各種設定などがわかる
• 例えば、
– Depthの設定
– Rasterizerの設定
![Page 189: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/189.jpg)
#UE4CEDEC
Pipeline StateShaderも見ることがきる。
![Page 190: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/190.jpg)
#UE4CEDEC
TipsRenderDocでソースを見る方法
• r.Shaders.KeepDebugInfo=1をConsoleVariables.iniに記述
• “-d3ddebug”オプションをエディタ起動
• シェーダコンパイルが再度すべてに走るがRenderDocでソースが見れるように
![Page 191: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/191.jpg)
#UE4CEDEC
RenderDoc
RenderDocまとめ
1フレームの描画をキャプチャし、
– どんな順に
– どんなオブジェクトが
– どんなテクスチャ/シェーダで。。。
レンダリングしているかがわかる便利ツール
※Windows限定
![Page 192: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/192.jpg)
#UE4CEDEC
本講演の目次
1. はじめに2. 基本のプロファイリングツール 13. プロファイルの流れ4. 基本のプロファイリングツール 25. Showcase6. まとめ&おまけ
![Page 193: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/193.jpg)
#UE4CEDEC
Showcase
![Page 194: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/194.jpg)
#UE4CEDEC
Foliageのプロファイリングをデモしてみます(資料は別途公開します)
![Page 195: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/195.jpg)
#UE4CEDEC
本講演の目次
1. はじめに2. 基本のプロファイリングツール 13. プロファイルの流れ4. 基本のプロファイリングツール 25. Showcase6. まとめ&おまけ
![Page 196: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/196.jpg)
#UE4CEDEC
まとめのまえに。。
![Page 197: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/197.jpg)
#UE4CEDEC
各PlatformのProfiler
![Page 198: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/198.jpg)
#UE4CEDEC
各コンソールにもRenderDocみたいなのないの?
ConsolePC
![Page 199: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/199.jpg)
#UE4CEDEC
各コンソールにもRenderDocみたいなのないの?
ConsolePC
PS4 Razor
XBOX Pix
などなど各プラットフォームが用意してくれてます
![Page 200: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/200.jpg)
#UE4CEDEC
Q.プラットフォームのプロファイラを使ったほうがいいの?
A.
(テクニカルよりの方ならば)
絶対使った方が良いです
チートです
![Page 201: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/201.jpg)
#UE4CEDEC
プラットフォーム専用プロファイラのできること
• RenderDocと同様の機能 (フレームのCapture&Replayシステム)
• ハードウェアレベルのTrace機能
![Page 202: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/202.jpg)
#UE4CEDEC
ハードウェアレベルのTrace機能でわかること
頂点多い?
ピクセル打ちすぎ?
テクスチャ使いすぎ?
シェーダの計算が重たい?
その描画が重たい理由が一発でわかります
![Page 203: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/203.jpg)
#UE4CEDEC
ですが、それらを理解するためには、こんなグラフを読み解く必要があります。
Radeon GPU Profilerサイトより引用
![Page 204: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/204.jpg)
#UE4CEDEC
さらに。。。グラフを読み解くためには、
GPU構成をある程度理解する必要があります。
【後藤弘茂のWeekly海外ニュース】AMDの新GPUアーキテクチャ「Graphics Core Next」の秘密 - PC Watch
![Page 205: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/205.jpg)
#UE4CEDEC
自習するのは大変そう。。。
![Page 206: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/206.jpg)
#UE4CEDEC
プラットフォーム別のUE4勉強会を開催します!UE4ライセンシの方々には日程が決まり次第別途ご連絡いたします
勿論ですが、各プラットフォームのNDAライセンスをお持ちの方限定です
10月末、11月頭東京大阪二箇所で開催
11月末or12月上旬東京開催
![Page 207: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/207.jpg)
#UE4CEDEC
まとめ
![Page 208: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/208.jpg)
#UE4CEDEC
本日の内容
UE4のプロファイリングツールを俯瞰で眺めながら、
UE4上でどのように
プロファイルしていくのかを見ていきました
![Page 209: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/209.jpg)
#UE4CEDEC
グラフィクスプロファイル全体の流れ
show, freezerendering, toggledebugcamera, etc.
stat LightRendering, Foliage,,,, r.XXXXX,etc.
Game GPU
Stat unit / stat unit graph
Draw
Step.1Game? Draw? GPU?
Step.2どの部分が重たい?
Step.3各処理のコマンドを使って理由を調査
profilegpustat gpu
Stat scenerederingStat dumpframe…
Light? Particle? Static Mesh? Post Process?
補助コマンド
![Page 210: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/210.jpg)
#UE4CEDEC
3つのEditor機能やプラグイン
Viewmode Show Statistics RenderDoc
![Page 211: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/211.jpg)
#UE4CEDEC
なぜプロファイル?
プロファイルしない最適化は危険
最適化の前に、開発初期から、日常的に、
実機で、
プロファイルする癖を
![Page 212: [CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64795a7f8b9a36568b4709/html5/thumbnails/212.jpg)
#UE4CEDEC
本当に、本当にありがとうございました!
次回は10月8日のこの場所で!