ぼっちプログラマのメモ

UE4とかVRとかについて書いたり書かなかったり。

Unityちゃんのドローコールを減らしてみる(CombineMeshes)

Unityちゃんのドローコールがデフォルトで43。
微妙に気になる数値なので、メッシュ結合でドローコールを減らしてみる

メッシュ結合で使用したスクリプトは、↓のサイトから拝借
SkinnedMeshCombiner - Unify Community Wiki
そのまま使うとおかしくなるので、色々と書き換える

・58~64行目付近のfor文をコメントアウト
・72~88行目付近を丸ごとコメントアウト
・Material combinedMat=new Material( Shader.Find( "Diffuse" ) ); を
 Material combinedMat = smRenderers[0].material; に書き換え。
 そして、その下2行をコメントアウト
・r.rootBone = smRenderers [0].rootBone;を最後の方に追加

メッシュ結合出来たのは、服(袖以外)と髪。
他は表示がおかしくなったりしたので、今回はしてないです

f:id:pafuhana1213:20140418234812p:plain

  1. 空のGameObjectを作成して、てきとーな名前をつける(Cloth, Hair)
  2. 作成したGameObject下に、メッシュ結合したいObjectをまとめる(上の画像を参照)
  3. 作成したGameObjectに、↑のスクリプトを追加(RootObjectはunitychan)
  4. 実行

※作成した空のGameObjectのTransoformは、pos,rotは0,0,0。scaleは1,1,1にする。

実行すると、ドローコールが43から23に減っていると思います…たぶん
(色々と試行錯誤しながらの作業だったので、抜けがあるかも…)

ただ、他のサイトでは18まで減らせたと書いてあったので、
まだまだ削減の余地はありそう…困ってからでいいか