Unityのうんたら

1.UnitのDrawCallについて
マニュアルより抜粋
スクリーンにオブジェクトを描画するために、描画エンジンはOpenGLやDirect3DのグラフィックAPIにドローコール(draw call)を発行しなければいけません。どんな一回のドローコールでも多くのグラフィックAPIの集まりが必要になります。つまりこれはCPUパフォーマンスのオーバーヘッドに重大な影響をもたらします。
要約するとUnityは画面に何かを描く時にDrawCall発行する
DrawCallは処理が重いので少ない方がいいとのこと。


2.DrawCallの回数を確認する
1.Gameビューウィンドウの上に[Stats]というボタンを押下。
2.[Statistics]という小窓が表示される。
3.(2)の[DrawCalls]の部分にDrawCallが呼ばれた回数が表示される。


3.DrawCallを抑えるには
マニュアルより抜粋
同じマテリアルを共有しているオブジェクトがバッチング可能になります。そのため、より効果的なバッチングをするには、できる限り違うオブジェクト間で多くのマテリアルを共有する必要があります。
マテリアルとはオブジェクトに貼り付ける模様の様なものである。
このマテリアルが増えるとDrawCall数が増える。

【ex1】
マテリアルはロードした物をInstantiateするのではなく、ロードした物を流用する。
(NG)
renderer.material = Instantiate(Resources.Load("マテリアルのパス")) as Material;
(OK)
renderer.material = Resources.Load("マテリアルのパス") as Material;

【ex2】
UIPanel毎にDrawCallされる為、出来るだけUIPanelは一つに集約する。

【ex3】
無料アセット【Draw Call Minimizer】を使用する(デメリット:LoadLevelが重くなる)
↓参考URL
DrawCallMinimizerの使い方

【ex4】
マテリアルを統合する
↓参考URL
MayaLT で DrawCall を可能な限り減らす

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー













【メニュー編集】

メンバーのみ編集できます