本日はホロ恋子ローポリモデルの負荷試験です。
キャラクターモデルの負荷をレンダリング統計ウィンドウで確認し、比較してみます。
以下の記事の続きです。
bluebirdofoz.hatenablog.com
比較するモデル
今回はユニティちゃんとホロ恋子モデルを比較して見ます。
シーンの環境はレンダリングへの影響を抑えるため、背景は[Solid Color]とし、影は[No Shadows]で無効化しています。
ホロ恋子モデルは以下の特徴があるため、ユニティちゃんより負荷が少ない結果が期待できます。
・全オブジェクトを結合したことによるスキンメッシュの統合
・ポリゴン数の削減(ホロ恋子モデル:約2,000ポリゴン、ユニティちゃん:約16,000ポリゴン)
・マテリアルを1つのUnlit/Textureマテリアルに統合
・Humanoidリグに必要なボーンオブジェクトのみ
ユニティちゃんモデルの表示結果
ユニティちゃんモデルをカメラから2mのところに表示してみました。
なお、スクリプトによる負荷の変化を防ぐため、Models/unitychan.fbx ファイルを利用しています。
Batchs は 41。SetPass calls は 14 となりました。
ホロ恋子モデルの表示結果
同じくホロ恋子モデルをカメラから2mのところに表示してみました。
Batchs は 2。SetPass calls は 2 となりました。
比較結果
比較結果は以下の通りです。
モデル | ユニティちゃん | ホロ恋子 |
---|---|---|
Batches | 41 | 2 |
Saved by batching | 0 | 0 |
Tris | 31.5k | 2.0k |
Verts | 26.2k | 1.6k |
SetPass calls | 14 | 2 |
Shadow casters | 0 | 0 |
Visible skinned meshes | 19 | 1 |
かなり有意な差が発生することが分かりました。
ユニティちゃんモデルはオブジェクトの分割数が多いため、スキンメッシュの数が多く、またマテリアルも細かく分割されているため、1体だけでも Batches の数が 41 と非常に多くなっていることが分かります。
一方、ホロ恋子モデルの方はオブジェクトやマテリアルの結合を行ったため、スキンメッシュの数が少なく、Batches は最低数の 2 となっています。
(それぞれ Batches の数値の内、1つはバッファクリアのバッチングのため 2 が最低数になります)
FPSはPC上での確認かつ、1体のみの表示のため、差は発生していません。
しかし複数体のモデルを表示したときの負荷軽減は期待できそうです。
SDユニティちゃんの場合
ついでにSDユニティちゃんのレンダリング負荷も確認してみました。
Batchs は 25。SetPass calls は 11 となりました。
頭身が低いため、頂点数は減っているものの、スキンメッシュの分割やマテリアルの分割が行われているため、それなりの負荷が発生することが分かります。
ローポリユニティちゃんの場合
更にローポリユニティちゃんのレンダリング負荷も確認してみました。
Batchs は 2。SetPass calls は 2 となりました。
ホロ恋子モデルと同じで、最低数の Batches と SetPass calls となります。
実際、全てのスキンメッシュとマテリアルが統合されており、シェーダも Unlit/Texture が用いられるなど、ホロ恋子モデルとモデルの構成が同じです。