負荷表示が何を測っているのか
このページは解説です。実際に軽くするにはビルド時の自動最適化をご覧ください。
一行まとめ
インスペクターの負荷表示は、アップロード後にベイクされたマテリアルの相対負荷の予想値です。 新規のMingToonマテリアルを同じ方法でベイクしたときの負荷を1.0倍として比べた値です。
この数値でできることとできないこと
| できること | できないこと |
|---|---|
| 同じアバターの中でどのマテリアルが重いかを比較する | フレーム時間が何倍になるかを換算する |
| モジュールを切ったときに予想負荷が下がったか確認する | GPUのミリ秒やSetPass数の代わりに読む |
| テクスチャメモリの予想値をマテリアル同士で比較する | アバター全体の負荷を最高値で判断する |
計算モデルは特定のBuilt-inベンチマーク環境に合わせてあります。 画面占有率、重なり、ライト数、GPU、レンダーパイプラインによって実際の負荷は変わります。
負荷パネルの読み方
負荷パネルは5行を表示します。
| 表示 | 読み方 |
|---|---|
| アップロード後の負荷 | ベイクした状態の予想値。実際に出荷される値です |
| 作業中(エディター)の負荷 | 現在の編集用シェーダーの予想値。上の値とは異なります |
| 選択の平均 / 最高 | 選んだマテリアルの平均と、最も高い等級 |
| 無条件のテクスチャ読み取り / 深度 / 命令 / ドロー | 負荷の原因を探す内訳。プロファイラーの実測値ではありません |
| テクスチャ数 / MB | テクスチャメモリの予想値。レンダリング速度とは別です |
モデルは編集状態とベイク予想状態を分けて計算します。 命令数、常に実行されるテクスチャ読み取り、レジスタ使用量、パス数が含まれます。
レイヤーは、スロット数ではなく実際の使用数と実行条件を合わせて見ます。 スロットが10個あるからといって、毎ピクセル10枚を読むとは計算しません。 逆に、強度が0でもコードが消えるわけではありません。実行時に変更する値は残しておくためです。
そこから生じる制約
- カメラ深度を確保するシーン全体の負荷は、マテリアルの倍率には含まれません。深度効果を初めて有効にしたときの変化は、実際のシーンで比較する必要があります。
- アニメーションやスクリプトで変更する色補正は、ベイク後も動作しなければならないため定数に畳み込まれません。その分の予想負荷が残ります。
- 予想等級が下がっただけでは改善を確定できません。同じカメラ・距離・照明で実際のビルドを比較してください。